一、KVM虚拟机常见管理命令(在宿主机中执行)
## 从虚拟机退出到宿主机
[root@localhost ~]# Ctrl + ]
## 查看KVM进程
[root@localhost ~]# ps axu |grep kvm
## 查看libvirt的版本信息
[root@localhost ~]# virsh version
## 列出当前有多少个虚拟机,以及其状态
[root@localhost ~]# virsh list
## 列出关机状态的虚拟机
[root@localhost ~]# virsh list --all
## 进入指定的虚拟机,进入的时候还需要按一下回车
[root@localhost ~]# virsh console vm1
## 编辑虚拟机的配置
[root@localhost ~]# virsh edit vm1
## 使用XML文件创建一个虚拟机
[root@localhost ~]# virsh create vm1.xml
## 使用XML文件定义一个虚拟机,但是不启动
[root@localhost ~]# virsh define vm1.xml
## 启动虚拟机
[root@localhost ~]# virsh start vm1
## 重启虚拟机
[root@localhost ~]# virsh reboot vm1
## 关闭虚拟机,比较优雅地做法,按部就班的关闭虚拟机
[root@localhost ~]# virsh shutdown vm1
## 强制停止虚拟机,是比较暴力的做法,相当于物理机的直接关闭电源
[root@localhost ~]# virsh destroy vm1
## 彻底销毁虚拟机,会删除虚拟机配置文件,但不会删除虚拟磁盘
[root@localhost ~]# virsh undefine vm1 --nvram
## 设置宿主机开机时该虚拟机也开机
[root@localhost ~]# virsh autostart vm1
## 解除开机启动
[root@localhost ~]# virsh autostart --disable vm1
## 列出开机自动启动的虚拟机
[root@localhost ~]# virsh list --autostart
## 挂起虚拟机
[root@localhost ~]# virsh suspend vm1
## 恢复挂起的虚拟机
[root@localhost ~]# virsh resume vm1
二、磁盘管理
说明:qemu-img是QEMU的磁盘管理工具,qemu编译之后,默认会提供这个工具。
1、磁盘创建和磁盘信息查看
## 创建磁盘文件
[root@localhost ~]# qemu-img create -f qcow2 /home/qcow2/vm2.qcow2 400G
## 查看磁盘文件信息。执行该命令,需要虚拟机关机
[root@localhost ~]# qemu-img info /home/qcow2/vm1.qcow2
2、磁盘格式转换
## 基于源磁盘文件创建新的磁盘文件。执行该命令,需要虚拟机关机
[root@localhost ~]# qemu-img convert -f qcow2 -O qcow2 -c vm1.qcow2 vm2.qcow2
## 将iso文件转换成qcow2文件
[root@localhost ~]# qemu-img convert -f raw -O qcow2 example.iso example.qcow2
## 导出虚拟机为vmdk格式。执行该命令,需要虚拟机关机
[root@localhost ~]# qemu-img convert -O qcow2 vm1.qcow2 vm1.vmdk
## 将vmdk格式的文件转换成qcow2文件
[root@localhost ~]# qemu-img convert -O qcow2 vm1.vmdk vm3.qcow2
3、冷添加磁盘
## 创建磁盘文件
[root@localhost ~]# qemu-img create -f qcow2 /home/qcow2/test.qcow2 1G
## 将新创建的磁盘文件添加到vm1虚拟机
[root@localhost ~]# virsh edit vm1
...添加
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/home/qcow2/test.qcow2'/>
<target dev='vdb' bus='virtio'/>
</disk>
## 运行中的虚拟机不会直接生效,这里关机
[root@localhost ~]# virsh shutdown vm1
## 再次启动虚拟机
[root@localhost ~]# virsh start vm1
## 查看是否成功,查看虚拟机有几块磁盘
[root@localhost ~]# virsh domblklist vm1
## 进入虚拟机
[root@localhost ~]# virsh console vm1
## 查看虚拟机的磁盘信息
[root@localhost ~]# fdisk -l
4、热添加磁盘
说明:热添加的磁盘,虚拟机重启后,就没有了,需要配置永久生效才行
## 启动虚拟机
[root@localhost ~]# virsh start vm1
## 添加前,查看虚拟机有几块磁盘
[root@localhost ~]# virsh domblklist vm1
## 创建磁盘
[root@localhost ~]# qemu-img create -f qcow2 /home/qcow2/test.qcow2 1G
#-----------------------
方案一:不配置热添加磁盘永久生效
## 热添加磁盘,将新创建的磁盘热添加到虚拟机vm1,这种方式不是永久生效,重启后磁盘就掉了
[root@localhost ~]# virsh attach-disk vm1 /home/qcow2/test.qcow2 vdb --subdriver=qcow2
## 热添加后,查看是否生效
[root@localhost ~]# virsh domblklist vm1
#-----------------------
方案二:配置热添加磁盘永久生效
## 热添加磁盘
[root@localhost ~]# virsh attach-disk vm1 /home/qcow2/test.qcow2 vdb --subdriver=qcow2
## 添加config参数,配置永久生效
[root@localhost ~]# virsh attach-disk vm1 /home/qcow2/test.qcow2 vdb --subdriver=qcow2 --config --live
## 热添加后,查看是否生效
[root@localhost ~]# virsh domblklist vm1
#-----------------------
## 虚拟机关机
[root@localhost ~]# virsh shutdown vm1
## 再次启动虚拟机
[root@localhost ~]# virsh start vm1
## 再次查看热添加磁盘永久生效是否成功
[root@localhost ~]# virsh domblklist vm1
## 进入虚拟机
[root@localhost ~]# virsh console vm1
Connected to domain vm1
Escape character is ^]
## 虚拟机中查看磁盘信息
[root@10 ~]# fdisk -l
说明:挂载后,我们发现磁盘空间并没有改变,是因为我们还没有刷新磁盘的inode
## 磁盘格式化
[root@10 ~]# mkfs.xfs /dev/vdb
## 挂载使用
[root@10 ~]# mount /dev/vdb /mnt/
## 列出挂载

2588

被折叠的 条评论
为什么被折叠?



