在上一期博文中,咱们已经成功部署了 Ceph 集群,而且咱们也掌握了相关 Ceph 的应用。今天,咱们就来重点讲下 Ceph 块设备在实际环境中的应用-------将 Ceph 存储系统提供的镜像作为虚拟机的硬盘来安装虚拟机系统。vim
1、前提centos
在今天这个大数据时代,咱们大部分企业中,天天产生的数据大小,均可能会是一个天文数字。显然,随着数据量的激增,咱们现有的服务器将没法知足实际的需求,咱们不可能为了增长一块硬盘而重装 RAID ,也不可能无限制的购买服务器,每一个服务器作成单独的 RAID ,再从新开始写数据,那怎么办呢?固然,有需求,咱们就有方案,咱们选择分布式存储。将全部数据所有写到分布式存储系统中,就能够完美解决咱们目前所遇到尴尬。bash
2、使用 Ceph 块设备服务器
以前,咱们已经有了 Ceph 集群,如今,咱们直接使用现有的集群环境便可,关于集群的部署,可参考小弟的另一篇博文 :http://www.javashuo.com/article/p-ghmqdwwp-cq.htmldom
一、拓扑分布式
二、建立名为 vm-image 的镜像,大小为50Gide
①、建立镜像大数据
[root@ceph-a ceph]# rbd create cephrbd/vm-image --image-feature layering --size 50G
②、查看镜像ui
[root@ceph-a ceph]# rbd info cephrbd/vm-image
或者centos7
[root@ceph-a ceph]# qemu-img info rbd:cephrbd/vm-image
此命令格式为:qemu info 协议:池/镜像
三、将物理主机作为 Ceph 集群的客户端,安装客户端软件包,并将 Ceph 的配置文件拷贝到物理主机中。
[root@localhost ~]# yum -y install ceph-common [root@ceph-a ceph]# scp /etc/ceph/ceph.c* root@192.168.20.151:/etc/ceph/
四、建立一台 kvm 虚拟机,取名为 mycentos7 ,等向导结束后,强制关机。
五、导出咱们刚才建立的 mycentos7 虚拟机的声明文件,再将此虚拟机删除。
[root@localhost opt]# virsh dumpxml mycentos7 >/opt/centos.xml [root@localhost opt]# virsh undefine mycentos7
六、关于虚拟机使用 Ceph 的镜像,首先须要 Ceph 的认证,而认证方式就是先生成虚拟机的 secret ,再将 secret 与 Ceph 帐户进行映射。
①、编写 Ceph 帐户信息文件,建立临时 secret.xml 文件,帐户信息文件的模板可在官方文档中找到。
[root@localhost opt]# vim secret.xml
内容以下:
<secret ephemeral='no' private='no'> <usage type='ceph'> <name>client.admin secret</name> </usage> </secret>
②、生成 secret.xml 文件
[root@localhost opt]# virsh secret-define --file secret.xml
secret 为:93eb11ed-2367-44cd-85ef-56810d4186e6
③、查看 secret
[root@localhost opt]# virsh secret-list
七、将虚拟机的 secret 与 Ceph 管理员用户进行关联
①、查看 Ceph 管理员密钥
[root@localhost opt]# cat /etc/ceph/ceph.client.admin.keyring
管理员密钥为:AQBBhQ9cJh/tDxAAzdcwBz3QZzPsCfWbQE0qjg==
②、关联 secret 和 Ceph 管理员
[root@localhost opt]# virsh secret-set-value --secret 93eb11ed-2367-44cd-85ef-56810d4186e6 --base64 AQBBhQ9cJh/tDxAAzdcwBz3QZzPsCfWbQE0qjg==
八、修改虚拟机的配置文件 centos.xml,将 Ceph 管理员信息写入到该文件中,并指定虚拟机磁盘使用 Ceph 镜像。
[root@localhost opt]# vim centos.xml
如上图,找到红框区域,编辑黄颜色框区域的内容为途中样式。或者修改问如下内容,
<disk type='network' device='disk'> <driver name='qemu' type='raw'/> <auth username='admin'> <secret type='ceph' uuid='93eb11ed-2367-44cd-85ef-56810d4186e6'/> </auth> <source protocol='rbd' name='cephrbd/vm-image'> <host name='192.168.20.144' port='6789'/> </source> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </disk>
注意:device='disk',是使用磁盘,device='cdrom',是使用光盘,别搞错。disk type 字段修改成 network,driver type 字段修改成 raw,添加 auth 部分,uuid 须要根据本身的实际状况来填写,添加 source 部分,name 字段须要根据本身建立的池和镜像来填写,host name 和 port 字段须要写本身 Ceph 集群的 ceph-mon 的地址和端口。可使用 netstat –tpnl 来查看
九、利用 xml 文件来生成虚拟机
[root@localhost opt]# virsh define centos.xml
十、打开虚拟机管理器,操做虚拟机
[root@localhost opt]# virt-manager
①、打开并运行虚拟机,以下图:
②、当咱们运行虚拟机后,发现虚拟机界面提示:no bootable device,这时候,咱们单击虚拟机界面左上角的灯泡状的图标。以下图:
③、选择引导选项,在右边引导设备顺序中,选择 IDE CDROM1 并勾选, 再单击向上的箭头⇧,以下图:
④、确认 IDE CDROM1 已经上移至第一位时,单击 应用 ,以下图:
⑤、再左边选择 IDE CDROM1 ,单击右边的 链接 ,以下图:
⑥、弹出选择介质对话框后,咱们单击 浏览 ,以下图:
⑦、弹出选择存储卷后,咱们找到本身上的光盘镜像(这里为:CentOS-7-x86_64-Everything-1804.iso),并单击 选择卷 ,以下图:
⑧、回到选择介质对话框,单击 肯定 ,以下图:
⑨、最后,咱们将虚拟机强制关机后在开机,就会进入系统安装界面(对于系统的安装过程,咱们就再也不进行说明了),以下图:
到此为止,咱们的 Ceph 块设备的实战算是优势眉目,后续深层次的发挥还得咱们继续努力。
关于 Ceph 集群的实现,请参阅小弟的另一篇博文:http://www.javashuo.com/article/p-ghmqdwwp-cq.html
关于 CephFS 文件系统的应用,请参阅小弟的另一篇博文:http://www.javashuo.com/article/p-clfsvaka-x.html
关于 Ceph 对象存储,请参阅小弟的另一篇博文:http://www.javashuo.com/article/p-kxntrolu-gc.html
3、总结
开始,咱们在部署 Ceph 集群的时候,感受时很麻烦,有时候甚至会很头疼,尤为是遇到错的时候,可是,当咱们开始应用时,是否是感受很简单,颇有乐趣?就是这样,知识就是这么有趣,当咱们经历完苦涩后就会尝到甜头。