
創建存儲池:
[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
創建普通賬戶
[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節點則變成了備,高可用測試完成。