libvirt使用rbd作为储存后端
- 利用ceph的rbd储存类型,来为libvirt提供储存pool,进而在pool上创建volume;
- 由于libvirt(virt-install)对ceph的认证支持有点问题,也比较麻烦,将ceph纯作用libvirt后端的情况下,建议将ceph认证关闭:
1. 安装ceph
略,参见ceph手册.
2. 关闭ceph认证
- /etc/ceph/ceph.conf
auth_cluster_required = none auth_service_required = none auth_client_required = none
3. 创建ceph pool
3台机器,6个OSD,依据ceph计算器算的ph,pgp数目:
ceph osd pool create libvirt-pool 512 512 ceph osd lspools
4. 定义kvm pool
cat > pool.xml <<'EOF' <pool type='rbd'> <name>rbd</name> <source> <host name='10.28.200.28' port='6789'/> <host name='10.28.200.29' port='6789'/> <host name='10.28.200.30' port='6789'/> <name>rbd</name> </source> </pool> EOF virsh pool-define pool.xml virsh pool-autostart rbd virsh pool-start rbd virsh pool-info rbd virsh pool-refresh rbd
5. 创建volume
virsh vol-create-as rbd vm02 --capacity 50G --format raw virsh vol-list rbd # 删除vol virsh vol-delete rbd/vm02
因为Ceph镜像支持分层,所以推荐导入vm镜像,然后对其protect,新vm只需要对原镜的快照做clone就行了:
# 导入镜像, raw 数据格式是使用 RBD 时的唯一可用 format 选项; # 从技术上讲,你可以使用 QEMU 支持的其他格式(例如 qcow2 或 vmdk),但是这样做可能会带来额外开销,而且在开启缓存模式下进行虚拟机的热迁移时会导致卷的不安全性; rbd import --image-format 2 Debian-Wheezy-7.11.raw instances/Debian-Wheezy-7.11 --name client.admin
6. virt-install安装虚拟机
–disk
一定要用bus=virtio
,不然ide接口性能很差.
virt-install --name vm02 \ --ram 8196 \ --vcpus=8,sockets=1,cores=8,threads=1 \ --arch=x86_64 \ --os-type=linux \ --os-variant=generic \ --accelerate \ --cdrom /tmp/CentOS-7-x86_64-Minimal-1804.iso \ --boot menu=on \ --disk vol=rbd/vm02,size=50,format=raw,bus=virtio,cache=none \ --network bridge=br1,model=virtio \ --graphics vnc,port=-1,listen=0.0.0.0 \ --channel char_type='unix',target_type='virtio',name='org.qemu.guest_agent.0'
7. 其他
7.1 为现有vm添加磁盘
之前是直接用virt-install来安装一个rbd后端的vm,也可以为现有的vm添加rbd的磁盘:
cat > disk-rbd.xml <<'OEF' <disk type='network' device='disk'> <source protocol='rbd' name='libvirt-pool/new-libvirt-image'> <host name='{monitor-host}' port='6789'/> </source> <target dev='vda' bus='virtio'/> </disk> EOF # 导入xml配置 virsh attach-device vm01 disk-rbd.xml --persistent # 验证 virsh qemu-monitor-command --hmp vm01 'info block'
7.2 虚拟机迁移
- virtualization/kvm/libvirt_with_rbd.txt
- 最后更改: 2019/04/16 18:31
- (外部编辑)