1. 程式人生 > 實用技巧 >Ceph檔案系統快速入門

Ceph檔案系統快速入門

  準備工作

  1,確認你使用了合適的核心版本,詳情見作業系統推薦

lsb_release -a
uname -r

  2,在管理節點上,通過ceph-deploy把 Ceph 安裝到ceph-client節點上。

ceph-deploy install ceph-client

  注意:ceph-client為可以連線的主機名或者IP地址,最好設定好ssh免密,否則需要輸入密碼才能進行安裝

      最好在對應節點設定好yum源使用以下命令安裝,否則安裝很慢或者安裝失敗

yum -y update && yum -y install ceph-radosgw 

  3,確保Ceph 儲存叢集在執行,且處於active+clean狀態。同時,確保至少有一個Ceph 元資料伺服器在執行。

  建立檔案系統

  雖然已建立了元資料伺服器(儲存叢集快速入門),但如果你沒有建立儲存池和檔案系統,它是不會變為活動狀態的。

ceph osd pool create cephfs_data <pg_num>
ceph osd pool create cephfs_metadata <pg_num>
ceph fs new <fs_name> cephfs_metadata cephfs_data

  例如

#建立資料儲存池 名為cephfs_data PG數為64
[root@admin-node my-cluster]# ceph osd pool create cephfs_data 64
pool 'cephfs_data' created
#建立元資料儲存池 名為cephfs_metadate PG數為32 
#元資料儲存池PG數一遍情況下小於資料儲存池PG數
[root@admin-node my-cluster]# ceph osd pool create cephfs_metadata 32
pool 'cephfs_metadata' created

  檢視建立的儲存池

[root@admin-node my-cluster]# ceph osd pool ls
.rgw.root
default.rgw.control
default.rgw.meta
default.rgw.log
rbd_pool
cephfs_data #資料儲存池
cephfs_metadata#元資料儲存池

  檢視資料儲存池詳細資訊

[root@admin-node my-cluster]# ceph osd pool get cephfs_data all
size: 2
min_size: 1
pg_num: 64
pgp_num: 64
crush_rule: replicated_rule
hashpspool: true
nodelete: false
nopgchange: false
nosizechange: false
write_fadvise_dontneed: false
noscrub: false
nodeep-scrub: false
use_gmt_hitset: 1
fast_read: 0
pg_autoscale_mode: warn

  使用剛剛建立的資料儲存池和元資料儲存池建立ceph檔案系統

[root@admin-node my-cluster]# ceph fs new cephfs cephfs_metadata cephfs_data
new fs with metadata pool 7 and data pool 6

  檢視

[root@admin-node my-cluster]# ceph fs ls
#名稱是cephfs                        #元資料儲存池           #資料儲存池
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

  檢視mds服務狀態

[root@admin-node my-cluster]# ceph mds stat
cephfs:1 {0=node1=up:active}

  建立祕鑰檔案

  Ceph 儲存叢集預設啟用認證,你應該有個包含金鑰的配置檔案(但不是金鑰環本身)。用下述方法獲取某一使用者的金鑰:

  1,在金鑰環檔案中找到與某使用者對應的金鑰,例如:

cat ceph.client.admin.keyring

  2,找到用於掛載 Ceph 檔案系統的使用者,複製其金鑰。大概看起來如下所示:

[client.admin]
	key = AQC8kitfy2KmGxAAI7uYR/ra86ViO6omXftiYQ==

  3,開啟文字編輯器。

  4,把金鑰粘帖進去,大概像這樣:

AQC8kitfy2KmGxAAI7uYR/ra86ViO6omXftiYQ==
  5,儲存檔案,命名為admin.secret

  6,確保檔案對使用者有合適的許可權,但對其他使用者不可見

  掛載

  把Ceph FS掛載在client

sudo mkdir /mnt/mycephfs
sudo mount -t ceph {ip-address-of-monitor}:6789:/ /mnt/mycephfs

  掛載失敗

# mount -t ceph 192.168.1.101:6789:/ /mnt/mycephfs/
2020-08-07 09:19:28.852 7fed2b88fb80 -1 auth: unable to find a keyring on /etc/ceph/ceph.client.guest.keyring,/etc/ceph/ceph.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin,: (2) No such file or directory
mount error 22 = Invalid argument

  因為ceph預設開啟認證,所以掛載時需要指定使用者名稱name建立金鑰檔案一節中建立的金鑰檔案secretfile,例如:

mount -t ceph 192.168.1.101:6789:/ /mnt/mycephfs/ -o name=admin,secretfile=admin.secret

  刪除檔案儲存

  解除安裝掛載

umount /mnt/mycephfs

  所有節點停止mds服務

systemctl stop ceph-mds.target

  刪除

[root@admin-node]# ceph fs rm cephfs --yes-i-really-mean-it
[root@admin-node]# ceph osd pool delete cephfs_metadata cephfs_metadata --yes-i-really-really-mean-it
pool 'cephfs_metadata' removed
[root@admin-node]# ceph osd pool delete cephfs_data cephfs_data --yes-i-really-really-mean-it
pool 'cephfs_data' removed

  刪除cephfs和兩個儲存池再次啟動mds服務

systemctl start ceph-mds.target