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节点则变成了备,高可用测试完成。