KVM必须要配置一个目录,来作为存储磁盘镜像,称之为存储池。
kvm默认存储池的位置:/var/lib/libvirt/images/
如果想扩容,新建目录作为存储池,操作如下(注:一般不会在根下建存储池)
1 自定义创建一个目录,基于此作为存储池
mkdir -p /volume
2 定义存储池及其目录
virsh pool-define-as vmdisk --type dir --target /volume
vmdisk 为新建存储池的名称,可自定义
3 创建已定义的存储池
virsh pool-build vmdisk
4 激活并自动启动已定义的存储池
1. virsh pool-start vmdisk 2. virsh pool-autostart vmdisk 3. virsh pool-list --all
5 存储池创建完毕,可以在存储池中创建虚拟机磁盘文件,以下用两种不同方法,来创建磁盘文件
qemu-img create -f qcow2 /volume/huhu02.img 1G virsh vol-create-as vmdisk huhu03.img 2G --format qcow2
6 我有一台kvm虚拟机zhu03,修改它配置文件,将我新建的两块磁盘都扩容进去
vim /etc/libvirt/qemu/zhu03.xml
<disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/volume/huhu02.img'/> <target dev='vdc' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x14' function='0x0'/> </disk> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/volume/huhu03.img'/> <target dev='vdd' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x19' function='0x0'/> </disk>
注:我已经有了vda和vdb两块磁盘,所以这两块磁盘 dev部分名词分别写为vdc和vdd。然后slot名称不可以用,且名称后两位需要《=1f
7 登录kvm的zhu03虚拟机,会看到四张磁盘,接下来分区,格式化,挂载都和平时操作一样
localhost login: root
Password:
Last login: Tue Jul 12 18:22:32 on ttyS0
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 5G 0 disk
├─vda1 253:1 0 1G 0 part /boot
├─vda2 253:2 0 512M 0 part [SWAP]
└─vda3 253:3 0 3.5G 0 part /
vdb 253:16 0 1G 0 disk
vdc 253:32 0 1G 0 disk
vdd 253:48 0 2G 0 disk
删除虚拟机存储卷的顺序反过来即可
1 删除存储池的磁盘文件
1. virsh vol-delete --pool vmdisk huhu02.img 2. virsh vol-delete --pool vmdisk huhu03.img
2 再删除存储池
1. virsh pool-destroy vmdisk 2. virsh pool-delete vmdisk 3. virsh pool-undefine vmdisk