温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Ceph 块设备实战

发布时间:2020-07-29 09:04:26 来源:网络 阅读:1066 作者:司徒晓宇 栏目:大数据

          在上一期博文中,我们已经成功部署了 Ceph 集群,并且我们也掌握了相关 Ceph 的应用。今天,我们就来重点讲下 Ceph 块设备在实际环境中的应用-------将 Ceph 存储系统提供的镜像做为虚拟机的硬盘来安装虚拟机系统。


一、前提

          在今天这个大数据时代,我们大部分企业中,每天产生的数据大小,都可能会是一个天文数字。显然,随着数据量的激增,我们现有的服务器将无法满足实际的需求,我们不可能为了增加一块硬盘而重装 RAID ,也不可能无限制的购买服务器,每个服务器做成单独的 RAID ,再重新开始写数据,那怎么办呢?当然,有需求,我们就有方案,我们选择分布式存储。将所有数据全部写到分布式存储系统中,就可以完美解决我们目前所遇到尴尬。

二、使用 Ceph 块设备

          之前,我们已经有了 Ceph 集群,现在,我们直接使用现有的集群环境即可,关于集群的部署,可参考小弟的另外一篇博文 :https://blog.51cto.com/4746316/2329558

1、拓扑

Ceph 块设备实战

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

Ceph 块设备实战

或者

[root@ceph-a ceph]# qemu-img info rbd:cephrbd/vm-image

Ceph 块设备实战

此命令格式为: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

Ceph 块设备实战

secret 为:93eb11ed-2367-44cd-85ef-56810d4186e6

③、查看 secret

[root@localhost opt]# virsh secret-list

Ceph 块设备实战

7、将虚拟机的 secret 与 Ceph 管理员用户进行关联

①、查看 Ceph 管理员密钥

[root@localhost opt]# cat /etc/ceph/ceph.client.admin.keyring

Ceph 块设备实战

管理员密钥为:AQBBhQ9cJh/tDxAAzdcwBz3QZzPsCfWbQE0qjg==

②、关联 secret 和 Ceph 管理员

[root@localhost opt]# virsh secret-set-value --secret 93eb11ed-2367-44cd-85ef-56810d4186e6 --base64 AQBBhQ9cJh/tDxAAzdcwBz3QZzPsCfWbQE0qjg==

Ceph 块设备实战

8、修改虚拟机的配置文件 centos.xml,将 Ceph 管理员信息写入到该文件中,并指定虚拟机磁盘使用 Ceph 镜像。

[root@localhost opt]# vim centos.xml

Ceph 块设备实战

如上图,找到红框区域,编辑黄颜色框区域的内容为途中样式。或者修改问以下内容,

<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

Ceph 块设备实战

10、打开虚拟机管理器,操作虚拟机

[root@localhost opt]# virt-manager

①、打开并运行虚拟机,如下图:

Ceph 块设备实战

②、当我们运行虚拟机后,发现虚拟机界面提示:no bootable device,这时候,我们单击虚拟机界面左上角的灯泡状的图标。如下图:

Ceph 块设备实战

③、选择引导选项,在右边引导设备顺序中,选择 IDE CDROM1 并勾选, 再单击向上的箭头⇧,如下图:

Ceph 块设备实战

④、确认 IDE CDROM1 已经上移至第一位时,单击 应用 ,如下图:

Ceph 块设备实战

⑤、再左边选择 IDE CDROM1 ,单击右边的 连接 ,如下图:

Ceph 块设备实战

⑥、弹出选择介质对话框后,我们单击 浏览 ,如下图:

Ceph 块设备实战

⑦、弹出选择存储卷后,我们找到自己上的光盘镜像(这里为:CentOS-7-x86_64-Everything-1804.iso),并单击 选择卷 ,如下图:

Ceph 块设备实战

⑧、回到选择介质对话框,单击 确定 ,如下图:

Ceph 块设备实战

⑨、最后,我们将虚拟机强制关机后在开机,就会进入系统安装界面(对于系统的安装过程,我们就不再进行说明了),如下图:

Ceph 块设备实战

到此为止,我们的 Ceph 块设备的实战算是优点眉目,后续深层次的发挥还得我们继续努力。


关于 Ceph 集群的实现,请参阅小弟的另外一篇博文:https://blog.51cto.com/4746316/2329558
关于 CephFS 文件系统的应用,请参阅小弟的另外一篇博文:https://blog.51cto.com/4746316/2330186
关于 Ceph 对象存储,请参阅小弟的另外一篇博文:https://blog.51cto.com/4746316/2330455

三、总结

开始,我们在部署 Ceph 集群的时候,感觉时很麻烦,有时候甚至会很头疼,尤其是遇到错的时候,但是,当我们开始应用时,是不是感觉很简单,很有乐趣?就是这样,知识就是这么有趣,当我们经历完苦涩后就会尝到甜头。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI