1、基础知识
1.1、需求
虚拟机在操作过程中,会遇到各种数据容量操作,我们常见的操作就是
初始化时候,磁盘容量不合适,我们可以进行调整
数据容量不足,我们就增加一块数据磁盘
数据容量过大,我们就删减一块数据磁盘
1.2、常见语法
# 磁盘基本信息
virsh domblklist --details 虚拟磁盘名称
# 磁盘容量调整
qemu-img resize 虚拟磁盘名称 +5G
# 挂载磁盘
virsh attach-disk <虚拟机名称> --source <新磁盘名> --target <磁盘类型名> --persistent
注意:
磁盘类型名一般是 sda~ 或者 vda~,这里的 vda 不一定是磁盘内部的信息,而是kvm管理的名称
# 卸载磁盘
virsh detach-disk <虚拟机名称> <磁盘类型名>
2、实战
2.1、磁盘容量调整
# 关闭虚拟机
virsh shutdown CentOS-8-x86_64
# 查看当前磁盘状态
qemu-img info /opt/CentOS-8-x86_64.raw
# 调整磁盘大小
qemu-img resize /opt/CentOS-8-x86_64.raw +1G
# 查看磁盘状态
qemu-img info /opt/CentOS-8-x86_64.raw
# 再次调整磁盘大小
qemu-img resize /opt/CentOS-8-x86_64.raw +2G
# 查看磁盘状态
qemu-img info /opt/CentOS-8-x86_64.raw
# 重启虚拟机
virsh start CentOS-8-x86_64
# 进入虚拟机查看磁盘大小
# fdisk -l
根据上面实验得知:
动态调整磁盘容量大小调整成功
2.2、新增磁盘
# 关闭虚拟机
virsh shutdown CentOS-8-x86_64
# 新增一块磁盘
qemu-img create -f raw /opt/image.raw 2G
# 查看效果
ll /opt/
# 编辑配置文件
[root@linux-node1 ~]# virsh edit CentOS-8-x86_64
38 <disk type='file' device='disk'>
39 <driver name='qemu' type='raw'/>
40 <source file='/opt/image.raw'/>
41 <target dev='vda' bus='virtio'/>
42 </disk>
...
注意:
添加 38-42行的内容
和之前的disk配置缺少了<address type='pci'... 的内容。 -- 该部分内容会自动增加
# 连接进入虚拟机确认新增磁盘已识别
fdisk -l
# 格式化磁盘
mkfs.ext4 /dev/vdb
# 新建一个目录来挂载新硬盘
mkdir /data
mount /dev/vdb /data/
mount | grep vdb
umount /data
# 开机自动挂载
blkid /dev/vdb
echo 'UUID=fd53695a-4a6f-4735-8439-f02707ec7a6e /data ext4 defaults 1 2'>>
/etc/fstab
mount -a
mount | grep vdb
df -h | egrep 'Files|vd'
# 可以看到:新增磁盘的方法调整虚拟机的磁盘容量,在虚拟机中想要看到效果,必须重启虚拟机