Linux--使用KVM命令集管理虚拟机

14.2.1案例分析

     

      案例环境使用一台物理机器,一台服务器安装CentOS7.3的64位系统(即node01),rhel7.1是在宿主机node01中安装的虚拟机。

 14.2.2案例实施

1.安装Linux虚拟机

安装过程同上一案例,使用Xshell 远程控制node01主机。

2.KVM基本功能管理

1)查看命令帮助

[root@node01 ~]# virsh -h

2)查看KVM的配置文件存放目录(rhel7.1.xml是虚拟机系统实例的配置文件)

[root@node01 ~]# ls /etc/libvirt/qemu

3)查看虚拟机状态

[root@node01 ~]# virsh list --all

4)虚拟机关机与开机

首先需要确认acpid服务安装并运行。

[root@node01 ~]# virsh shutdown rhel7.1 

[root@node01 ~]# virsh start rhel7.1

5)强制实例系统关闭电源

[root@node01 ~]# virsh destroy rhel7.1

6)通过配置文件启动虚拟机系统实例

[root@node01 ~]# virsh create /etc/libvirt/qemu/rhel7.1.xml

7) 挂起虚拟机

[root@node01 ~]# virsh  suspend rhel7.1

查看虚拟机状态:

[root@node01 ~]# virsh list --all

8)恢复虚拟机

[root@node01 ~]# virsh resume rhel7.1
[root@node01 ~]# virsh list --all

9)配置虚拟机实例伴随宿主机自动启动

[root@node01 ~]# virsh autostart rhel7.1

上述命令将创建/etc/libvirt/qemu/autostart/目录,目录内容为开机自动启动的系统。

10)导出虚拟机配置

[root@node01 ~]# virsh dumpxml rhel7.1 > /etc/libvirt/qemu/rhel7.2.xml

11)虚拟机的删除与添加

删除虚拟机:

[root@node01 ~]# virsh shutdown rhel7.1
[root@node01 ~]# virsh undefine rhel7.1  //删除rhel7.1虚拟机

查看删除结果,rhel7.1的配置文件被删除,但是磁盘文件不会被删除。

[root@node01 ~]# ls /etc/libvirt/qemu

通过“virsh list --all查看不到rhel7.1的信息,说明此虚拟机被删除。

[root@node01 ~]# virsh list --all

通过备份的配置文件重新定义虚拟机:

[root@node01 ~]# cd /etc/libvirt/qemu/
[root@node01 qemu]# mv rhel7.2.xml rhel7.1.xml

重新定义虚拟机:

[root@node01 qemu]# virsh define rhel7.1.xml

查看虚拟机信息:

[root@node01 qemu]# virsh list --all 

12)可通过修改虚拟机配置信息(用来修改系统内存大小,磁盘文件等信息)

直接通过 vim命令修改:

[root@node01 ~]# vim /etc/libvirt/qemu/rhel7.1.xml

通过 virsh 命令修改:

[root@node01 ~]# virsh edit rhel7.1

3.KVM文件管理

通过文件管理可以直接查看、修改、复制虚拟机的内部文件。例如,当系统因为配置问题无法启动时,可以直接修改虚拟机的文件。虚拟机磁盘文件有raw、qcow2与qed格式,KVM虚拟机默认使用qcow2格式,这里介绍本地YUM安装libguestfs-tools后产生的命令行工具,这个工具可以直接读取qcow2格式的磁盘文件。

(1)查看当前磁盘格式:

[root@node01 ~]# mount /dev/cdrom /mnt/
[root@node01 ~]# yum -y install libguestfs-tools

[root@node01 ~]# qemu-img info /data_kvm/store/bdqn_kvm.qcow2

       如果虚拟机磁盘文件不是qcow2格式,可以通过“qemu-img”命令转换磁盘文件格式,如执行 以下操作可以将rhel7.1虚拟机raw格式磁盘转换至qcow2格式。

[root@node01 ~]# virsh shutdown rhel7.1

[root@node01 ~]# qemu-img convert -f raw -O qcow2 /data_kvm/store/test01.img /data_kvm/store/test01.qcow2

执行转换磁盘格式的命令后还需要修改test01 的xml 配置文件中磁盘的类型与磁盘文件名。(因安装的硬盘文件已是qcow2格式,所以无需修改)

[root@node01 ~]# virsh edit rhel7.1

(2)virt-cat命令,类似于cat命令。

[root@node01 ~]# virt-cat -a /data_kvm/store/bdqn_kvm.qcow2 /etc/sysconfig/grub

(3) virt-edit 命令,用于编辑文件,用法与vim基本一致。

[root@node01 ~]# virt-edit -a /data_kvm/store/bdqn_kvm.qcow2 /etc/resolv.conf

(4)virt-df 命令用于查看虚拟机磁盘信息。

[root@node01 ~]# virt-df -h rhel7.1

4.虚拟机克隆

1)查看虚拟机状态

[root@node01 ~]# virsh list --all

2)从 rhel7.1克隆rhel7.2

[root@node01 ~]# virt-clone -o rhel7.1 -n rhel7.2 -f /data_kvm/store/bdqn_kvm2.qcow2

3)查看虚拟机状态

[root@node01 ~]# virsh list --all

4)启动虚拟机

[root@node01 ~]# virsh start rhel7.2

5.虚拟机快照

KVM虚拟机要使用镜像功能,磁盘格式必须为qcow2。下面介绍KVM虚拟机快照备份的过程。

1)对rhel7.1创建快照

[root@node01 ~]# virsh snapshot-create rhel7.1

2)查看虚拟机快照版本信息

[root@node01 ~]# virsh snapshot-current rhel7.1

3)查看快照信息

[root@node01 ~]# virsh snapshot-list rhel7.1

4)创建新快照

[root@node01 ~]# virsh snapshot-create rhel7.1

5)查看快照信息

[root@node01 ~]# virsh snapshot-list rhel7.1

6)恢复虚拟机状态至1704357112

[root@node01 ~]# virsh snapshot-revert rhel7.1 1704357112

7)查看虚拟机快照版本信息

[root@node01 ~]# virsh snapshot-current rhel7.1

8) 测除快照

[root@node01 ~]# virsh snapshot-delete rhel7.1 1704357112

### 如何使用 `virt-install` 命令创建 KVM 虚拟机 #### 创建虚拟机的基本命令结构 为了创建一个基于 KVM虚拟机,可以使用如下基本形式的 `virt-install` 命令: ```bash virt-install \ --name <vm_name> \ --memory <ram_size_in_MB> \ --vcpus=<number_of_vCPUs>,maxvcpus=<maximum_number_of_vCPUs> \ --disk path=<path_to_disk_image>,size=<disk_size_in_GB> \ --cdrom <path_to_iso_image> \ --network bridge=<bridge_interface> \ --graphics vnc,listen=0.0.0.0 \ --os-type linux \ --os-variant generic \ --console pty,target_type=serial \ --location <url_or_path_to_installation_media> ``` 上述命令中的参数可以根据实际需求调整[^2]。 #### 示例:创建名为 "my_vm" 的 CentOS 7 虚拟机 下面给出的是具体实例,该例子展示了怎样利用 ISO 文件来安装操作系统并设置初始硬件规格: ```bash virt-install \ --name my_vm \ --memory 2048 \ --vcpus 2 \ --disk size=10 \ --cdrom /var/lib/libvirt/images/CentOS-7-x86_64-Minimal-2009.iso \ --network bridge=virbr0 \ --graphics vnc,listen=0.0.0.0 \ --os-type linux \ --os-variant centos7.0 ``` 这条命令将会启动一个新的虚拟机,并尝试连接到所提供的 ISO 映像来进行操作系统的安装过程。注意这里的路径 `/var/lib/libvirt/images/CentOS-7-x86_64-Minimal-2009.iso` 应替换为你自己的 ISO 文件位置。 #### 设置高级选项 对于更复杂的场景,还可以添加更多选项来自定义新 VM 的行为。例如: - **指定 Hypervisor 类型**: 如果需要明确指出所使用的 hypervisor 是哪种(比如 kvm),可以通过 `--virt-type=kvm` 来实现。 - **启用自动启动功能**: 若要使虚拟机随宿主机一起开机自启,可加入 `--autostart` 参数。 - **选择虚拟化模式**: 对于那些既支持全虚拟化又支持半虚拟化的环境来说,可以选择特定的一种方式运行 guest OS (`--hvm` 表示完全虚拟化而 `--paravirt` 则表示半虚拟化)[^3]。 #### 注意事项 在执行以上任何一条指令之前,请确保已经正确设置了网络桥接接口 virbr0 或者其他合适的网卡名称作为桥梁设备的一部分。此外,在某些环境中可能还需要额外配置防火墙规则以便允许 VNC 连接访问新建的虚拟机控制台窗口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值