ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Ceph集群里Rbd、Cephfs以及高可用性部署

2021-08-24 22:03:36  阅读:495  来源: 互联网

标签:ceph rbd deploy data Ceph cluster 高可用性 Cephfs root


什么是Ceph FS ?   Ceph FS 即 ceph filesystem,可以实现文件系统共享功能,客户端通过 ceph 协议挂载并使用ceph 集群作为数据存储服务器。 Ceph FS 需要运行 Meta Data Services(MDS)服务,其守护进程为 ceph-mds,ceph-mds 进程管理与 cephFS 上存储的文件相关的元数据,并协调对 ceph 存储集群的访问。   什么是RBD ?   RBD(RADOS Block Devices)即为块存储的一种,RBD 通过 librbd 库与 OSD 进行交互,RBD 为KVM 等虚拟化技术和云服务(如 OpenStack 和 CloudStack)提供高性能和无限可扩展性的存 储后端,这些系统依赖于 libvirt 和 QEMU 实用程序与 RBD 进行集成,客户端基于 librbd 库即可将 RADOS 存储集群用作块设备,不过,用于 rbd 的存储池需要事先启用 rbd 功能并进 行初始化。     环境准备:   Ceph集群一套、测试端一台(这里采用Centos7)   说明:本次部署均采用普通账号权限     RBD部署:   1.部署Ceph(上期已经部署完成,这里不再演示,直接使用即可)   2.登录到ceph-deploy虚拟机执行ceph-s,查看状态  [ root@ceph-deploy ceph-cluster]#ceph -s

 

 

3.准备2个普通账号,一个用于Ceph FS部署,一个用于Rbd   这里我创建2个账号,gfeng和gfeng-fs     首先:创建用于rbd的存储池并进行初始化等操作:

 

 

创建存储池:
[root@ceph-deploy ceph-cluster]# ceph osd pool create rbd-data1 32 32
pool 'rbd-data1' created
#验证存储池:
[ceph@ceph-deploy ceph-cluster]$ ceph osd pool ls

 

在存储池启用 rbd:  

[root@ceph-deploy ceph-cluster]# ceph osd pool application enable rbd-data1 rbd 

enabled application 'rbd' on pool 'rbd-data1'

 

初始化 rbd:
[root@ceph-deploy ceph-cluster]# rbd pool init -p rbd-data1

 

4.创建 img 镜像:

rbd 存储池并不能直接用于块设备,而是需要事先在其中按需创建映像(image),并把映 像文件作为块设备使用。rbd 命令可用于创建、查看及删除块设备相在的映像(image), 

以及克隆映像、创建快照、将映像回滚到快照和查看快照等管理操作。

 

 

创建镜像:

 

#创建两个镜像:
# rbd create data-img1 --size 5G --pool rbd-data --image-format 2 --image-feature layering
# rbd create data-img2 --size 10G --pool rbd-data --image-format 2 --image-feature layering

 

验证镜像:
#rbd ls --pool rbd-data 
data-img1
data-img2

 

列出镜像个多信息: 

#rbd ls --pool rbd-data -l 

NAME
SIZE PARENT FMT PROT LOCK
data-img1 5  GiB 2
data-img2 10 GiB 2

 

  5.准备普通账号:

创建普通账户
[root@ceph-deploy ceph-cluster]#ceph auth add client.gfeng mon 'allow r' osd 'allow rwx pool=rbd-data1'
added key for client.gfeng
验证用户信息
[root@ceph-deploy ceph-cluster]# ceph auth get client.gfeng

创建用 keyring 文件
[root@ceph-deploy ceph-cluster]#ceph-authtool -C ceph.client.gfeng.keyring
creating ceph.client.gfeng.keyring

 

 


导出用户 keyring
[root@ceph-deploy ceph-cluster]# ceph auth get client.gfeng -o ceph.client.gfeng.keyring
exported keyring for client.gfeng

查看生成的文件:

 

 

6.配置客户端使用 RBD:

在 centos 客户端挂载 RBD,使用普通账号 gfeng 及挂载 RBD 并验证使用。

客户端要想挂载使用 ceph RBD,需要安装 ceph 客户端组件 ceph-common,但是 ceph-common
不在 cenos 的 yum 仓库,因此需要单独配置 yum 源。
#配置 yum 源:
# yum install epel-release
# yum install
https://mirrors.aliyun.com/ceph/rpm-octopus/el7/noarch/ceph-release-1-1.el7.noarch.rpm -y

安装 ceph 客户端:

 

[root@ceph-client ~]# yum install ceph-common -y

 

7.同步普通用户认证文件:

[root@ceph-deploy ceph-cluster]#  scp ceph.conf ceph.client.gfeng.keyring root@客户端IP:/etc/ceph/

 

登录客户端验证权限:

cd /etc/ceph

[root@ceph-client  ceph]#ceph --user gfeng -s #查看集群状态,看是否能显示

 

 

 

使用普通用户权限映射 rbd 

[root@ceph-deploy ceph-cluster]#  rbd --user gfeng -p rbd-data map data-img1

[root@ceph-deploy ceph-cluster]#  rbd --user gfeng -p rbd-data map data-img1

如果出现如下提示:

rbd: sysfs write failed
RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd
feature disable rbd-data1/data-img1 object-map".
In some cases useful info is found in syslog - try "dmesg | tail".
rbd: map failed: (6) No such device or address #部分特性不支持,需要在 ceph 管理端关闭特性
object-map

管理端关闭 img data-img1 特性 object-map
[root@ceph-deploy ceph-cluster]# rbd feature disable rbd-data/data-img1 object-map

 [root@ceph-deploy ceph-cluster]# rbd feature disable rbd-data/data-img2 object-map

客户端再次映射,成功后执行lsblk查看

 

 

8.对rbd0和rbd1执行mkfs.xfs格式化操作,并创建2个挂载目录/data/ceph-disk0和/data/ceph-disk1

使用mount命令挂载:

mount /dev/rbd0 /data/ceph-disk0

mount /dev/rbd1 /data/ceph-disk1

最后执行df -h 查看

 

9.扩容测试:

rbd 镜像空间拉伸:

[root@ceph-deploy ceph-cluster]# rbd resize --pool rbd-data --image data-img2 --size 15G

[root@ceph-deploy ceph-cluster]# rbd ls -p rbd-data -l 查看结果

 

 

 

10.到客户端执行扩容操作并验证:

[root@ceph-client  ceph]#xfs_growfs /dev/rbd1

再次df -h 查看:

 

 

至此普通账号映射挂载,以及拉升扩容成功

 

Ceph FS部署:

 

1.要使用 cephFS,需要部署 cephfs 服务

在管理节点mgr1上执行:

root@ceph-mgr1:~# apt-cache madison ceph-mds
root@ceph-mgr1:~# apt install ceph-mds

部署完成后,登录到ceph-deploy上执行:

root@ceph-deploy:~/ceph-cluster#  ceph-deploy mds create ceph-mgr1

 

2.创建 CephFS metadata 和 data 存储池: 

使用 CephFS 之前需要事先于集群中创建一个文件系统,并为其分别指定元数据和数据相关
的存储池。下面创建一个名为 cephfs 的文件系统用于测试,它使用 cephfs-metadata 为元数
据存储池,使用 cephfs-data 为数据存储池:

创建存储池:

[root@ceph-deploy ceph-cluster]# ceph osd pool create cephfs-metadata 32 32
pool 'cephfs-metadata' created #保存 metadata 的 pool
[root@ceph-deploy ceph-cluster]#ceph osd pool create cephfs-data 64 64

 

3.创建 cephFS 并验证:

 

 

 执行:ceph mds stat 验证状态:

 

 

4.登录到ceph-deploy上创建普通账号gfeng-fs

 

创建普通账号并给与权限:

 

查看状态:

 

 

 

 5.创建用 keyring 文件

   导出生成key文件

 

 

6.同步普通配置文件:

[root@ceph-deploy ceph-cluster]#  scp ceph.conf gfeng-key root@客户端IP:/etc/ceph/

 

7.客户端挂载测试

内核空间挂载 ceph-fs: 客户端挂载有两种方式,一是内核空间一是用户空间,内核空间挂载需要内核支持 ceph 模 块,用户空间挂载需要安装 ceph-fuse

首先分别在ceph-mon1,ceph-mon2,ceph-mon3上安装ceph-mds

[root@ceph-mon1 ~]# apt install ceph-mds -y
[root@ceph-mon2 ~]# apt install ceph-mds -y
[root@ceph-mon3 ~]# apt install ceph-mds -y

ceph-mds使用的端口为6789

执行挂载:

 

 

 

这里要指定刚才生成导出的key文件

写入数据测试:

 

 

服务端验证:

 

 

可以看到数据已经写入

 

高可用部署:

从上面刚才的配置,我们可以看到只有mgr1一个节点,所以这里打算加入3台,组成2主2备

 

1.安装ceph-mds

这里打算使用4台,分别是ceph-mgr1、ceph-mgr2、ceph-mon2、ceph-mon3

由于之前其他几台节点已经安装过ceph-mds,这里只需安装ceph-mgr2节点

[root@ceph-mgr2 ~]# apt install ceph-mds -y 

 

2:添加 MDS 服务器:

在部署节点ceph-deploy上操作:


root@ceph-deploy:~/ceph-cluster# ceph-deploy mds create ceph-mon2

按照上面操作,将其他2台也加入

如果出现如下报错:

 

 

执行强制同步:

root@ceph-deploy:~/ceph-cluster# ceph-deploy --overwrite-conf config push ceph-mon2

 

验证 mds 服务器当前状态:
root@ceph-deploy:~/ceph-cluster# ceph mds stat
mycephfs-1/1/1 up {0=ceph-mgr1=up:active}, 3 up:standby

发现有一主三备

当前处于激活状态的 mds 服务器有一台,处于备份状态的 mds 服务器有三台,设置处于激活状态 mds 的数量,设置为为两主两备

root@ceph-deploy:~/ceph-cluster#ceph fs set mycephfs max_mds 2

再次执行查看:

 

 执行ceph fs get mycephfs查看:

 

 

 

 

3.高可用测试:

模拟故障,重启或停掉mon2节点服务

 

 

到服务端查看:

 

 

 

 发现ceph-mon3已经变成了主,而模拟故障的ceph-mon2节点则变成了备,高可用测试完成。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

       

 

 

 


 

 


 

 

 

 

   

标签:ceph,rbd,deploy,data,Ceph,cluster,高可用性,Cephfs,root
来源: https://www.cnblogs.com/N56041/p/15182692.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有