KVM存储虚拟化配置:
学习目标:
- 能够通过virt-manager添加硬盘;
- 能够通过virsh添加硬盘;
- 能够通过xml文件添加硬盘;
- 能够了解本地存储的作用;
- 能够设置本地存储;
- 能够了解网络存储的作用;
- 能够设置网络存储;
虚拟机添加硬盘:
virt-manager添加硬盘:
通过添加和删除可以看出来虚拟机对硬盘是支持热插拔的。
lsblk
virsh命令添加硬盘:
virsh list --all
virsh domblklist centos7-1
# 创建磁盘
qemu-img create -f qcow2 /disk1.img 3G
或者使用命令:
dd if=/dev/zero of=/disk1.img bs=10M count=10
virsh --help |grep attach
virsh attach-disk centos7-1 --source /disk1.img --target vdb --cache writeback --subdriver qcow2
virsh domblklist centos7-1
# 删除命令
virsh detach-disk centos7-1 vdb
# 使用方法:
# 格式化
mkfs.xfs /dev/vdb
mkdir /vdb
mount /dev/vdb /vdb
echo "123" >> /vdb/test.txt
# 硬盘持久化:
virsh attach-disk centos7-1 --source /disk1.img --target vdb --cache writeback --subdriver qcow2 --persistent
# 检查虚拟机的配置信息
virsh dumpxml centos7-1 |grep disk -C5
#
vim /etc/fstab
/dev/vdb /vdb xfs defaults 0 0
保存退出
存储池管理:
本地存储池
网络存储池:
本地存储:
Directory-based Disk-based:
Partition-based LVM-based:
本地存储查看方法:
virsh pool-list --all
ls /etc/libvirt/storage/
ls /etc/libvirt/storage/autostart
virsh pool-edit default
ls /var/lib/libvirt/images
存储池使用的目的:
我们使用的虚拟机比较多,磁盘文件需要安装很多软件,那我们的磁盘文件就不够用了,默认的位置渐渐空间就不够用了,那就需要找新的位置,让新的位置成为磁盘镜像的存储池,那虚拟机的磁盘镜像就可以存进去。
理解就是存储池就是一个目录,磁盘镜像文件就是存在这个目录中。
本地存储池添加方法:
virt-manager:
mkdir /home/pooltest
在存储池中添加该位置,注意名称要唯一;
然后在里面添加卷,也就是镜像文件。
virsh命令:
qemu-img create -f qcow2 /home/pooltest/disk1.img 3G
网络存储池:
NFS-based、Glusterfs-based、Ceph-based、iSCSi-based、GFS-based、SAN-based。
方法一:
存储端:
mkdir /home/nfs-storage
vim /etc/exports
/home/nfs-storage *(rw,rync,no_root_squash)
KVM 客户端:
showmount -e 192.168.1.1
mkdir /home/remote_nfs_192_168_1_1
然后使用virt-manager进行挂载。
验证:
virsh pool-list --all
virsh pool-edit remote_nfs_192_168_1_1
方法二:
virsh pool-define-as
pool-create-as name --print-xml type [source-host] [source-path] [source-dev] [source-
name] [<target>] [--source-format format]
[root@localhost ~]# mkdir /home/remote_nfs_192_168_1_1 #如与方法一冲突,可考虑换目录名
[root@localhost ~]# virsh pool-define-as my-pool --source-format nfs --type netfs --source-host 192.168.1.1 --source-path /home/nfs-storage --target /home/remote_nfs_192_168_1_1
[root@localhost ~]# virsh pool-autostart my-pool #设置自启动
[root@localhost ~]# virsh pool-start my-pool #设置启动
my-pool: 本地存储池名称
--target: 挂载本地目录