0%

KVM虚拟机操作命令

创建虚拟机

1
2
3
4
virt-install --name ubuntu --memory 4096 --vcpus=2 \
--os-variant ubuntu22.04 --graphics vnc,password=000000,listen=::,port=591 \
--network bridge=br0 --disk path=/home/xxx/vm/ubuntu/ubuntu.qcow2,size=30 \
--cdrom /home/xxx/iso/ubuntu-22.04.1-live-server-amd64.iso --debug

--os-variant 可用值选项查看 virt-install --osinfo list, 但ubuntu22.04不在列表里貌似也没问题

安装linux用lvm创建分区,方便后期扩容

可使用vnc viewer连接安装操作系统, 端口5911,密码000000 会持久化,一直可用,配置保存到/etc/libvirt/qemu/ubuntu.xml ,命令virsh dumpxml ubuntu可查看配置

如果是从已装好的硬盘文件导入:

1
2
3
4
virt-install --name ubuntu2 --memory 4096 --vcpus=2 \
--os-variant ubuntu22.04 --graphics vnc,password=000000,listen=::,port=5912 \
--network bridge=br0 --disk path=/home/xxx/xxx/ubuntu2/ubuntu.qcow2 \
--debug --import

日常操作

开启虚拟机

1
virsh start ubuntu

关闭虚拟机

1
virsh shutdown ubuntu

查看状态

1
virsh list --all

设置开机启动

1
virsh autostart ubuntu

取消开机启动

1
virsh autostart --disable ubuntu

查看虚拟机IP
在桥接模式下,我暂时没找到在宿主机上查看虚拟机ip的办法,目前用Vnc viewer连接vnc端口进入虚拟机查看ip

磁盘扩容

基于lvm文件系统

查看磁盘信息

1
qemu-img info /home/xxx/vm/ubuntu/ubuntu.qcow2

扩容10G

1
qemu-img resize /home/xxx/vm/ubuntu/ubuntu.qcow2 +10G

重启虚拟机

以上在母机中操作

查看硬盘是否变大
sudo fdisk -l
image/20221124152535_3b17839e7a06f0b59731a307fe1f1f8c.png

/dev/vda 已经从30g变成40g

给新加的10g分区
sudo fdisk /dev/vda

image/20221124153119_bec3758de4fedd074ccd217351938b65.png

输入p命令,所有选项直接回车,默认分配所有可用空间

创建物理卷
sudo pvcreate /dev/vda4

查看物理卷, 加入物理卷/dev/vda4到卷组ubuntu-vg
sudo pvs

image/20221124154229_1ed6b44425d455ad10f631851a33a258.png

查看逻辑卷
sudo lvdisplay
image/20221124150509_c021809d58216d06e85aeb4d1235df08.png

记录逻辑卷 LV Path: /dev/ubuntu-vg/ubuntu-lv

查看物理卷
sudo pvs
image/20221124150801_98c26e86b93320a11507660e946cc20a.png

有14G可用

执行逻辑卷扩容

1
sudo lvextend -L +14G /dev/ubuntu-vg/ubuntu-lv

或者
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

分配全部空间

image/20221124150951_63a1b5eaaa73937985909b64978d6ca6.png

ext4文件系统用resize2fs,xfs系统用xfs_growfs

执行文件系统扩容

sudo resize2fs /dev/ubuntu-vg/ubuntu-lv

image/20221124151431_307bf899569a5edfeeed0dbe002b1414.png

可以看到,可用空间变大了

快照

ubuntu虚拟机创建快照

virsh snapshot-create ubuntu

image/20221124160721_1087ca2d71c370d1b0c389d0e0e99a12.png

查看ubuntu虚拟机快照

virsh snapshot-list ubuntu

快照配置文件在 /var/lib/libvirt/qemu/snapshot/ubuntu

恢复快照

virsh snapshot-revert ubuntu 1669277133

秒级恢复,不需要先关机

磁盘管理

创建磁盘

qemu-img create -f qcow2 ubuntu-1.qcow2 10G

image/20221124171951_08bcb211680fc2b5dc182c1addbbc0fb.png

查看磁盘信息
qemu-img info ubuntu-3.qcow2

image/20221125100932_67050269ce147dd7fadcd6e4bcf476fa.png

磁盘被挂载时会被锁住,无法查看信息

添加磁盘

virsh edit ubuntu 打开虚拟机配置文件,将刚刚创建的文件加到虚拟机中

image/20221124173525_21a25a804bdade4ce24ee0ba79a5f176.png

1
2
3
4
5
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' discard='unmap'/>
<source file='/home/xxx/vm/ubuntu/ubuntu.qcow2'/>
<target dev='vda' bus='virtio'/>
</disk>

图中的address标签,会在保存后自动生成, 也可以用命令添加磁盘:

virsh attach-disk --domain ubuntu --source ~/vm/ubuntu/ubuntu-1.qcow2 --target vdb --subdriver qcow2 --persistent

--persistent选项会将配置持久化保存到xml中,重启后仍然有效。

添加后再按上面的扩容方法,分区扩容

查看挂载的磁盘
virsh domblklist ubuntu
image/20221125100218_461946060329cc49b5c044416f268785.png

卸载磁盘
virsh detach-disk ubuntu /home/xxx/vm/ubuntu/ubuntu-3.qcow2

image/20221125100417_e3e52ee6da994f555d349a6631061928.png

删除虚拟机

查看快照

1
virsh snapshot-list --domain vm-name

删除快照

1
virsh snapshot-delete --domain vm-name --snapshotname 3sep2016u1

删除虚拟机

1
virsh undefine vm-name

最后一步,删除磁盘文件