005.Ceph文件系統基礎使用

一 Ceph文件系統

1.1 概述

CephFS也稱ceph文件系統,是一個POSIX兼容的分佈式文件系統。
實現ceph文件系統的要求:
  • 須要一個已經正常運行的ceph集羣;
  • 至少包含一個ceph元數據服務器(MDS)。

1.2 相關名詞

Ceph:元數據服務器( MDS ),爲 Ceph 文件系統存儲元數據。元數據服務器使得POSIX 文件系統的用戶們,能夠在不對 Ceph 存儲集羣形成負擔的前提下,執行諸如 ls、find 等基本命令。
元數據:能夠簡單的理解爲它是描述數據的數據,意思就是描述數據的信息。如,數據的大小、位置、屬性等等信息。使用MDS後,在執行數據搜索和查看的時候,首先查找的是元數據,經過元數據中的描述信息準確且快速的找到數據,而不用大費周章的在整個集羣的osd上查找。

1.3 客戶端I/O機制

客戶端向cephfs發起I/O時,過程大體爲:
  1. client端與mds節點通信,獲取metadata信息(metadata也存在osd上)
  2. client直接寫數據到osd
022

1.4 掛載ceph文件系統的方式

  1. 使用本地系統內核驅動程序進行掛載
  2. 使用ceph fuse進行掛載

二 文件系統使用

2.1 查看集羣

  1 [root@deploy ~]# su - manager
  2 [manager@deploy ~]$ cd my-cluster/
  3 [manager@deploy my-cluster]$ ssh node1 sudo ceph -s
 
023

2.2 建立MDS

見《003.Ceph擴展集羣》步驟2.2。
提示:使用ceph-deploy部署ceph mds比較快捷,但依賴於以前ceph-deploy時候生成的一些配置和keyring文件,因此此文檔承接以前文檔,並在部署Ceph集羣目錄。
  1 [root@deploy ~]# su - manager
  2 [manager@deploy ~]$ cd my-cluster/
  3 [manager@deploy my-cluster]$ ssh node1 sudo ceph mds stat	#查看mds信息
  4 , 1 up:standby
 

2.3 建立文件系統

  1 [manager@deploy my-cluster]$ ssh node1 sudo ceph osd pool create cephfs_data 16 16	        #建立data pool
  2 [manager@deploy my-cluster]$ ssh node1 sudo ceph osd pool create cephfs_metadata 16 16	#建立metadata pool
  3 [manager@deploy my-cluster]$ ssh node1 sudo ceph fs new cephfs cephfs_metadata cephfs_data	#建立cephfs
  4 [manager@deploy my-cluster]$ ssh node1 sudo ceph fs ls		                        #查看驗證
  5 name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
  6 [manager@deploy my-cluster]$ ssh node1 sudo ceph mds stat
  7 cephfs-1/1/1 up  {0=node1=up:active}				                        #再次查看mds信息
 
注意:一個cephfs至少要求兩個RADOS存儲池,一個爲data,一個爲metadata。
建議:
metadata pool設置較高級別的副本級別,由於metadata的損壞可能致使整個文件系統不用;
metadata pool使用低延時存儲,好比SSD,由於metadata會直接影響客戶端的響應速度。

2.4 建立認證密鑰

  1 [root@node1 ~]# cat /etc/ceph/ceph.client.admin.keyring		#查看key
  2 [client.admin]
  3         key = AQDs9D1cCanyJBAA/rj991xmzENsIgEesfe8KQ==
  4 [root@cephclient ~]# vi /root/admin.secret			        #客戶端建立key
  5 AQDs9D1cCanyJBAA/rj991xmzENsIgEesfe8KQ==
 

三 客戶端使用文件系統(內核驅動)

3.1 客戶端執行掛載

  1 [root@cephclient ~]# mkdir /mnt/mycephfs
  2 [root@cephclient ~]# mount -t ceph -o name=admin,secretfile=/root/admin.secret \
  3 172.24.8.72:6789:/ /mnt/mycephfs/				        #執行掛載並附帶key文件
 
提示:Ceph存儲集羣默認狀況下已啓用身份驗證的狀況下運行,掛載時須要指明相關密鑰(非密鑰環自己)。

2.6 確認驗證

  1 [root@cephclient ~]# df -hT
  2 Filesystem              Type      Size  Used Avail Use% Mounted on
  3 ……
  4 172.24.8.72:6789:/      ceph       18G     0   18G   0% /mnt/mycephfs
  5 [root@cephclient ~]# echo 'This is my test file!' >>/mnt/mycephfs/test.txt

四 客戶端使用文件系統(FUSE)

4.1 安裝FUSE相關包

  1 [root@cephclient ~]# yum -y install ceph-fuse
  2 [manager@deploy my-cluster]$ ceph-deploy --overwrite-conf mon add cephclient
 
提示:Ceph v0.55及後續版本默認開啓了cephx認證。從用戶空間( FUSE )掛載Ceph文件系統前,確保客戶端有一份Ceph配置副本、和具有Ceph元數據服務器的密鑰環,本實驗經過以上命令直接從deploy節點推送相關配置。也可經過手動scp方式將mon節點的ceph.conf和ceph.client.admin.keyring複製至客戶端節點。

4.2 客戶端執行掛載

  1 [root@cephclient ~]# mkdir /mnt/mycephfs
  2 [root@cephclient ~]# ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 172.24.8.72:6789 /mnt/mycephfs/			#執行掛載並附帶key文件
 
提示:Ceph存儲集羣默認狀況下已啓用身份驗證的狀況下運行,若keyring位於/etc/ceph目錄可省略-k參數,ceph-fuse -m 172.24.8.72:6789 /mnt/mycephfs。

4.3 確認驗證

  1 [root@cephclient ~]# df -hT
  2 Filesystem              Type      Size  Used Avail Use% Mounted on
  3 ……
  4 ceph-fuse               fuse.ceph-fuse   18G     0   18G   0% /mnt/mycephfs
  5 [root@cephclient ~]# echo 'This is my test file!' >>/mnt/mycephfs/test2.txt

參考:http://docs.ceph.com/docs/master/start/quick-rbd/node

相關文章
相關標籤/搜索