Ceph是一個分布式的存儲系統,可以在統一的系統中提供唯一的對象、塊和文件存儲,Ceph的大致組件如下:
1. Ceph監視器(ceph-mon):用來維護集群狀態的映射,包括監視器映射,管理器映射,OSD映射,MDS映射和CRUSH映射,這些映射是ceph守護程序相互協調所需的關鍵狀態,另外還負責客戶端到ceph存儲的身份驗證;通常要實現高可用,需要3個或以上的ceph-mon服務
2. Ceph管理器(ceph-mgr):ceph manager守護進程負責跟蹤運行時指標和ceph集群當前的狀態,包括存儲利用率,當前性能指標和系統負載等,ceph-mgr還托管一些python模塊,以實現基於web的ceph儀表盤和rest api,通常要實現高可用至少需要2個ceph-mgr進程,通常ceph-mon和ceph-mgr個數相同,1個ceph-mon同節點會伴隨1個ceph-mgr守護進程
3. Ceph對象存儲(ceph-osd):Ceph OSD是對象存儲守護程序,是用來存儲數據的核心組件,實現數據存儲、數據復制和恢復、數據的重新平衡,並會檢查其他Ceph OSD守護程序的心跳來向ceph-mon和ceph-mgr提供一些監控信息,通常至少需要3個ceph-osd才能實現冗余和高可用性,部署的時候ceph-osd會和ceph-mon分開節點部署.
4. Ceph元數據服務(ceph-mds):Ceph MDS為ceph文件系統存儲元數據,注意Ceph塊設備和對象存儲不用mds存儲元數據,Ceph MDS允許POSIX文件系統用戶執行基本命令,而不會將壓力都集中到Ceph OSD集群上,通常mds可以選擇部署至少2個節點,可以和其他組件一起也可以分開
上面4個組件是構建ceph集群最基本的服務,下面就按照上面這4種順序搭建完整的ceph集群,我們這里節點有以下3個:
node1 192.168.3.237
node2 192.168.3.238
node3 192.168.3.239
一個最小型的集群至少要有3個節點,其中:ceph-mon,ceph-mgr,ceph-mds都搭建在node1上,node2和node3上搭建ceph-osd,每個機器1個osd,這里每個機器提前留兩個空白分區給osd使用,都是/dev/sdb1,只分區即可,不用格式化,其實官網提供了好多種部署方式,參考:https://ceph.readthedocs.io/en/latest/install/,其中cephadm方式只支持docker/podman方式啟動,並且在生產環境的支持還不好,我們這里采用手動部署的方式,參考文檔:https://ceph.readthedocs.io/en/latest/install/index_manual/
部署之前仍然要做好下面的准備工作:
1. 所有節點都配置好主機名以及hosts,嚴格對應
2. 所有節點的防火牆都要開放必要端口或者禁用防火牆,保證端口可以訪問到;盡量關閉selinux
3. 保證所有節點的時間是同步的,可以使用ntp/chrony進行時間同步
另外ceph最新的版本工具完全使用python3實現,和python2的環境沒有關系。對於centos7直接可以yum安裝python3,和自帶的2互不影響;對於centos8系統直接就是默認使用python3。不過不用擔心,下面安裝ceph會自動解決python3的依賴問題,這個安裝文檔同時適用於centos7和centos8有區別的地方下面都會注明,然后就讓我們一步一步的搭建起ceph吧!
1. 所有節點安裝ceph軟件包
上面說到的所有節點都需要安裝完整的ceph安裝包,才能進行各類組件的配置,下面先安裝所有必需的包
對於centos7要執行下面的命令安裝yum-plugin-priorities依賴,centos8不需要:
yum install yum-plugin-priorities
然后執行: cat /etc/yum/pluginconf.d/priorities.conf 確認里面的enabled為1,表示啟用plugin
然后安裝ceph的密鑰,centos7和8都要執行,下面不特別說明都是centos7/8都執行命令:
rpm --import 'https://download.ceph.com/keys/release.asc'
然后安裝elep-release倉庫並安裝一些必須的包:
yum install epel-release yum install snappy leveldb gdisk gperftools-libs
然后開始配置ceph的鏡像源,新建鏡像配置文件/etc/yum.repos.d/ceph.repo,官方給出的模板如下:
[ceph] name=Ceph packages for $basearch baseurl=https://download.ceph.com/rpm-{ceph-release}/{distro}/$basearch enabled=1 priority=2 gpgcheck=1 gpgkey=https://download.ceph.com/keys/release.asc [ceph-noarch] name=Ceph noarch packages baseurl=https://download.ceph.com/rpm-{ceph-release}/{distro}/noarch enabled=1 priority=2 gpgcheck=1 gpgkey=https://download.ceph.com/keys/release.asc [ceph-source] name=Ceph source packages baseurl=https://download.ceph.com/rpm-{ceph-release}/{distro}/SRPMS enabled=0 priority=2 gpgcheck=1 gpgkey=https://download.ceph.com/keys/release.asc
其中:{ceph-release}表示要安裝的ceph的版本,{distro}代表系統的平台,對於具體的版本可以直接訪問鏈接https://download.ceph.com查看
可以看到這里最新的是15.2.4,這里就安裝最新的了,{distro}對於centos7替換成el7,centos8替換成el8,另外ceph官方源國內下載龜速,建議修改為中科大的源,地址為:https://mirrors.ustc.edu.cn/ceph/,這下面的結構通常和官方源都是一致的,除了剛發布還沒同步的情況,因此安裝的時候手動打開確認一下比較好,上面的替換有個小技巧,vim底行模式全部替換:
:%s/{ceph-release}/15.2.4/g :%s/{distro}/el8/g
下面是我分別在centos7和8下面中科大源15.2.4的yum源配置:

[ceph] name=Ceph packages for $basearch baseurl=https://mirrors.ustc.edu.cn/ceph/rpm-15.2.4/el7/$basearch enabled=1 priority=2 gpgcheck=1 gpgkey=https://mirrors.ustc.edu.cn/ceph/keys/release.asc [ceph-noarch] name=Ceph noarch packages baseurl=https://mirrors.ustc.edu.cn/ceph/rpm-15.2.4/el7/noarch enabled=1 priority=2 gpgcheck=1 gpgkey=https://mirrors.ustc.edu.cn/ceph/keys/release.asc [ceph-source] name=Ceph source packages baseurl=https://mirrors.ustc.edu.cn/ceph/rpm-15.2.4/el7/SRPMS enabled=0 priority=2 gpgcheck=1 gpgkey=https://mirrors.ustc.edu.cn/ceph/keys/release.asc

[ceph] name=Ceph packages for $basearch baseurl=https://mirrors.ustc.edu.cn/ceph/rpm-15.2.4/el8/$basearch enabled=1 priority=2 gpgcheck=1 gpgkey=https://mirrors.ustc.edu.cn/ceph/keys/release.asc [ceph-noarch] name=Ceph noarch packages baseurl=https://mirrors.ustc.edu.cn/ceph/rpm-15.2.4/el8/noarch enabled=1 priority=2 gpgcheck=1 gpgkey=https://mirrors.ustc.edu.cn/ceph/keys/release.asc [ceph-source] name=Ceph source packages baseurl=https://mirrors.ustc.edu.cn/ceph/rpm-15.2.4/el8/SRPMS enabled=0 priority=2 gpgcheck=1 gpgkey=https://mirrors.ustc.edu.cn/ceph/keys/release.asc
由於占空間先折疊了,需要可以展開查看,寫好配置后保存/etc/yum.repos.d/ceph.repo文件,下面就可以開始安裝ceph了,直接一行yum即可:
yum install ceph
安裝過程中會自動安裝python3.6以及相關的依賴等,安裝完成之后最好再確認一下下面兩個python模塊是否存在,不存在就需要安裝一下:
pip3 install pecan pip3 install werkzeug
否則待會查看ceph狀態的時候會警告模塊不存在的錯誤,比如Module 'restful' has failed dependency: No module named 'werkzeug',表示restful將無法使用
這樣ceph的基本軟件包都安裝完成啦,注意所有節點都要安裝一遍
2. ceph-mon服務部署(node1節點)
這部分部署ceph監視器服務,只在需要部署監視器的節點上執行操作即可,這里是在node1節點上執行操作,具體操作步驟如下:
生成fsid,這個表示ceph集群的唯一id,就是1個uuid格式的字符串,初始情況直接使用命令: uuidgen 生成1個就可以了,要保證整個集群始終一致,然后創建配置文件:/etc/ceph/ceph.conf,正常寫入下面的配置:
[global] fsid = bdd23a75-12fc-4f25-abf5-7a739fa4e2d1 mon initial members = node1 mon host = 192.168.3.237:6789 public network = 192.168.0.0/20 auth cluster required = cephx auth service required = cephx auth client required = cephx osd journal size = 1024 osd pool default size = 2 osd pool default min size = 1 osd pool default pg num = 333 osd pool default pgp num = 333 osd crush chooseleaf type = 1 mon_allow_pool_delete = true
正常/etc/ceph目錄被建好了,ceph的程序默認會自動讀取配置文件ceph.conf,默認集群名稱為ceph,集群名稱是沒有空格的簡單字符串,比如ws-user,cluster1等,使用不同的集群只需要創建集群名命名的配置文件即可,比如:cluster1.conf,ws-user.conf,然后相關的ceph命令要指定集群名,比如ceph --cluster <cluster-name>,下面簡單說一下這里面的配置項:
fsid:這個就是剛才生成的集群唯一uuid
mon initial members:這個配置監視器的主機名列表,多個用逗號分隔
mon host:這個配置監視器節點的ip:port列表,默認ceph-mon服務的端口號是6789,默認不修改可以不寫,多個用逗號分隔
public network: 表示開放客戶端訪問的網絡段,根據實際的情況配置
然后后面3項均表示啟動認證,方式就是cephx
然后重點看:osd pool default size和osd pool default min size,第一個是osd的數據會復制多少份,osd節點或服務的個數至少要>=復制份數,正常生產環境副本至少要設置3個,保證數據安全,我們這里就兩個osd,因此最多設置2;然后后面的配置是允許降級狀態下寫入幾個副本,通常建議至少配置2,我們這里只有兩個osd,因此配置了1
然后是osd pool default pg num和osd pool default pgp num是配置單個pool默認的pg數量和pgp數量,pg全稱是Placement Group,叫放置組,也就數據存儲分組的單元,可以類比為hdfs的塊類似的概念,pgp num要和pg num一致即可
osd crush chooseleaf type這個參數要注意,這個默認是1表示不允許把數據的不同副本放到1個節點上,這樣是為了保證數據安全,集群肯定要配置成1,如果是單機環境搭多個osd做偽分布式測試,那么副本肯定是都在本機的,這個參數務必要改成0,否則最后pgs一直達不到active+clean的狀態,一定要注意這個參數
mon_allow_pool_delete 這個參數表示是否允許刪除pool,就是存儲池,默認是不允許的,改成這個則允許刪除,生產環境建議關閉
上面就是基本的這些配置,然后需要把這個配置文件同步到所有的節點,注意之后ceph.conf只要有任何修改,都要同步到集群全部節點,不管是否用到這些配置項,目的是為了保證集群的配置統一,避免出現特殊的問題
接下來進行相關的配置:
# 為集群創建1個密鑰環,作為監視器密鑰 注意其中的點.不要丟 ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *' # 生成管理員密鑰環 創建admin用戶 也是第一個客戶端用戶 ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *' # 生成bootstrap密鑰環和用戶 ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r' # 然后將剛才生成的密鑰追加到ceph.mon.keyring ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring # 修改ceph.mon.keyring的權限為ceph ceph用戶安裝時已經自動創建 chown ceph:ceph /tmp/ceph.mon.keyring
上面這些命令全部復制執行即可,一行都不用改,然后生成ceph-mon 映射,存儲到/tmp/monmap:
# 注意這里主機名, ip, fsid要換成實際的 monmaptool --create --add node1 192.168.3.237 --fsid bdd23a75-12fc-4f25-abf5-7a739fa4e2d1 /tmp/monmap
然后創建ceph-mon數據目錄:
# 目錄名為: 集群名-主機名 這里是: ceph-node1 mkdir /var/lib/ceph/mon/ceph-node1
使用剛才生成的密鑰環和映射初始化數據目錄:
# -i 指定主機名
ceph-mon --mkfs -i node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
調整數據目錄權限為ceph:
chown -R ceph:ceph /var/lib/ceph/mon/ceph-node1/
然后啟動ceph-mon服務:
# 服務名為:ceph-mon@主機名 systemctl start ceph-mon@node1 # 查看服務狀態 systemctl status ceph-mon@node1
如果正常啟動的話,這時候6789端口應該被監聽了,這樣ceph-mon服務就配置好了,如果配置多個節點的話,要將剛才的ceph.mon.keyring和monmap復制到其他的節點,然后初始化數據目錄啟動服務即可,密鑰環不要多次生成,然后admin用戶和bootstrap-osd用戶的密鑰環同時都要同步到其他的節點,配置好通過下面命令查看ceph狀態:
ceph -s
正常顯示HEALTH_OK即可,然后如果有WARN提示沒有啟用msgr2,需要通過下面的命令啟用一下,然后稍等再次觀察即可正常:
ceph mon enable-msgr2
如果想在其他osd節點也執行ceph -s查看狀態的話,則需要同步/etc/ceph/ceph.client.admin.keyring文件到其他節點即可執行ceph狀態相關的命令。
3. ceph-mgr服務部署(node1節點)
ceph-mgr和ceph-mon是成對出現的,在每個ceph-mon的節點上都應該有ceph-mgr進程,然后就是配置並啟動ceph-mgr守護進程,下面是配置過程:
首先生成mgr身份驗證密鑰:
# 創建mgr密鑰目錄, 命名為: 集群名-主機名 mkdir /var/lib/ceph/mgr/ceph-node1 # 創建mgr身份驗證密鑰 注意里面的mgr.node1,node1為主機名 ceph auth get-or-create mgr.node1 mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-node1/keyring
# 修改權限
chown -R ceph:ceph /var/lib/ceph/mgr/ceph-node1/
注意官網這里用$name代替主機名,這里說的很含糊,建議使用主機名,無論如何和前面指定的那個host保持一致,這樣后面就不會有一些奇怪的問題導致集群不能用,然后啟動ceph-mgr守護進程:
ceph-mgr -i node1
同樣這里-i參數指定主機名,啟動后確認進程是否存在,啟動沒問題的話就可以先kill掉進程然后使用服務的方式啟動即可:
systemctl start ceph-mgr@node1
# 查看服務狀態
systemctl status ceph-mgr@node1
然后執行 ceph status 查看mgr的狀態,正常顯示active就表示可以了
4. ceph-OSD節點部署(node2,node3)
部署ceph-osd的步驟應該在所有的osd節點上運行,當然這里是node2和node3,每個節點都要執行同樣的操作,首先要將node1上面的osd密鑰發送到osd節點,否則創建osd會報錯授權失敗,如果剛才已經同步可以忽略,否則就在node1上執行:
scp /var/lib/ceph/bootstrap-osd/ceph.keyring node2:/var/lib/ceph/bootstrap-osd/ scp /var/lib/ceph/bootstrap-osd/ceph.keyring node3:/var/lib/ceph/bootstrap-osd/
然后才可以操作創建osd存儲,這里創建的存儲類型分為兩種,分別是:BULE STORE和FILE STORE,即分別是默認的存儲以及文件存儲,這倆的區別是文件存儲是每次寫入都需要先寫journal會產生寫放大,最初是針對SATA這類機械盤設計的,沒有對SSD做優化,而Bule store比較新一些主要對Flash介質做了優化所以在SSD上性能更好,通常默認采用bule store,對固態盤更友好,對於機械盤可以采用File store,但是每個File store的osd至少需要兩塊設備,因為每個文件存儲都必須要指定配套的日志存儲設備,我們這里創建的類型為bule store.
執行命令直接創建osd存儲(lvm方式):
ceph-volume lvm create --data /dev/sdb1
--data指定塊設備,我們這為/dev/sdb1,指定之后會有一些輸出,如果沒有報錯正常就創建成功並且自動啟動了osd服務,osd服務名為:ceph-osd@<osd編號>,這里第一個編號就是0了,因此服務名為:ceph-osd@0,使用命令查看osd服務是否正常: systemctl status ceph-osd@0 如果正常即可表示osd進程啟動成功,現在用ceph -s也能看到osd的狀態,然后再進入另外的osd節點,比如進入node3,同樣執行這個命令創建塊存儲,查看服務ceph-osd@1是否正常,最后通過ceph查看狀態如下:
除了上面的命令,使用下面的步驟也同樣可以創建osd節點,步驟更細一些,分為准備和激活兩個階段:
# 准備設備 ceph-volume lvm prepare --data /dev/sdb1 # 查看osd卷列表 注意這個只能查看當前機器本地的osd卷 會得到剛創建的osd id和osd fsid這兩個參數,下面要用到 ceph-volume lvm list # 激活設備 數字0為上面看到的的osd id,然后是osd fsid ceph-volume lvm activate 0 d57f965e-5be2-4778-8bbf-f6fd74afe451
上面這些步驟和開始的命令結果是完全一樣的,可以任選一種方式創建osd,需要特別注意的是最后的fsid不是集群的fsid,而是osd fsid,這個官方的文檔具有誤導性,一定要注意;除了通過命令查看還可以注意到在第一步准備的時候會提示創建/var/lib/ceph/osd/ceph-{osd id}這樣的目錄,這個目錄就能確定osd id,然后執行: cat /var/lib/ceph/osd/ceph-{osd id}/fsid 就可以得到osd fsid提供下一步輸入。
最后官網還提供一種完全手動的方式創建,這種方式不用創建lvm卷而是直接通過原始分區創建,步驟更為繁瑣一些,具體操作如下:
# 生成osd fsid變量 接下來創建osd使用 UUID=$(uuidgen) # 生成osd cephx認證密鑰 OSD_SECRET=$(ceph-authtool --gen-print-key) # 創建osd id,正常id會自增排列 這里同樣會重用之前銷毀的id ID=$(echo "{\"cephx_secret\": \"$OSD_SECRET\"}" | \ ceph osd new $UUID -i - \ -n client.bootstrap-osd -k /var/lib/ceph/bootstrap-osd/ceph.keyring) # 創建新的osd目錄 mkdir /var/lib/ceph/osd/ceph-$ID # 格式化將要用作osd存儲的分區設備 這里為/dev/sdb1 mkfs.xfs /dev/sdb1 # 掛載設備到ceph osd目錄 mount /dev/sdb1 /var/lib/ceph/osd/ceph-$ID # 創建ceph osd密鑰環 ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-$ID/keyring \ --name osd.$ID --add-key $OSD_SECRET # 初始化osd數據目錄 ceph-osd -i $ID --mkfs --osd-uuid $UUID # 設置osd目錄訪問權限 chown -R ceph:ceph /var/lib/ceph/osd/ceph-$ID # 最后啟動服務並設置開機自啟動 systemctl start ceph-osd@$ID systemctl enable ceph-osd@$ID # 查看服務狀態 systemctl status ceph-osd@$ID # 通過ceph查看osd狀態 ceph -s ceph osd ls
上面這種完全手動的方式,在遇到問題時操作比較好使,容易定位到具體的問題,正常使用前兩種lvm分區方式創建osd其實就可以了
5. ceph-mds部署(node1)
最后部署ceph-mds守護進程,這個需要在單獨的mds節點執行,這里選node1為mds節點,下面是配置的過程:
創建mds數據目錄:
# 目錄名同樣是: 集群名-主機名 mkdir /var/lib/ceph/mds/ceph-node1 # 然后創建mds 密鑰環到剛建的目錄中, 注意mds.node1同樣寫主機名 ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-node1/keyring --gen-key -n mds.node1 # 最后導入密鑰環 設置訪問權限 同樣注意主機名 ceph auth add mds.node1 osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-node1/keyring
然后編譯配置文件:/etc/ceph/ceph.conf,添加如下的配置塊:
[mds.node1]
host = node1
這里node1就是主機名,注意根據實際的mds節點替換,保存后將配置文件同步到集群所有節點,最后啟動ceph-mds守護進程:
# -i指定mds節點主機名, -m指定ceph-mon的主機名:端口 ceph-mds --cluster ceph -i node1 -m node1:6789
這里ceph-mds和ceph-mon是同一個節點,因此都是指定node1,啟動之后查看進程是否存在,然后通過ceph -s可以看到mds的狀態:
現在所有的組件狀態都是正常的了
6. 創建存儲池以及ceph文件系統
ceph所有的存儲都是基於存儲池才能分配,因此要先創建存儲池,初始情況至少創建兩個存儲池(RADOS):1個用於存儲數據,1個用於存儲元數據信息,創建命令如下:
# 創建名字為cephfs_data的數據池 pg大小為128 ceph osd pool create cephfs_data 128 # 創建名字為cephfs_metadata的存儲池 pg大小為64 ceph osd pool create cephfs_metadata 64
存儲池可以創建多個,並且所有的存儲池共享底層的存儲空間,比如A存儲池占用了一部分,那個B存儲池就只能用剩下的部分了,而且之后掛載后剩余大小的顯示也會變小,這個后面可以驗證
另外就是注意這里pg大小正常指定128或64就夠了,正常默認1個pool最多支持250個pg,可以通過參數調整限制大小,這里兩個池都是一樣的數據池,后續創建文件系統會指定哪個用於數據,哪個用於元數據存儲,這里名字只是個代號,然后基於存儲池創建文件系統,命令如下:
# ceph fs new <fs名稱> <元數據池> <數據池>
ceph fs new cephfs cephfs_metadata cephfs_data
執行成功之后通過命令: ceph fs ls 查看存在的文件系統,正常顯示如下:
然后還可以執行 ceph mds stat 查看mds當前的活動狀態
7. 掛載文件系統
掛載文件系統有兩種方式,一種是基於操作系統內核直接掛載,另一種是使用ceph fuse掛載,通常推薦第一種方式掛載,這樣性能和效率都是最高的,如果第一種方式掛載不成功的話,可以嘗試使用fuse方式掛載,看看能否定位到什么問題,下面我們直接使用內核方式掛載:
使用內核方式掛載要確認mount是否支持ceph: stat /sbin/mount.ceph ,正常安裝好ceph包都會有/sbin/mount.ceph這個文件,說明支持ceph的文件系統,然后創建掛載點使用admin用戶掛載:
mkdir /mnt/mycephfs mount -t ceph :/ /mnt/mycephfs/ -o name=admin
正常沒有任何錯誤信息就掛載上了,通過 df -h 可以查看掛載的情況以及容量,這個時候容量應該為兩塊盤總容量的一半,因為我們有2個副本;另外注意這里掛載的用戶是admin,還記得之前為admin用戶創建了密鑰環嗎,這里就是讀取的/etc/ceph/ceph.client.admin.keyring這個密鑰文件,如果沒有的話會報錯提示讀取密鑰環文件的順序,需要將文件發送至客戶端掛載,另外如果有專門的客戶端節點,也可以再單獨創建用戶掛載,操作方法如下:
首先按照第一部分的步驟配置源完整的安裝基礎組件和ceph包,安裝完成自動生成/etc/ceph目錄,然后繼續操作創建用戶授權並掛載:
# 獲取最小配置 這里ssh的是ceph-mon節點機器 注意配置hosts 執行按照提示輸入密碼 ssh root@node1 "ceph config generate-minimal-conf" | tee /etc/ceph/ceph.conf # 設置默認權限 chmod 644 /etc/ceph/ceph.conf # 創建用戶密鑰環 cephfs是文件系統名稱 這里用戶名是zzy 對根目錄/有rw權限 ssh root@node1 "ceph fs authorize cephfs client.zzy / rw" | tee /etc/ceph/ceph.client.zzy.keyring # 設置密鑰文件的權限 chmod 600 /etc/ceph/ceph.client.zzy.keyring # 創建掛載點 mkdir /cephfs
按照上面的方法操作完成之后,就可以掛載cephfs了
mount -t ceph :/ /cephfs/ -o name=zzy
其實也可以手動指定ceph-mon的ip:port以及密鑰字符串來掛載也是可以的,密鑰通過keyring文件查看:
mount -t ceph 192.168.3.237:6789:/ /cephfs/ -o name=zzy,secret=AQA5s0RfvaGWBBAA0deE9bB+5Qfogxt823ubRg== # 或者指定secretfile 這個文件內容就是密鑰base64本身 不能包含任何別的東西 mount -t ceph 192.168.3.237:6789:/ /cephfs/ -o name=zzy,secretfile=/etc/ceph/zzy.secret
通常推薦用第一種方法更省事,具體ceph的地址會自動讀取ceph.conf配置文件,密鑰環會自動讀取生成的,而且ceph支持單個文件系統多個客戶端同時掛載,並且任何一個用戶的修改其他用戶都是立即可見的,ceph提供一塊大的包含冗余副本的空間,而多個客戶端會共享這塊空間,如果想獨立掛載可以授權時多個用戶使用不同的目錄,再或者創建多個存儲池,掛載不同的存儲池來實現
經過上面這些步驟,ceph集群就基本上搭建好了,參考官方文檔:https://ceph.readthedocs.io/en/latest/install/manual-deployment/,整個安裝過程都是自己多次驗證通過的,正常走下來應該是沒問題的,如果文中有錯誤或者有任何疑問,歡迎留言哈~