您好,登录后才能下订单哦!
在上一期博文中,我们已经成功部署了 Ceph 集群,并且我们也掌握了相关 Ceph 的应用。今天,我们就来重点讲下 Ceph 块设备在实际环境中的应用-------将 Ceph 存储系统提供的镜像做为虚拟机的硬盘来安装虚拟机系统。
一、前提
在今天这个大数据时代,我们大部分企业中,每天产生的数据大小,都可能会是一个天文数字。显然,随着数据量的激增,我们现有的服务器将无法满足实际的需求,我们不可能为了增加一块硬盘而重装 RAID ,也不可能无限制的购买服务器,每个服务器做成单独的 RAID ,再重新开始写数据,那怎么办呢?当然,有需求,我们就有方案,我们选择分布式存储。将所有数据全部写到分布式存储系统中,就可以完美解决我们目前所遇到尴尬。
二、使用 Ceph 块设备
之前,我们已经有了 Ceph 集群,现在,我们直接使用现有的集群环境即可,关于集群的部署,可参考小弟的另外一篇博文 :https://blog.51cto.com/4746316/2329558
1、拓扑
2、创建名为 vm-image 的镜像,大小为50G
①、创建镜像
[root@ceph-a ceph]# rbd create cephrbd/vm-image --image-feature layering --size 50G
②、查看镜像
[root@ceph-a ceph]# rbd info cephrbd/vm-image
或者
[root@ceph-a ceph]# qemu-img info rbd:cephrbd/vm-image
此命令格式为:qemu info 协议:池/镜像
3、将物理主机做为 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/
4、创建一台 kvm 虚拟机,取名为 mycentos7 ,等向导结束后,强制关机。
5、导出我们刚才创建的 mycentos7 虚拟机的声明文件,再将此虚拟机删除。
[root@localhost opt]# virsh dumpxml mycentos7 >/opt/centos.xml [root@localhost opt]# virsh undefine mycentos7
6、关于虚拟机使用 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
7、将虚拟机的 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==
8、修改虚拟机的配置文件 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 来查看
9、利用 xml 文件来生成虚拟机
[root@localhost opt]# virsh define centos.xml
10、打开虚拟机管理器,操作虚拟机
[root@localhost opt]# virt-manager
①、打开并运行虚拟机,如下图:
②、当我们运行虚拟机后,发现虚拟机界面提示:no bootable device,这时候,我们单击虚拟机界面左上角的灯泡状的图标。如下图:
③、选择引导选项,在右边引导设备顺序中,选择 IDE CDROM1 并勾选, 再单击向上的箭头⇧,如下图:
④、确认 IDE CDROM1 已经上移至第一位时,单击 应用 ,如下图:
⑤、再左边选择 IDE CDROM1 ,单击右边的 连接 ,如下图:
⑥、弹出选择介质对话框后,我们单击 浏览 ,如下图:
⑦、弹出选择存储卷后,我们找到自己上的光盘镜像(这里为:CentOS-7-x86_64-Everything-1804.iso),并单击 选择卷 ,如下图:
⑧、回到选择介质对话框,单击 确定 ,如下图:
⑨、最后,我们将虚拟机强制关机后在开机,就会进入系统安装界面(对于系统的安装过程,我们就不再进行说明了),如下图:
到此为止,我们的 Ceph 块设备的实战算是优点眉目,后续深层次的发挥还得我们继续努力。
关于 Ceph 集群的实现,请参阅小弟的另外一篇博文:https://blog.51cto.com/4746316/2329558
关于 CephFS 文件系统的应用,请参阅小弟的另外一篇博文:https://blog.51cto.com/4746316/2330186
关于 Ceph 对象存储,请参阅小弟的另外一篇博文:https://blog.51cto.com/4746316/2330455
三、总结
开始,我们在部署 Ceph 集群的时候,感觉时很麻烦,有时候甚至会很头疼,尤其是遇到错的时候,但是,当我们开始应用时,是不是感觉很简单,很有乐趣?就是这样,知识就是这么有趣,当我们经历完苦涩后就会尝到甜头。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。