4.2. 演示:使用命令行实用程序创建和管理客户机


为了展示如何在 CLI 中执行虚拟化任务,本章节将提供一个演示新的客户机虚拟机创建位置,在其上安装操作系统,然后客户端则使用 CLI 命令与之交互和管理。

4.2.1. 安装

下面创建一个名为 guest1-rhel7 的新 guest,并从 Red Hat Enterprise Linux 7 Workstation ISO 镜像启动操作系统安装。此镜像可 在客户门户网站上 获得,在本示例中,它目前位于 ~/Downloads/ 文件夹中。客户机分配有两个虚拟 CPU、2048 MB RAM 和 8 GB 磁盘空间。
# virt-install --name guest1-rhel7 --memory 2048 --vcpus 2 --disk size=8 --cdrom /home/username/Downloads/rhel-workstation-7.4-x86_64-dvd.iso --os-variant rhel7

Starting install...
Allocating 'guest1-rhel7.qcow2'                                                   | 8.0 GB  00:00:00
这会在 virt-viewer 应用程序中启动图形 Anaconda 安装程序。有关安装的详情,请查看 安装指南
注意
在无法访问图形界面的主机系统中,可以使用 基于文本的 Anaconda 安装客户机操作系统,使用类似如下的 virt-install 命令:
# virt-install -name rhel7anaconda-guest -r 1024 --location=/home/jherrman/Downloads/rhel-workstation-7.4-x86_64-dvd.iso --disk size=8 --nographics --extra-args="console=tty0 console=ttyS0,115200n8"
如果安装成功完成,命令行会显示以下内容:
Domain creation completed.
Restarting guest.
现在可以将任何需要的配置提供给客户端。但是,为了安全地管理客户机设置,建议先关闭 guest。
# virsh shutdown guest1-rhel7
Domain guest1-rhel7 is being shutdown

4.2.2. 附加设备

要使客户机检测并使用连接到主机的 USB 设备,本例中的 Samsung 手机首先使用主机上的 lsusb 命令来检索设备的 ID。
# lsusb

[...]
Bus 003 Device 007: ID 04e8:6860 Samsung Electronics Co., Ltd Galaxy (MTP)
之后,使用主机上的首选文本编辑器为设备创建 XML 文件,本例中为 samsung_USB_device.xml,在其中输入供应商和产品 ID。
# vim samsung_USB_device.xml
<hostdev mode='subsystem' type='usb' managed='yes'>
  <source>
    <vendor id='0x04e8'/>
    <product id='0x6860'/>
  </source>
</hostdev>
最后,使用 virsh attach-device 命令将设备附加到客户机。
# virsh attach-device guest1-rhel7 --file samsung_USB_device.xml --config
Device attached successfully
注意
也可以将设备附加到运行的 guest。为此,请使用 --live 选项。

4.2.3. 与客户机交互

要开始使用 guest1-rhel7 虚拟客户机,请先启动它。
# virsh start guest1-rhel7
Domain guest1-rhel7 started
根据您的主机系统是否有图形显示,您可以使用 virt-viewer 应用程序与客户机交互,或使用 SSH shell。
  • 在带有图形显示的系统中,使用 virt-viewer
    # virt-viewer guest1-rhel7
    之后,您可以与 virt-viewer 窗口中的屏幕输出(如使用物理机上的 OS GUI)进行交互。例如,您可以使用 Subscription Manager 应用程序注册 Red Hat Enterprise Linux 客户机操作系统:
  • 如果主机或客户机具有纯文本接口,请使用 SSH。这需要知道客户机的 IP 地址。如果您不知道 IP 地址,可以使用 virsh domifaddr 命令获取它。
    # virsh domifaddr guest1-rhel7
     Name       MAC address          Protocol     Address
    -------------------------------------------------------------------------------
     vnet0      52:54:00:65:29:21    ipv4         10.34.3.125/24
    # ssh root@10.34.3.125
    root@10.34.3.125's password:
    Last login: Wed Jul 19 18:27:10 2017 from 192.168.122.1
    [root@localhost ~]#
    
    注意
    要使 virsh domifaddr 正常工作,客户机必须在网络上运行并可访问,并且可能 需要激活 QEMU 客户机代理
    之后,您可以像在客户机机器上使用终端一样与主机终端交互。例如,您可以使用 subscription-manager 实用程序注册 Red Hat Enterprise Linux 客户机操作系统:
    [root@localhost ~]# subscription-manager register
    Registering to: subscription.rhsm.redhat.com:443/subscription
    Username: username@sample.com
    Password:
    The system has been registered with ID: 30b5e666-67f9-53bb-4b90-c2a88e5be789
    

4.2.4. 诊断

显示客户端状态的常规信息:
# virsh dominfo guest1-rhel7
Id:             1
Name:           guest1-rhel7
UUID:           ec0c0122-fb63-4a54-b602-5cf84f5e2dfd
OS Type:        hvm
State:          running
CPU(s):         2
CPU time:       33.4s
Max memory:     2097152 KiB
Used memory:    2097152 KiB
Persistent:     yes
Autostart:      disable
Managed save:   no
Security model: selinux
Security DOI:   0
Security label: unconfined_u:unconfined_r:svirt_t:s0:c102,c792 (enforcing)

4.2.5. 创建快照

要备份客户机的状态,您可以使用 virsh snapshot-create 命令。
# virsh snapshot-create guest1-rhel7
Domain snapshot 1500563241 created
您可以显示您当前的快照和每个快照的 XML 设置。
# virsh snapshot-list guest1-rhel7
Name                 Creation Time             State
------------------------------------------------------------
1500563241           2017-07-20 17:07:21 +0200 shutoff

# virsh snapshot-dumpxml guest1-rhel7 1500563241
<domainsnapshot>
  <name>1500563241</name>
  <state>shutoff</state>
  <creationTime>1500563241</creationTime>
  <memory snapshot='no'/>
  <disks>
    <disk name='vda' snapshot='internal'/>
[...]
之后可能会加载这个快照,将客户机恢复到保存的快照中的状态。
# virsh snapshot-revert guest1-rhel7 --snapshotname 150056324
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.