ceph 分布式存储安装
?
?
?
?
[root@localhost ~]# rm -rf /etc/yum.repos.d/*.repo
下載阿里云的base源
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@localhost ~]# sed -i '/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo
[root@localhost ~]# sed -i '/aliyuncs/d' /etc/yum.repos.d/epel.repo
[root@localhost ~]# sed -i 's/$releasever/7.3.1611/g' /etc/yum.repos.d/CentOS-Base.repo
[root@localhost ~]# vi /etc/yum.repos.d/ceph.repo
添加
?
進(jìn)行yum的makecache
[root@localhost ~]# yum makecache
[root@admin ceph-cluster]# yum -y install ceph-deploy
1.在管理節(jié)點上,進(jìn)入剛創(chuàng)建的放置配置文件的目錄,用 ceph-deploy 執(zhí)行如下步驟
mkdir? /opt/cluster-ceph
cd /opt/cluster-ceph
ceph-deploy new monitor1 monitor2 monitor3
?
2. 把 Ceph 配置文件里的默認(rèn)副本數(shù)從 3 改成 2 ,這樣只有兩個 OSD 也可以達(dá)到 active + clean 狀態(tài)。
把下面這行加入 [global] 段:
osd_pool_default_size = 2
?
3. 如果你有多個網(wǎng)卡,可以把 public network 寫入 Ceph 配置文件的 [global] 段下
public network = {ip-address}/{netmask}
?
?
[global] fsid = 251e2c73-0434-4181-8f3b-7377341d60b1 mon_initial_members = master1, master2, master3 mon_host = 172.16.8.185,172.16.8.186,172.16.8.187 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx public_network = 172.16.8.0/24 osd_pool_default_size = 2 mon_pg_warn_max_per_osd = 1000 osd pool default pg num = 256 osd pool default pgp num = 256 mon clock drift allowed = 2 mon clock drift warn backoff = 30?
?
4.安裝 Ceph
方法一
[root@admin ceph-cluster]# ceph-deploy install monitor1 monitor2 monitor3 osd1 osd2 admin
//
如果下載不了
方法二
下載ceph的相關(guān)rpm到本地
[root@localhost ~]# yum install --downloadonly --downloaddir=/tmp/ceph ceph
在每臺主機(jī)上安裝ceph
[root@localhost ~]# yum localinstall -C -y --disablerepo=* /tmp/ceph/*.rpm
方法三
# 替換 ceph 源 為 163 源
sed -i 's/download\.ceph\.com/mirrors\.163\.com\/ceph/g' /etc/yum.repos.d/ceph.repo
yum -y install ceph ceph-radosgw
//
?
5. 配置初始 monitor(s)、并收集所有密鑰:
# 請務(wù)必在 ceph-cluster 目錄下
[root@admin ceph-cluster]# ceph-deploy mon create-initial
[ceph_deploy.gatherkeys][INFO ] Storing ceph.client.admin.keyring
[ceph_deploy.gatherkeys][INFO ] Storing ceph.bootstrap-mds.keyring
[ceph_deploy.gatherkeys][INFO ] Storing ceph.bootstrap-mgr.keyring
[ceph_deploy.gatherkeys][INFO ] keyring 'ceph.mon.keyring' already exists
[ceph_deploy.gatherkeys][INFO ] Storing ceph.bootstrap-osd.keyring
[ceph_deploy.gatherkeys][INFO ] Storing ceph.bootstrap-rgw.keyring
[ceph_deploy.gatherkeys][INFO ] Destroy temp directory /tmp/tmpJ9K9Z2
6. 初始化 ceph.osd 節(jié)點
創(chuàng)建存儲空間
[root@osd1 ~]# mkdir -p /opt/ceph-osd
[root@osd1 ~]# chown ceph.ceph /opt/ceph-osd/ -R
[root@osd2 ~]# mkdir -p /opt/ceph-osd
[root@osd2 ~]# chown ceph.ceph /opt/ceph-osd/ -R
創(chuàng)建OSD:
[root@admin ceph-cluster]# ceph-deploy osd prepare osd1:/opt/ceph-osd osd2:/opt/ceph-osd
激活 OSD
[root@admin ceph-cluster]# ceph-deploy osd activate osd1:/opt/ceph-osd osd2:/opt/ceph-osd
用 ceph-deploy 把配置文件和 admin 密鑰拷貝到管理節(jié)點和 Ceph 節(jié)點,這樣你每次執(zhí)行 Ceph 命令行時就無需指定 monitor 地址和 ceph.client.admin.keyring 了
[root@admin ceph-cluster]# ceph-deploy admin monitor1 monitor2 monitor3 osd1 osd2 admin
確保你對 ceph.client.admin.keyring 有正確的操作權(quán)限。
chmod +r /etc/ceph/ceph.client.admin.keyring (所有機(jī)器)
?
如果配置文件更改,需要同步配置文件到所有節(jié)點
[root@admin ceph-cluster]# ?ceph-deploy ?--overwrite-conf ?admin monitor1 monitor2 monitor3 osd1 osd2 admin
?
7.檢查集群的健康狀況。
[root@admin ceph-cluster]# ceph health
查看狀態(tài)
[root@admin ceph-cluster]# ceph -s
cluster 33411039-d7cb-442d-be2a-77fb9e90eb0a
health HEALTH_OK
monmap e1: 3 mons at {monitor1=192.168.20.223:6789/0,monitor2=192.168.20.224:6789/0,monitor3=192.168.20.225:6789/0}
election epoch 6, quorum 0,1,2 monitor1,monitor2,monitor3
osdmap e12: 2 osds: 2 up, 2 in
flags sortbitwise,require_jewel_osds
pgmap v26: 64 pgs, 1 pools, 0 bytes data, 0 objects
26445 MB used, 63614 MB / 90060 MB avail
64 active+clean
8.查看osd tree
[root@admin ceph-cluster]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 0.08578 root default
-2 0.04289 host osd1
0 0.04289 osd.0 up 1.00000 1.00000
-3 0.04289 host osd2
1 0.04289 osd.1 up 1.00000 1.00000
monitor 進(jìn)程為 /usr/bin/ceph-mon -f --cluster ceph --id monitor1 --setuser ceph --setgroup ceph
systemctl start ceph-mon.target
systemctl enable ceph-mon.target
systemctl start ceph-osd.target
systemctl enable ceph-osd.target
?
9.擴(kuò)展集群(擴(kuò)容)
增加一個 元數(shù)據(jù)osd
[root@admin ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@osd3
[root@osd3 ~]# rm /etc/yum.repos.d/* -rf
[root@admin ~]# scp /etc/yum.repos.d/*.repo root@osd3:/etc/yum.repos.d/
[root@osd3 ~]# yum makecache
[root@osd3 ~]# yum -y update && yum -y install ceph-deploy
[root@osd3 ~]# yum localinstall -C -y --disablerepo=* /tmp/ceph/*.rpm
[root@osd3 ~]# mkdir -p /opt/ceph-osd
[root@osd3 ~]# chown ceph.ceph /opt/ceph-osd/ -R
[root@admin ~]# ceph-deploy admin osd3
使用ceph-deploy 節(jié)點準(zhǔn)備 OSD
[root@admin ceph-cluster]# ceph-deploy osd prepare osd3:/opt/ceph-osd
激活 OSD
[root@admin ceph-cluster]# ceph-deploy osd activate osd3:/opt/ceph-osd
##注意: ntp 時間一定要同步
檢查Ceph monitor仲裁狀態(tài)
[root@admin ceph-cluster]# ceph quorum_status --format json-pretty
?
?
CEPH 塊設(shè)備
塊是一個字節(jié)序列(例如,一個 512 字節(jié)的數(shù)據(jù)塊)。基于塊的存儲接口是最常見的存儲數(shù)據(jù)方法,它們基于旋轉(zhuǎn)介質(zhì),像硬盤、 CD 、軟盤、甚至傳統(tǒng)的 9 磁道磁帶。無處不在的塊設(shè)備接口使虛擬塊設(shè)備成為與 Ceph 這樣的海量存儲系統(tǒng)交互的理想之選。
Ceph 塊設(shè)備是精簡配置的、大小可調(diào)且將數(shù)據(jù)條帶化存儲到集群內(nèi)的多個 OSD 。 Ceph 塊設(shè)備利用?RADOS?的多種能力,如快照、復(fù)制和一致性。 Ceph 的?RADOS?塊設(shè)備( RBD )使用內(nèi)核模塊或 librbd 庫與 OSD 交互。
?
?
?
創(chuàng)建存儲池 ----- 創(chuàng)建塊設(shè)備image ?--------ceph客戶端掛載
?
?
存儲池
如果你開始部署集群時沒有創(chuàng)建存儲池, Ceph 會用默認(rèn)存儲池存數(shù)據(jù)。存儲池提供的功能:
- 自恢復(fù)力:?你可以設(shè)置在不丟數(shù)據(jù)的前提下允許多少 OSD 失效,對多副本存儲池來說,此值是一對象應(yīng)達(dá)到的副本數(shù)。典型配置存儲一個對象和它的一個副本(即?size?=?2),但你可以更改副本數(shù);對糾刪編碼的存儲池來說,此值是編碼塊數(shù)(即糾刪碼配置里的?m=2?)。
- 歸置組:?你可以設(shè)置一個存儲池的歸置組數(shù)量。典型配置給每個 OSD 分配大約 100 個歸置組,這樣,不用過多計算資源就能得到較優(yōu)的均衡。配置了多個存儲池時,要考慮到這些存儲池和整個集群的歸置組數(shù)量要合理。
- CRUSH 規(guī)則:?當(dāng)你在存儲池里存數(shù)據(jù)的時候,與此存儲池相關(guān)聯(lián)的 CRUSH 規(guī)則集可控制 CRUSH 算法,并以此操縱集群內(nèi)對象及其副本的復(fù)制(或糾刪碼編碼的存儲池里的數(shù)據(jù)塊)。你可以自定義存儲池的 CRUSH 規(guī)則。
- 快照:?用?ceph?osd?pool?mksnap?創(chuàng)建快照的時候,實際上創(chuàng)建了某一特定存儲池的快照。
- 設(shè)置所有者:?你可以設(shè)置一個用戶 ID 為一個存儲池的所有者。
要把數(shù)據(jù)組織到存儲池里,你可以列出、創(chuàng)建、刪除存儲池,也可以查看每個存儲池的利用率。
列出存儲池
ceph osd? lspools
?
歸置組
確定 pg_num 取值是強制性的,因為不能自動計算。下面是幾個常用的值:少于 5 個 OSD 時可把 pg_num 設(shè)置為 128 OSD 數(shù)量在 5 到 10 個時,可把 pg_num 設(shè)置為 512 OSD 數(shù)量在 10 到 50 個時,可把 pg_num 設(shè)置為 4096 OSD 數(shù)量大于 50 時,你得理解權(quán)衡方法、以及如何自己計算 pg_num 取值 自己計算 pg_num 取值時可借助 pgcalc 工具 隨著 OSD 數(shù)量的增加,正確的 pg_num 取值變得更加重要,因為它顯著地影響著集群的行為、以及出錯時的數(shù)據(jù)持久性(即災(zāi)難性事件導(dǎo)致數(shù)據(jù)丟失的概率)歸置組是如何使用
儲池內(nèi)的歸置組( PG )把對象匯聚在一起,因為跟蹤每一個對象的位置及其元數(shù)據(jù)需要大量計算——即一個擁有數(shù)百萬對象的系統(tǒng),不可能在對象這一級追蹤位置
?
?
Ceph客戶端會計算某一對象應(yīng)該位于哪個歸置組里,它是這樣實現(xiàn)的,先給對象ID做哈希操作,然后再根據(jù)指定存儲池里的PG數(shù)量,存儲池ID做一個運算。詳情見PG映射到OSD。
放置組中的對象內(nèi)容存儲在一組OSD中。例如,在大小為2的復(fù)制池中,每個放置組將在兩個OSD上存儲對象,如下所示。
?
?
如果OSD#2失敗,另一個將被分配到放置組#1,并且將填充OSD#1中的所有對象的副本。如果池大小從兩個更改為三個,則會為展示位置組分配一個額外的OSD,并將接收展示位置組中的所有對象的副本。
展示位置組不擁有OSD,他們將其與同一個游泳池中的其他展示位置組或其他游泳池共享。如果OSD#2失敗,則位置組#2也將不得不使用OSD#3來恢復(fù)對象的副本。
當(dāng)展示位置組數(shù)量增加時,新的展示位置組將被分配OSD。CRUSH功能的結(jié)果也將發(fā)生變化,以前的放置組中的一些對象將被復(fù)制到新的放置組中,并從舊放置組中移除
?
創(chuàng)建存儲池
創(chuàng)建存儲池前先看看存儲池、歸置組和 CRUSH 配置參考。你最好在配置文件里重置默認(rèn)歸置組數(shù)量,因為默認(rèn)值并不理想。關(guān)于歸置組數(shù)量請參考設(shè)置歸置組數(shù)量
?創(chuàng)建存儲池命令:
ceph osd pool create {pool-name} pg_numceph osd pool create data 128
?
?刪除存儲池
ceph osd pool delete {pool-name} [{pool-name} --yes-i-really-really-mean-it][root@admin ~]# ceph osd pool delete data data --yes-i-really-really-mean-it
#注意要寫 2個存儲池data
?
重命名存儲池
[root@admin ~]# ceph osd pool rename data fengjian?
查看存儲池統(tǒng)計信息
[root@admin ~]# rados df pool name KB objects clones degraded unfound rd rd KB wr wr KB fengjian 0 0 0 0 0 0 0 0 0 rbd 1 4 0 0 0 98 75 8 2total used 53286476 4total avail 85045696total space 138332172?
查看 pool 具體參數(shù)
[root@admin ~]# ceph osd dump | grep pool
pool 0 'rbd' replicated size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 38 flags hashpspool stripe_width 0
pool 4 'fengjian' replicated size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 128 pgp_num 128 last_change 40 flags hashpspool stripe_width 0
?
rbd?命令可用于創(chuàng)建、羅列、內(nèi)省和刪除塊設(shè)備image,也可克隆image、創(chuàng)建快照、回滾快照、查看快照等等創(chuàng)建塊設(shè)備image
要在??fengjian?這個存儲池中創(chuàng)建一個名為?kubernetes-pvc?大小為 20GB 的image
[root@admin ~]# rbd create --size 50000 fengjian/kubernetes-pvc-1如果創(chuàng)建image時不指定存儲池,它將使用默認(rèn)的?rbd?存儲池
?
羅列塊設(shè)備image
[root@admin ~]# rbd ls fengjian kubernetes-pvc-1如果不寫 pool fengjian ,那么默認(rèn) 顯示rbd 這個pool [root@admin ~]# rbd ls檢索image信息
[root@admin ~]# rbd info fengjian/kubernetes-pvc-1 rbd image 'kubernetes-pvc-1':size 50000 MB in 12500 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.107c74b0dc51format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenflags:默認(rèn)不指定pool,默認(rèn)是rbd pool ?
調(diào)整塊設(shè)備image大小
Ceph 塊設(shè)備image是精簡配置,只有在你開始寫入數(shù)據(jù)時它們才會占用物理空間。然而,它們都有最大容量,就是你設(shè)置的?--size?選項。如果你想增加(或減小) Ceph 塊設(shè)備image的最大尺寸,執(zhí)行下列命令:rbd resize --size 2048 pool/foo (to increase) rbd resize --size 2048 pool/foo --allow-shrink (to decrease)
增加塊設(shè)備image大小 [root@admin ~]# rbd resize --size 51000 fengjian/kubernetes-pvc-1 Resizing image: 100% complete...done. [root@admin ~]# rbd info fengjian/kubernetes-pvc-1 rbd image 'kubernetes-pvc-1':size 51000 MB in 12750 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.107c74b0dc51format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenflags:
減小塊設(shè)備image大小
[root@admin ~]# rbd resize --size 50000 fengjian/kubernetes-pvc-1 --allow-shrink Resizing image: 100% complete...done. [root@admin ~]# rbd info fengjian/kubernetes-pvc-1 rbd image 'kubernetes-pvc-1':size 50000 MB in 12500 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.107c74b0dc51format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenflags:
?
刪除塊設(shè)備image
rbd rm {pool-name}/{image-name} [root@admin ~]# rbd rm foo [root@admin ~]# rbd rm fengjian/kubernetes-pvc-1?
映射塊設(shè)備
用?rbd?把image名映射為內(nèi)核模塊。必須指定image名、存儲池名、和用戶名。若 RBD 內(nèi)核模塊尚未加載,?rbd?命令會自動加載。
rbd map rbd/myimage --id admin?
如果你啟用了?cephx?認(rèn)證,還必須提供密鑰,可以用密鑰環(huán)或密鑰文件指定密鑰。
rbd map rbd/myimage --id admin --keyring /path/to/keyring rbd map rbd/myimage --id admin --keyfile /path/to/file?
查看已映射塊設(shè)備
可以用?rbd?命令的?showmapped?選項查看映射為內(nèi)核模塊的塊設(shè)備imagerbd showmapped
?
取消塊設(shè)備映射
rbd unmap /dev/rbd/rbd/foo ?啟動所有守護(hù)進(jìn)程
start ceph-all?
停止所有守護(hù)進(jìn)程
stop ceph-all?
?在 ceph admin ?節(jié)點上創(chuàng)建 image時,出現(xiàn)報錯
創(chuàng)建了一個rbd鏡像$ rbd create --size 50000 docker_test 然后,在Ceph client端將該rbd鏡像映射為本地設(shè)備時出錯。$ rbd map docker_test --name client.adminrbd: sysfs write failed RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable". In some cases useful info is found in syslog - try "dmesg | tail" or so.?
修改Ceph配置文件/etc/ceph/ceph.conf,在global section下,增加?rbd_default_features = 1
[root@admin ceph-cluster]# echo "rbd_default_features = 1" >> ceph.conf拷貝到所有的 ceph 節(jié)點
[root@admin ceph-cluster]# ceph-deploy --overwrite-conf admin monitor1 monitor2 monitor3 osd1 osd2 osd3
需要重啟 ceph 所有節(jié)點進(jìn)程
?
rdb map出錯rbd sysfs write failed
創(chuàng)建了一個rbd鏡像
$ rbd create --size 4096 docker_test然后,在Ceph client端將該rbd鏡像映射為本地設(shè)備時出錯。
$ rbd map docker_test --name client.adminrbd: sysfs write failed RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable". In some cases useful info is found in syslog - try "dmesg | tail" or so.原因:
rbd鏡像的一些特性,OS kernel并不支持,所以映射失敗。我們查看下該鏡像支持了哪些特性。
可以看到特性feature一欄,由于我OS的kernel只支持layering,其他都不支持,所以需要把部分不支持的特性disable掉。
方法一:
直接diable這個rbd鏡像的不支持的特性:
方法二:
創(chuàng)建rbd鏡像時就指明需要的特性,如:
方法三:
如果還想一勞永逸,那么就在執(zhí)行創(chuàng)建rbd鏡像命令的服務(wù)器中,修改Ceph配置文件/etc/ceph/ceph.conf,在global section下,增加
再創(chuàng)建rdb鏡像。
$ rbd create --size 4096 docker_test通過上述三種方法后,查看rbd鏡像的信息。
$ rbd info docker_testrbd image 'docker_test':size 4096 MB in 1024 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.43a22ae8944aformat: 2features: layeringflags:再次嘗試映射rdb鏡像到本地塊設(shè)備,成功!
$ rbd map docker_test --name client.admin/dev/rbd0k8s node 節(jié)點安裝ceph
1 在管理節(jié)點,通過ceph-deploy 把ceph 安裝到 ceph-client 節(jié)點
ceph-deploy install node1 node2 node3 node4
?
2.在管理節(jié)點上,用?ceph-deploy?把 Ceph 配置文件和?ceph.client.admin.keyring?拷貝到?ceph-client
ceph-deploy admin node1 node2 node3 node4#需要注意權(quán)限
chmod?+r/etc/ceph/ceph.client.admin.keyring
?
CEPH 文件系統(tǒng)
注釋: 不能在admin服務(wù)器上建立元數(shù)據(jù),可以是monitor 或 osd
?
Ceph 文件系統(tǒng)( Ceph FS )是個 POSIX 兼容的文件系統(tǒng),它使用 Ceph 存儲集群來存儲數(shù)據(jù)。 Ceph 文件系統(tǒng)與 Ceph 塊設(shè)備、同時提供 S3 和 Swift API 的 Ceph 對象存儲、或者原生庫( librados )一樣,都使用著相同的 Ceph 存儲集群系統(tǒng)。
?
?
?Ceph 文件系統(tǒng)要求 Ceph 存儲集群內(nèi)至少有一個?Ceph 元數(shù)據(jù)服務(wù)器
增加/拆除元數(shù)據(jù)服務(wù)器
用?ceph-deploy?增加和拆除元數(shù)據(jù)服務(wù)器很簡單,只要一個命令就可以增加或拆除一或多個元數(shù)據(jù)服務(wù)器
?
增加一元數(shù)據(jù)服務(wù)器
部署完監(jiān)視器和 OSD 后,還可以部署元數(shù)據(jù)服務(wù)器
?
{host-name}[:{daemon-name}] [{host-name}[:{daemon-name}] ...]?
[root@admin ceph-cluster]# cd /opt/ceph-cluster[root@admin ceph-cluster]# ceph-deploy mds create monitor1 monitor2 monitor3?
monitor服務(wù)器上,查詢mds 進(jìn)程
?
拆除一元數(shù)據(jù)服務(wù)器
尚未實現(xiàn)……?
?
?
創(chuàng)建 CEPH 文件系統(tǒng)
?
?
?一個 Ceph 文件系統(tǒng)需要至少兩個 RADOS 存儲池,一個用于數(shù)據(jù)、一個用于元數(shù)據(jù)。
- 為元數(shù)據(jù)存儲池設(shè)置較高的副本水平,因為此存儲池丟失任何數(shù)據(jù)都會導(dǎo)致整個文件系統(tǒng)失效。
- 為元數(shù)據(jù)存儲池分配低延時存儲器(像 SSD ),因為它會直接影響到客戶端的操作延時。
?
[root@monitor1 ceph-cluster]# ceph osd pool create cephfs_data 128 pool 'cephfs_data' created [root@monitor1 ceph-cluster]# ceph osd pool create cephfs_metadata 128 pool 'cephfs_metadata' created創(chuàng)建好存儲池后,你就可以用?fs?new?命令創(chuàng)建文件系統(tǒng)
[root@monitor1 ceph-cluster]# ceph fs new cephfs cephfs_metadata cephfs_data new fs with metadata pool 8 and data pool 7######刪除文件系統(tǒng)
1.停止進(jìn)程
[root@monitor1 ceph-cluster]# systemctl stop ceph-mds.target
2.將mds標(biāo)記成失效
[root@monitor1 ceph-cluster]# ceph mds fail 0
3. 刪除ceph文件系統(tǒng)
[root@monitor1 ceph-cluster]# ceph fs rm cephfs --yes-ireally-really-mean-it [root@monitor1 ceph-cluster]# ceph fs ls name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
?
?文件系統(tǒng)創(chuàng)建完畢后, MDS 服務(wù)器就能達(dá)到?active?狀態(tài)了,比如在一個單 MDS 系統(tǒng)中:
?
[root@monitor1 ~]# $ ceph mds state5: 1/1/1 up {0=a=up:active}?
?
用內(nèi)核驅(qū)動掛載 CEPH 文件系統(tǒng)
#客戶端不用安裝ceph-common
?
1. 加載rbd 內(nèi)核模塊
modprobe rbd[root@node4 ~]# lsmod | grep rbd
?rbd 73158 0
?libceph 244999 1 rbd
2. 獲取admin key
[root@admin ceph-cluster]# cat ceph.client.admin.keyring [client.admin]key = AQDIfjtaCImdLRAAGJ1Q1lwpuMdadUutFrg0Zg==caps mds = "allow *"caps mon = "allow *"caps osd = "allow *"
?
3. 創(chuàng)建掛載點[root@node4 ~]# mkdir /root/cephfs/
# 其中192.168.20.223 為monitor節(jié)點,并且使用monitor 的端口 [root@node4 ~]# mount -t ceph 192.168.20.223:6789:/ /root/cephfs -o name=admin,secret=AQDIfjtaCImdLRAAGJ1Q1lwpuMdadUutFrg0Zg==
?
4. 如果有多個monitor節(jié)點,可以掛在多個節(jié)點,保證cephfs的高可用性,[root@admin ~]# mount -t ceph 192.168.20.223:6789,192.168.20.224:6789,192.168.20.225:6789:/ /root/cephfs -o name=admin,secret=AQDIfjtaCImdLRAAGJ1Q1lwpuMdadUutFrg0Zg== ? ?
?
?
用戶空間掛載 CEPH 文件系統(tǒng)
1. 客戶端安裝 ceph-fuse 工具包
yum -y install ceph-fuse
mkdir ?/etc/ceph
?
從ceph 集群拷貝 ceph.conf 和 ceph.client.admin.keyring 到客戶端 /etc/ceph/目錄下
并且 屬于644 權(quán)限 chmod ?644 ?/etc/ceph/ceph.client.admin.keyring
?
[root@etcd1 ceph]# chmod 644 ceph.client.admin.keyring?
2. 使用 ceph-fuse 掛載命令
掛在一個monitor[root@etcd1 ~]# ceph-fuse -m 192.168.20.225:6789 /root/cephfs
掛在多個monitor [root@etcd1 ~]# ceph-fuse -m 192.168.20.223:6789,192.168.20.224:6789,192.168.20.225:6789 /root/cephfs
?
?
如果在某些地方碰到麻煩,想從頭再來,可以用下列命令清除配置:
ceph-deploy purgedata {ceph-node} [{ceph-node}] ceph-deploy forgetkeys?
用下列命令可以連 Ceph 安裝包一起清除:
ceph-deploy purge {ceph-node} [{ceph-node}]?
如果執(zhí)行了?purge?,你必須重新安裝 Ceph 。
?
?
?
克隆使用的 format 2 模式,才能克隆創(chuàng)建分層快照和克隆流程
1. create block device image -----> create a snapshot -------> protect the snapshot(快照保護(hù)) -----> clone the snapshot
rbd create feng1 --size 1024 --image-format 2rbd --pool rbd snap create --snap fengjian1_snap fengjian1rbd snap protect rbd/fengjian1@fengjian1_snaprbd clone rbd/fengjian1@fengjian1_snap --snap rbd/fengjian1_snap_clone查看快照的克隆 rbd --pool {pool-name} children --image {image-name} --snap {snap-name}rbd children {pool-name}/{image-name}@{snapshot-name}舉例 rbd children rbd/fengjian1@fengjian1_snap
?
安裝RADOS gateway
自從?firefly?(v0.80) 版本開始,Ceph 對象網(wǎng)關(guān)運行在 Civetweb 上(已經(jīng)集成進(jìn)守護(hù)進(jìn)程?ceph-radosgw?),而不再是 Apache 和 FastCGI 之上。使用 Civetweb簡化了Ceph對象網(wǎng)關(guān)的安裝和配置。
Ceph 對象網(wǎng)關(guān)不再支持SSL。你可以設(shè)置一個支持 SSL 的反向代理服務(wù)器來將 HTTPS 請求轉(zhuǎn)為 HTTP 請求發(fā)給 CivetWeb。
轉(zhuǎn)載于:https://www.cnblogs.com/fengjian2016/p/8082074.html
總結(jié)
以上是生活随笔為你收集整理的ceph 分布式存储安装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JQuery.lazyload 图片延迟
- 下一篇: 梦到店里漏水是什么征兆