这里需要说明,不是虚拟机通过mount的方式去挂载ceph提供的磁盘,而是在没有操作系统或者虚拟机没有开机之前,通过修改配置文件直接使用ceph提供的磁盘。
KVM虚拟机主要包括两个部分:
1、xxxx.qcw2 #镜像,存放在真机 /var/lib/libvirt/images/
2、xxxx.xml #配置文件,存放在真机 /etc/libvrit/qemu/
有了这另个文件就可以创建一台虚拟机了
虚拟机上的一块磁盘对应了真机上的一个文件,如果把这个文件换成了ceph提供的磁盘,之后再把操作系统安装在ceph磁盘上,这样就相当于云主机了。
0、准备一个虚拟机(有无操作系统都可以)
1、为虚拟机创建一个磁盘:(node1)
rbd create vm-disk --image--feature layering --size 20G
客户机通过mount使用ceph提供的磁盘时,已经从mon处拿到了秘钥了
因此访问的时候不再需要密码
2、为KVM配置无密码访问ceph:(真机)
vim secret.xml #创建临时文件,记录了ceph账户名称,为了让kvm识别
<secret ephemeral='no' private='no'>
<usage type='ceph'>
<name>client.admin secret</name> #ceph账户默认名称
</usage>
</secret>
virsh secret-define secret.xml #把ceph账户设置到secret中,这里会得到一个ceph用户的uuid
virsh secret-list #查看secret列表,找到ceph用户的uuid
cat /etc/ceph/ceph.client.admin.keyring #在node1上查看秘钥
virsh secret-set-value \ #为ceph设置秘钥
--secret 733f0fd1-qwer-4c25-a69f-6681fc19802b \ #ceph用户的uuid
--base64 AQBTsdRapRRSQRAANXtteNUyoEmQHveb75bISg #ceph的秘钥
3、修改KVM对应虚拟机的配置文件:(真机)
# 虚拟机的配置文件都存放在真机 /etc/libvirt/qemu/目录下
vim /etc/libvirt/qemu/client1.xml #不建议使用vim打开文件
vrish list #查看虚拟机对应的配置文件
virsh edit client1 #使用virsh命令打开配置文件
添加如下内容:
<disk type='network' device='disk'> #网盘
<driver name='qemu' type='raw'/>
<auth username='admin'> #密码认证
<secret type='ceph' uuid='733f0fd1-qwer-4c25-a69f-6681fc19802b'/> #需要修改
# ceph用户通过virsh secret-define产生的uuid
# 可以通过virsh secret-list查看
</auth>
<source protocol='rbd' name='rbd/vm-disk'> #name指明了所用的镜像名vm-disk,需要修改
<host name='192.168.4.11' port='6789'/> #指明了mon主机(3选1)和端口,
</source>
<target dev='vdb' bus='virtio'/> #dev需要修改,vdb或者vdc什么的
</disk>
之后虚拟机client1就会多一块名为vdb的磁盘了!
写总结的第三十天!!!