国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Ceph分布式文件系統(tǒng)——文件系統(tǒng)MDS接口 塊存儲RDB接口 對象存儲RGW接口

這篇具有很好參考價值的文章主要介紹了Ceph分布式文件系統(tǒng)——文件系統(tǒng)MDS接口 塊存儲RDB接口 對象存儲RGW接口。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

創(chuàng)建 CephFS 文件系統(tǒng) MDS 接口

服務(wù)端操作

1)在管理節(jié)點創(chuàng)建 mds 服務(wù)

cd /etc/ceph
ceph-deploy mds create node01 node02 node03

2)查看各個節(jié)點的 mds 服務(wù)

ssh root@node01 systemctl status ceph-mds@node01
ssh root@node02 systemctl status ceph-mds@node02
ssh root@node03 systemctl status ceph-mds@node03

3)創(chuàng)建存儲池,啟用 ceph 文件系統(tǒng)

ceph 文件系統(tǒng)至少需要兩個 rados 池,一個用于存儲數(shù)據(jù),一個用于存儲元數(shù)據(jù)。此時數(shù)據(jù)池就類似于文件系統(tǒng)的共享目錄。

ceph osd pool create cephfs_data 128
#創(chuàng)建數(shù)據(jù)Pool(可以只設(shè)置pg,pgp會默認(rèn)等同pg)

ceph osd pool create cephfs_metadata 128
#創(chuàng)建元數(shù)據(jù)Pool

創(chuàng)建 cephfs,命令格式:ceph fs new <FS_NAME> <CEPHFS_METADATA_NAME> <CEPHFS_DATA_NAME>

ceph fs new mycephfs cephfs_metadata cephfs_data
#啟用ceph,元數(shù)據(jù)Pool在前,數(shù)據(jù)Pool在后
ceph fs ls
#查看cephfs

4)查看mds狀態(tài),一個up,其余兩個待命,目前的工作的是node01上的mds服務(wù)

ceph -s
ceph mds stat

Ceph分布式文件系統(tǒng)——文件系統(tǒng)MDS接口 塊存儲RDB接口 對象存儲RGW接口,ceph,運維,linux,云計算,服務(wù)器
?

5)創(chuàng)建用戶(設(shè)置權(quán)限寫入秘鑰環(huán)文件)

語法格式:ceph fs authorize ?<fs_name> ?client.<client_id> ?<path-in-cephfs> ?rw

賬戶為 client.zhangsan,用戶 name 為 zhangsan,zhangsan 對ceph文件系統(tǒng)的 / 根目錄(注意不是操作系統(tǒng)的根目錄)有讀寫權(quán)限

ceph fs authorize mycephfs client.zhangsan / rw | tee /etc/ceph/zhangsan.keyring
#tee同時重定向輸出和標(biāo)準(zhǔn)輸出 →到屏幕和文件中

賬戶為 client.lisi,用戶 name 為 lisi,lisi 對文件系統(tǒng)的 / 根目錄只有讀權(quán)限,對文件系統(tǒng)的根目錄的子目錄 /test 有讀寫權(quán)限

ceph fs authorize mycephfs client.lisi / r /test rw | tee /etc/ceph/lisi.keyring

客戶端操作??

1)客戶端要在 public 網(wǎng)絡(luò)內(nèi)

2)在客戶端創(chuàng)建工作目錄

mkdir /etc/ceph

3)在 ceph 的管理節(jié)點給客戶端拷貝 ceph 的配置文件 ceph.conf 和賬號的秘鑰環(huán)文件 zhangsan.keyring、lisi.keyring

scp ceph.conf zhangsan.keyring lisi.keyring root@client:/etc/ceph

4)在客戶端安裝 ceph 軟件包

cd /opt
wget https://download.ceph.com/rpm-nautilus/el7/noarch/ceph-release-1-1.el7.noarch.rpm --no-check-certificate
rpm -ivh ceph-release-1-1.el7.noarch.rpm
yum install -y ceph

5)在客戶端制作秘鑰文件

cd /etc/ceph
ceph-authtool -n client.zhangsan -p zhangsan.keyring > zhangsan.key
#把 zhangsan 用戶的秘鑰導(dǎo)出到 zhangsan.key
ceph-authtool -n client.lisi -p lisi.keyring > lisi.key
#把 lisi 用戶的秘鑰導(dǎo)出到 lisi.key

6)客戶端掛載

●方式一:基于內(nèi)核
mount -t ceph node01:6789,node02:6789,node03:6789:/ ?<本地掛載點目錄> ?-o name=<用戶名>,secret=<秘鑰> 
#直接使用不安全
mount -t ceph node01:6789,node02:6789,node03:6789:/ ?<本地掛載點目錄> ?-o name=<用戶名>,secretfile=<秘鑰文件>
#文件方式更安全
mkdir -p /data/zhangsan
mount -t ceph node01:6789,node02:6789,node03:6789:/ /data/zhangsan -o name=zhangsan,secretfile=/etc/ceph/zhangsan.key

mkdir -p /data/lisi
mount -t ceph node01:6789,node02:6789,node03:6789:/ /data/lisi -o name=lisi,secretfile=/etc/ceph/lisi.key
df -hT
查看掛載
驗證用戶權(quán)限
cd /data/lisi
echo 123 > 2.txt
-bash:2.txt:權(quán)限不夠

echo 123 > test/2.txt
cat test/2.txt
123
#lisi 對文件系統(tǒng)的 / 根目錄只有讀權(quán)限,對文件系統(tǒng)的根目錄的子目錄 /test 有讀寫權(quán)限
故障測試

停掉 node02 上的 mds 服務(wù)

ssh root@node02 "systemctl stop ceph-mds@node02"

ceph -s

測試客戶端的掛載點仍然是可以用的,如果停掉所有的 mds,客戶端就不能用了

●方式二:基于 fuse 工具
1)在 ceph 的管理節(jié)點給客戶端拷貝 ceph 的配置文件 ceph.conf 和賬號的秘鑰環(huán)文件 zhangsan.keyring、lisi.keyring
scp ceph.client.admin.keyring root@client:/etc/ceph
2)在客戶端安裝 ceph-fuse
yum install -y ceph-fuse
3)客戶端掛載
cd /data/fuse
ceph-fuse -m node01:6789,node02:6789,node03:6789 /data/fuse [-o nonempty]?? ??? ?

?掛載時,如果掛載點不為空會掛載失敗,指定 -o nonempty 可以忽略




創(chuàng)建 Ceph 塊存儲系統(tǒng) RBD 接口

服務(wù)端操作

1、創(chuàng)建一個名為 rbd-demo 的專門用于 RBD 的存儲池

ceph osd pool create rbd-demo 64 64

2、將存儲池轉(zhuǎn)換為 RBD 模式

ceph osd pool application enable rbd-demo rbd

3、初始化存儲池

rbd pool init -p rbd-demo
# -p 等同于 --pool

4、創(chuàng)建鏡像

rbd create -p rbd-demo --image rbd-demo1.img --size 10G
        #     存儲池            要創(chuàng)建的鏡像名

可簡寫為:

rbd create rbd-demo/rbd-demo2.img --size 10G

5、鏡像管理

查看存儲池下存在哪些鏡像
rbd ls -l -p rbd-demo
查看鏡像的詳細(xì)信息
rbd info -p rbd-demo --image rbd-demo1.img

rbd image 'rbd-demo.img':
?? ?size 10 GiB in 2560 objects?? ??? ??? ??? ??? ??? ???#鏡像的大小與被分割成的條帶數(shù)
?? ?order 22 (4 MiB objects)?? ??? ??? ??? ??? ??? ???  ?#條帶的編號,有效范圍是12到25,對應(yīng)4K到32M,而22代表2的22次方,這樣剛好是4M
?? ?snapshot_count: 0
?? ?id: 5fc98fe1f304?? ??? ??? ??? ??? ??? ??? ??? ???  ?#鏡像的ID標(biāo)識
?? ?block_name_prefix: rbd_data.5fc98fe1f304?? ??? ???  ?#名稱前綴
?? ?format: 2?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?#使用的鏡像格式,默認(rèn)為2
?? ?features: layering, exclusive-lock, object-map, fast-diff, deep-flatten?? ??? ???#當(dāng)前鏡像的功能特性
?? ?op_features: ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?#可選的功能特性
?? ?flags:?

修改鏡像大小
rbd resize -p rbd-demo --image rbd-demo1.img --size 20G

rbd info -p rbd-demo --image rbd-demo1.img

使用 resize 調(diào)整鏡像大小,一般建議只增不減,如果是減少的話需要加選項 --allow-shrink

rbd resize -p rbd-demo --image rbd-demo1.img --size 5G --allow-shrink

刪除鏡像

直接刪除鏡像

rbd rm -p rbd-demo --image rbd-demo2.img
rbd remove rbd-demo/rbd-demo2.img

推薦使用 trash 命令,這個命令刪除是將鏡像移動至回收站,如果想找回還可以恢復(fù)

rbd trash move rbd-demo/rbd-demo1.img

rbd ls -l -p rbd-demo

rbd trash list -p rbd-demo
5fc98fe1f304 rbd-demo1.img

還原鏡像
rbd trash restore rbd-demo/5fc98fe1f304

rbd ls -l -p rbd-demo

6、對Linux客戶端使用做準(zhǔn)備


客戶端使用 RBD 有兩種方式:
●通過內(nèi)核模塊KRBD將鏡像映射為系統(tǒng)本地塊設(shè)備,通常設(shè)置文件一般為:/dev/rbd*
●另一種是通過librbd接口,通常KVM虛擬機使用這種接口。

本例主要是使用Linux客戶端掛載RBD鏡像為本地磁盤使用。開始之前需要在所需要客戶端節(jié)點上面安裝ceph-common軟件包,因為客戶端需要調(diào)用rbd命令將RBD鏡像映射到本地當(dāng)作一塊普通硬盤使用。并還需要把ceph.conf配置文件和授權(quán)keyring文件復(fù)制到對應(yīng)的節(jié)點。

//在管理節(jié)點創(chuàng)建并授權(quán)一個用戶可訪問指定的 RBD 存儲池
#示例,指定用戶標(biāo)識為client.osd-mount,對另對OSD有所有的權(quán)限,對Mon有只讀的權(quán)限,寫入秘鑰環(huán)文件

ceph auth get-or-create client.osd-mount osd "allow * pool=rbd-demo" mon "allow r" > /etc/ceph/ceph.client.osd-mount.keyring

#get-or-create 沒有就創(chuàng)建用戶

//修改RBD鏡像特性,CentOS7默認(rèn)情況下只支持layering和striping特性,需要將其它的特性關(guān)閉

rbd feature disable rbd-demo/rbd-demo1.img object-map,fast-diff,deep-flatten

//將用戶的keyring文件和ceph.conf文件發(fā)送到客戶端的/etc/ceph目錄下

cd /etc/ceph
scp ceph.client.osd-mount.keyring ceph.conf root@client:/etc/ceph

客戶端操作?

安裝 ceph-common 軟件包

yum install -y ceph-common

執(zhí)行客戶端映射

cd /etc/ceph
rbd map rbd-demo/rbd-demo1.img --keyring /etc/ceph/ceph.client.osd-mount.keyring --user osd-mount

查看映射

rbd showmapped
rbd device list

斷開映射

rbd unmap rbd-demo/rbd-demo1.img

格式化并掛載

mkfs.xfs /dev/rbd0

mkdir -p /data/rbd
mount /dev/rbd0 /data/rbd

在線擴容

在管理節(jié)點調(diào)整鏡像的大小

rbd resize rbd-demo/rbd-demo1.img --size 30G

在客戶端刷新設(shè)備文件

xfs_growfs /dev/rbd0
#刷新xfs文件系統(tǒng)容量

resize2fs /dev/rbd0
#刷新ext4類型文件系統(tǒng)容量

7、快照管理

對 rbd 鏡像進(jìn)行快照,可以保留鏡像的狀態(tài)歷史,另外還可以利用快照的分層技術(shù),通過將快照克隆為新的鏡像使用。


在客戶端寫入文件

echo 1111 > /data/rbd/11.txt
echo 2222 > /data/rbd/22.txt
echo 3333 > /data/rbd/33.txt

在管理節(jié)點對鏡像創(chuàng)建快照

rbd snap create --pool rbd-demo --image rbd-demo1.img --snap demo1_snap1

可簡寫為

rbd snap create rbd-demo/rbd-demo1.img@demo1_snap1

列出指定鏡像所有快照

rbd snap list rbd-demo/rbd-demo1.img

用json格式輸出:

rbd snap list rbd-demo/rbd-demo1.img --format json --pretty-format

模擬刪除

rm -rf /data/rdb/*

回滾鏡像

在回滾快照之前,需要將鏡像取消鏡像的映射,然后再回滾。

在客戶端操作

取消掛載 取消映射

umount /data/rbd
rbd unmap rbd-demo/rbd-demo1.img
在管理節(jié)點操作

回滾

rbd snap rollback rbd-demo/rbd-demo1.img@demo1_snap1
在客戶端重新映射并掛載
rbd map rbd-demo/rbd-demo1.img --keyring /etc/ceph/ceph.client.osd-mount.keyring --user osd-mount
mount /dev/rbd0 /data/rbd
ls /data/rdb? ? ? ? ? ? ? ? #發(fā)現(xiàn)數(shù)據(jù)還原回來了

限制鏡像可創(chuàng)建快照數(shù)

rbd snap limit set rbd-demo/rbd-demo1.img --limit 3

解除限制:

rbd snap limit clear rbd-demo/rbd-demo1.img

刪除快照

刪除指定快照:

rbd snap rm rbd-demo/rbd-demo1.img@demo1_snap1

刪除所有快照:

rbd snap purge rbd-demo/rbd-demo1.img

快照分層

快照分層支持用快照的克隆生成新鏡像,這種鏡像與直接創(chuàng)建的鏡像幾乎完全一樣,支持鏡像的所有操作。唯一不同的是克隆鏡像引用了一個只讀的上游快照,而且此快照必須要設(shè)置保護(hù)模式。


1)創(chuàng)建上游快照并設(shè)置為保護(hù)模式:
rbd snap create rbd-demo/rbd-demo1.img@demo1_snap666
#                 存儲池    鏡像       根據(jù)存儲池中鏡像創(chuàng)建的快照
rbd snap protect rbd-demo/rbd-demo1.img@demo1_snap666
2)克隆上游快照為新的鏡像
rbd clone rbd-demo/rbd-demo1.img@demo1_snap666 --dest rbd-demo/rbd-demo666.img
rbd ls -p rbd-demo
3)命令查看克隆完成后快照的子鏡像
rbd children rbd-demo/rbd-demo1.img@demo1_snap666

快照展平

通常情況下通過快照克隆而得到的鏡像會保留對父快照的引用,這時候不可以刪除該父快照,否則會有影響。

rbd snap rm rbd-demo/rbd-demo1.img@demo1_snap666
報錯 snapshot 'demo1_snap666' is protected from removal.不可刪除

如果要刪除快照但想保留其子鏡像,必須先展平其子鏡像,展平的時間取決于鏡像的大小

1) 展平由快照生成的子鏡像(擺脫對上游快照依賴)
rbd flatten rbd-demo/rbd-demo666.img
2)取消之前依賴的快照保護(hù)(以便刪除)
rbd snap unprotect rbd-demo/rbd-demo1.img@demo1_snap666
3)刪除之前依賴的快照
rbd snap rm rbd-demo/rbd-demo1.img@demo1_snap666
rbd ls -l -p rbd-demo
#在刪除掉快照后,查看子鏡像依然存在

8、鏡像的導(dǎo)出導(dǎo)入

管理端導(dǎo)出鏡像
rbd export rbd-demo/rbd-demo1.img ?/opt/rbd-demo1.img

導(dǎo)入鏡像

卸載客戶端掛載,并取消映射(準(zhǔn)備步驟)

umount /data/rbd
rbd unmap rbd-demo/rbd-demo1.img

管理端清除鏡像下的所有快照,并刪除鏡像(準(zhǔn)備步驟)

rbd snap purge rbd-demo/rbd-demo1.img
rbd rm rbd-demo/rbd-demo1.img

rbd ls -l -p rbd-demo

管理端導(dǎo)入鏡像

rbd import /opt/rbd-demo1.img ?rbd-demo/rbd-demo1.img

rbd ls -l -p rbd-demo



創(chuàng)建 Ceph 對象存儲系統(tǒng) RGW 接口

1、對象存儲概念

對象存儲(object storage)是非結(jié)構(gòu)數(shù)據(jù)的存儲方法,對象存儲中每一條數(shù)據(jù)都作為單獨的對象存儲,擁有唯一的地址來識別數(shù)據(jù)對象,通常用于云計算環(huán)境中。
不同于其他數(shù)據(jù)存儲方法,基于對象的存儲不使用目錄樹。

雖然在設(shè)計與實現(xiàn)上有所區(qū)別,但大多數(shù)對象存儲系統(tǒng)對外呈現(xiàn)的核心資源類型大同小異。從客戶端的角度來看,分為以下幾個邏輯單位:

●Amazon S3
提供了

  1. 用戶(User)
  2. 存儲桶(Bucket)
  3. 對象(Object)

三者的關(guān)系是

  1. User將Object存儲到系統(tǒng)上的Bucket
  2. 存儲桶屬于某個用戶并可以容納對象,一個存儲桶用于存儲多個對象
  3. 同一個用戶可以擁有多個存儲桶,不同用戶允許使用相同名稱的Bucket,因此User名稱即可做為Bucket的名稱空間

●OpenStack Swift:
提供了user、container和object分別對應(yīng)于用戶、存儲桶和對象,不過它還額外為user提供了父級組件account,用于表示一個項目或用戶,因此一個account中可以包含一到多個user,它們可共享使用同一組container,并為container提供名稱空間

●RadosGW
提供了user、subuser、bucket和object,其中的user對應(yīng)于S3的user,而subuser則對應(yīng)于Swift的user,不過user和subuser都不支持為bucket提供名稱空間,因此不同用戶的存儲桶不允許同名;不過,自jewel版本起,RadosGW引入了tenant(租戶)用于為user和bucket提供名稱空間,但他是個可選組件


從上可以看出大多數(shù)對象存儲的核心資源類型大同小異,如 Amazon S3、OpenStack Swift 與 RadosGw。其中 S3 與 Swift 互不兼容,RadosGw 為了兼容 S3 與 Swift, Ceph 在 RadosGW 集群的基礎(chǔ)上提供了 RGW(RadosGateway)數(shù)據(jù)抽象層和管理層,它可以原生兼容 S3 和 Swift 的 API。
S3和Swift它們可基于http或https完成數(shù)據(jù)交換,由RadosGW內(nèi)建的Civetweb提供服務(wù),它還可以支持代理服務(wù)器包括nginx、haproxy等以代理的形式接收用戶請求,再轉(zhuǎn)發(fā)至RadosGW進(jìn)程。(RadosGW內(nèi)建的Civetweb提供服務(wù)就相當(dāng)于NGINX開啟的web服務(wù)器,可由【代理服務(wù)器反向代理轉(zhuǎn)發(fā)給后端多個RadosGW】)
RGW 的功能依賴于對象網(wǎng)關(guān)守護(hù)進(jìn)程實現(xiàn),負(fù)責(zé)向客戶端提供 REST API 接口。出于冗余負(fù)載均衡的需求,一個 Ceph 集群上通常不止一個 RadosGW 守護(hù)進(jìn)程。

? 2、創(chuàng)建 RGW 接口?

如果需要使用到類似 S3 或者 Swift 接口時候才需要部署/創(chuàng)建 RadosGW 接口,RadosGW 通常作為對象存儲(Object Storage)使用,類于阿里云OSS

在管理節(jié)點創(chuàng)建一個 RGW 守護(hù)進(jìn)程

生產(chǎn)環(huán)境下此進(jìn)程一般需要高可用【多個node上設(shè)置rgw接口并做負(fù)載均衡,再使用keepalived等做負(fù)載均衡器的高可用】

cd /etc/ceph
ceph-deploy rgw create node01

ceph -s
  services:
    mon: 3 daemons, quorum node01,node02,node03 (age 4m)
    mgr: node02(active, since 4m), standbys: node01
    mds: mycephfs:1 {0=node03=up:active} 2 up:standby
    osd: 9 osds: 9 up (since 4m), 9 in (since 22h)
    rgw: 1 daemon active (node01)

創(chuàng)建成功后默認(rèn)情況下會自動創(chuàng)建一系列用于 RGW 的存儲池

ceph osd pool ls

rgw.root?
default.rgw.control?? ??? ??? ?#控制器信息
default.rgw.meta?? ??? ??? ?   #記錄元數(shù)據(jù)
default.rgw.log?? ??? ??? ??? ?#日志信息
當(dāng)后續(xù)寫入文件后還會生成
default.rgw.buckets.index??  ? #為 rgw 的 bucket 信息,寫入數(shù)據(jù)后生成
default.rgw.buckets.data??    ?#是實際存儲的數(shù)據(jù)信息,寫入數(shù)據(jù)后生成

默認(rèn)情況下 RGW 監(jiān)聽 7480 號端口

ssh root@node01 netstat -lntp | grep 7480
curl node01:7480

    <?xml version="1.0" encoding="UTF-8"?><ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    ? <Owner>
?     ? <ID>anonymous</ID>
?     ? <DisplayName/>
?     </Owner>
    ? <Buckets/>
    </ListAllMyBucketsResult>

開啟 http+https ,更改監(jiān)聽端口

RadosGW 守護(hù)進(jìn)程內(nèi)部由 Civetweb 實現(xiàn),通過對 Civetweb 的配置可以完成對 RadosGW 的基本管理。

?要在 Civetweb 上啟用SSL,首先需要一個證書,在 rgw 節(jié)點生成證書
1)生成CA證書私鑰:

openssl genrsa -out civetweb.key 2048

2)生成CA證書公鑰:

openssl req -new -x509 -key civetweb.key -out civetweb.crt -days 3650 -subj "/CN=192.168.80.101"
#node01的IP

3)將生成的證書合并為pem?

cat civetweb.key civetweb.crt > /etc/ceph/civetweb.pem

更改監(jiān)聽端口
Civetweb 默認(rèn)監(jiān)聽在 7480 端口并提供 http 協(xié)議,如果需要修改配置需要在管理節(jié)點編輯 ceph.conf 配置文件

cd /etc/ceph
vim ceph.conf

......下方添加
[client.rgw.node01]
rgw_host = node01
rgw_frontends = "civetweb port=80+443s ssl_certificate=/etc/ceph/civetweb.pem num_threads=500 request_timeout_ms=60000"
#監(jiān)聽端口 ssl證書 并發(fā)線程數(shù) 超時時間

Ceph分布式文件系統(tǒng)——文件系統(tǒng)MDS接口 塊存儲RDB接口 對象存儲RGW接口,ceph,運維,linux,云計算,服務(wù)器

●rgw_host:對應(yīng)的RadosGW名稱或者IP地址
●rgw_frontends:這里配置監(jiān)聽的端口,是否使用https,以及一些常用配置:
?port:如果是https端口,需要在端口后面加一個s。
?ssl_certificate:指定證書的路徑。
?num_threads:最大并發(fā)連接數(shù),默認(rèn)為50,根據(jù)需求調(diào)整,通常在生產(chǎn)集群環(huán)境中此值應(yīng)該更大
?request_timeout_ms:發(fā)送與接收超時時長,以ms為單位,默認(rèn)為30000
?access_log_file:訪問日志路徑,默認(rèn)為空
?error_log_file:錯誤日志路徑,默認(rèn)為空

推送配置文件到所有節(jié)點(命令里是推送到node123,若上一步操作不是在管理節(jié)點,是在node1操作,則需要推送到node2,3,管理端。實驗中報錯,特此說明。保持所有節(jié)點和管理端配置相同即可)

ceph-deploy --overwrite-conf config push node0{1..3}

修改完 ceph.conf 配置文件后需要重啟對應(yīng)的 RadosGW 服務(wù)?(node01)

ssh root@node01 systemctl restart ceph-radosgw.target

在 rgw 節(jié)點(node01)上查看端口

netstat -lntp | grep -w 80
netstat -lntp | grep 443

在客戶端訪問驗證

curl http://192.168.80.101:80
curl -k https://192.168.80.101:443

<?xml version="1.0" encoding="UTF-8"?><ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>anonymous</ID><DisplayName></DisplayName></Owner><Buckets></Buckets></ListAllMyBucketsResult>

創(chuàng)建 RadosGW 賬戶

在管理節(jié)點使用 radosgw-admin 命令創(chuàng)建 RadosGW 賬戶

radosgw-admin user create --uid="rgwuser" --display-name="rgw test user"

......顯示,keys中兩個key重要,建議保存
    "keys": [
        {
            "user": "rgwuser",
            "access_key": "AR76A9PEGALD5W3IVPNY",
            "secret_key": "I9xNDxyZdpbBuRBxQrChD75Id9a8naC6KgjGhIA7"
        }
    ],

創(chuàng)建成功后將輸出用戶的基本信息,其中最重要的兩項信息為 access_key 和 secret_key 。

用戶創(chuàng)建成后功,如果忘記用戶信息可以使用下面的命令查看

radosgw-admin user info --uid="rgwuser"

S3 接口訪問測試?

1)在客戶端(client 107)安裝 python3、python3-pip

yum install -y python3 python3-pip

python3 -V
Python 3.6.8

pip3 -V
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)

2)安裝 boto 模塊,用于測試連接 S3?

pip3 install boto

3)測試訪問 S3 接口(由于對象存儲,只能通過api獲取文件

vim test.py

#coding:utf-8
#boto s3手冊:http://boto.readthedocs.org/en/latest/ref/s3.html
#boto s3快速入門:http://boto.readthedocs.org/en/latest/s3_tut.html
#如果腳本長時間阻塞,請檢查集群狀態(tài),開啟的端口等
import ssl
import boto.s3.connection
from boto.s3.key import Key
#異常拋出
try:
    _create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
    pass
else:
    ssl._create_default_https_context = _create_unverified_https_context
#test用戶的keys信息
access_key = "AR76A9PEGALD5W3IVPNY" #?替換為自己的公鑰
secret_key = "I9xNDxyZdpbBuRBxQrChD75Id9a8naC6KgjGhIA7" #?替換為自己的秘鑰
#rgw的ip與端口
host = "192.168.80.101" #?rgw的ip
#如果使用443端口,下述鏈接應(yīng)設(shè)置is_secure=True
port = 443
#如果使用80端口,下述鏈接應(yīng)設(shè)置is_secure=False
#port = 80 #??
conn = boto.connect_s3(
    aws_access_key_id=access_key,
    aws_secret_access_key=secret_key,
    host=host,
    port=port,
    is_secure=True, #??若用80端口設(shè)為false
    validate_certs=False,
    calling_format=boto.s3.connection.OrdinaryCallingFormat()
)

#一:創(chuàng)建存儲桶
conn.create_bucket(bucket_name='bucket01')
conn.create_bucket(bucket_name='bucket02')

#二:判斷是否存在,不存在返回None
exists = conn.lookup('bucket01')
print(exists)
exists = conn.lookup('bucket02')
print(exists)

#三:獲得一個存儲桶
bucket1 = conn.get_bucket('bucket01')
bucket2 = conn.get_bucket('bucket02')

#四:查看一個bucket下的內(nèi)容
print(list(bucket1.list()))
print(list(bucket2.list()))

#五:向s3上存儲數(shù)據(jù),數(shù)據(jù)來源可以是file、stream、or string
#5.1、上傳文件
bucket1 = conn.get_bucket('bucket01')
# name的值是數(shù)據(jù)的key
key = Key(bucket=bucket1, name='myfile')
key.set_contents_from_filename(r'/opt/123.txt') #?預(yù)先準(zhǔn)備,要上傳的文件
# 讀取 s3 中文件的內(nèi)容,返回 string 即文件 123.txt 的內(nèi)容
print(list(bucket1.list()))
print(key.get_contents_as_string())

#5.2、上傳字符串
#如果之前已經(jīng)獲取過對象,此處不需要重復(fù)獲取
bucket2 = conn.get_bucket('bucket02')
key = Key(bucket=bucket2, name='mystr')
key.set_contents_from_string('hello world')
print(list(bucket2.list()))
print(key.get_contents_as_string())

#六:刪除一個存儲桶,在刪除存儲桶本身時必須刪除該存儲桶內(nèi)的所有key
bucket1 = conn.get_bucket('bucket01')
for key in bucket1:
    key.delete()
bucket1.delete()
#bucket1.get_all_keys()[0].delete() #刪除某一個 key

#迭代遍歷 buckets and keys
for bucket in conn:
    for key in bucket:
        print(key.name,key.get_contents_as_string())

#—個判斷bucket02文件夾中是否有文件的方法
bucket2 = conn.get_bucket('bucket02')
res = bucket2.get_all_keys()
if len(res) > 0:
    print('有文件')
else:
    print('為空')

若要分步查看結(jié)果,以下的每一步,都只保留自己和主函數(shù),將其他的步驟注釋。

4)按照以上步驟執(zhí)行 python 腳本測試
?

python3 test.py



-------------------- OSD 故障模擬與恢復(fù) --------------------

1、模擬 OSD 故障

如果 ceph 集群有上千個 osd,每天壞 2~3 個太正常了,我們可以模擬 down 掉一個 osd

關(guān)閉守護(hù)進(jìn)程(去要搞破壞的osd對應(yīng)的節(jié)點操作)

如果 osd 守護(hù)進(jìn)程正常運行,down 的 osd 會很快自恢復(fù)正常,所以需要先關(guān)閉守護(hù)進(jìn)程
ssh root@node01 systemctl stop ceph-osd@0

這里模擬手動 down 掉 osd?

ceph osd tree
#查看0號osd在哪個節(jié)點

去0號osd的節(jié)點操作
ceph osd down 0
ceph osd tree

Ceph分布式文件系統(tǒng)——文件系統(tǒng)MDS接口 塊存儲RDB接口 對象存儲RGW接口,ceph,運維,linux,云計算,服務(wù)器

2、將壞掉的 osd 踢出集群

方法一

將 osd.0 移出集群,集群會開始自動同步數(shù)據(jù)

ceph osd out osd.0

將 osd.0 移除 crushmap

ceph osd crush remove osd.0

刪除守護(hù)進(jìn)程對應(yīng)的賬戶信息

ceph auth rm osd.0

ceph auth list

刪掉 osd.0

ceph osd rm osd.0

ceph osd stat
ceph -s

方法二(一鍵刪除)

移出集群

ceph osd out osd.0

使用綜合步驟,刪除配置文件中針對壞掉的 osd 的所有配置

ceph osd purge osd.0 --yes-i-really-mean-it

3、把原來壞掉的 osd 修復(fù)后重新加入集群(在osd.0對應(yīng)的節(jié)點操作 /etc/ceph/目錄下)

在 osd 節(jié)點創(chuàng)建 osd(加入osd列表),無需指定名,會按序號自動生成

cd /etc/ceph

ceph osd create

創(chuàng)建賬戶,寫入秘鑰環(huán)(對這個osd指定mgr mon osd服務(wù)的權(quán)限)

ceph-authtool --create-keyring /etc/ceph/ceph.osd.0.keyring --gen-key -n osd.0 --cap mon 'allow profile osd' --cap mgr 'allow profile osd' --cap osd 'allow *'

導(dǎo)入新的賬戶秘鑰(即上面的秘鑰環(huán))

ceph auth import -i /etc/ceph/ceph.osd.0.keyring
ceph auth list
驗證權(quán)限配置

更新對應(yīng)的 osd 文件夾中的密鑰環(huán)文件

ceph auth get-or-create osd.0 -o /var/lib/ceph/osd/ceph-0/keyring

加入 crushmap

ceph osd crush add osd.0 1.000 host=node01
#1.000 代表權(quán)重

?加入集群

ceph osd in osd.0

ceph osd tree

重啟 osd 守護(hù)進(jìn)程

systemctl restart ceph-osd@0

ceph osd tree
#稍等片刻后 osd 狀態(tài)為 up??

如果重啟失敗

報錯:
Job for ceph-osd@0.service failed because start of the service was attempted too often. See "systemctl ?status ceph-osd@0.service" and "journalctl -xe" for details.
To force a start use "systemctl reset-failed ceph-osd@0.service" followed by "systemctl start ceph-osd@0.service" again.

運行

systemctl reset-failed ceph-osd@0.service && systemctl restart ceph-osd@0.service


?文章來源地址http://www.zghlxwxcb.cn/news/detail-595163.html

到了這里,關(guān)于Ceph分布式文件系統(tǒng)——文件系統(tǒng)MDS接口 塊存儲RDB接口 對象存儲RGW接口的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Ceph分布式存儲系統(tǒng)優(yōu)化分析

    Ceph分布式存儲系統(tǒng)優(yōu)化分析

    ????????Ceph支持多種存儲訪問接口,現(xiàn)有的多種性能測試工具都可用于Ceph的性能測試,如測試塊接口性能的fio,iometer等;測試CephFS接口的filebench,fio等;測試對象接口的cosbench等。Ceph有專用的基準(zhǔn)測試集CBT,其包含radosbench,librbdfio,kvmrbdfio和rbdfio。radosbench基準(zhǔn)測試使用

    2024年02月12日
    瀏覽(22)
  • 【Distributed】分布式Ceph存儲系統(tǒng)

    【Distributed】分布式Ceph存儲系統(tǒng)

    ??單機存儲設(shè)備大致分為三類,分別是DAS、NAS、SAN。 1.1 DAS ??DAS (直接附加存儲,是直接接到計算機的主板總線上去的存儲) ??例如 IDE、SATA、SCSI、SAS、USB 接口的磁盤。所謂接口就是一種存儲設(shè)備驅(qū)動下的磁盤設(shè)備,提供塊級別的存儲。 1.2 NAS ??NAS (網(wǎng)絡(luò)附在存儲

    2024年02月16日
    瀏覽(26)
  • 【Linux】分布式存儲系統(tǒng) Ceph應(yīng)用

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 1、創(chuàng)建一個名為 rbd-demo 的專門用于 RBD 的存儲池 2、將存儲池轉(zhuǎn)換為 RBD 模式 3、初始化存儲池 4、創(chuàng)建鏡像 5、鏡像管理 6、Linux客戶端使用 7、快照管理 8、鏡像的導(dǎo)出導(dǎo)入 1、對象存儲概念 對象存儲(

    2024年02月16日
    瀏覽(27)
  • 分布式存儲系統(tǒng)Ceph應(yīng)用組件介紹

    1、 無中心架構(gòu)分布式存儲Ceph Ceph是一套開源的分布式存儲系統(tǒng)。具有可靠性高,性能優(yōu)良,可伸縮,與HDFS不同的地方在于,該架構(gòu)中沒有中心節(jié)點。?? ? Ceph優(yōu)點在于它不單單是存儲,同時還充分利用了存儲節(jié)點上的計算能力,在存儲每一個數(shù)據(jù)時,都會通過計算得出該數(shù)

    2024年02月07日
    瀏覽(32)
  • 使用 Docker 部署分布式存儲系統(tǒng)——Ceph

    使用 Docker 部署分布式存儲系統(tǒng)——Ceph

    最近工作中接觸了一個 Python + Flask 的新項目,項目中使用了 Ceph 對象存儲服務(wù)。遂在開發(fā)環(huán)境使用 Docker 搭建了一套 Ceph 集群。 Ceph 官方文檔 Ceph 是一個開源的分布式存儲系統(tǒng),提供了對象存儲、塊存儲和文件系統(tǒng)三種存儲接口。Ceph 將數(shù)據(jù)存儲在邏輯存儲池中,使用 CRUSH 分

    2024年04月15日
    瀏覽(24)
  • 滴滴Ceph分布式存儲系統(tǒng)優(yōu)化之鎖優(yōu)化

    滴滴Ceph分布式存儲系統(tǒng)優(yōu)化之鎖優(yōu)化

    摘自:https://mp.weixin.qq.com/s/oWujGOLLGItu1Bv5AuO0-A ? 2020-09-02 21:45 ????????Ceph是國際知名的開源分布式存儲系統(tǒng),在工業(yè)界和學(xué)術(shù)界都有著重要的影響。Ceph的架構(gòu)和算法設(shè)計發(fā)表在國際系統(tǒng)領(lǐng)域頂級會議OSDI、SOSP、SC等上。Ceph社區(qū)得到Red Hat、SUSE、Intel等大公司的大力支持。Ce

    2024年02月12日
    瀏覽(21)
  • Ceph分布式文件系統(tǒng)

    Ceph分布式文件系統(tǒng)

    目錄 1.存儲基礎(chǔ) 單機DAS存儲設(shè)備 DAS NAS SAN 單機存儲的問題 分布式存儲 分布式存儲的類型 2.Ceph簡介 Ceph優(yōu)勢 Ceph架構(gòu) Ceph組件 OSD(ceph-osd) Monitor(ceph-mon) Manager(ceph-mgr) MDS(ceph-mds) PG(歸置組) Pool(存儲池/資源池/數(shù)據(jù)池) OSD 存儲后端 Filestore Bluestore BlueStore的主要功能 Ceph數(shù)據(jù)的存儲過

    2024年01月16日
    瀏覽(26)
  • 云原生之深入解析分布式存儲系統(tǒng)Ceph的環(huán)境部署和實戰(zhàn)操作

    云原生之深入解析分布式存儲系統(tǒng)Ceph的環(huán)境部署和實戰(zhàn)操作

    ① 什么是 Ceph ? Ceph 是當(dāng)前非常流行的開源分布式存儲系統(tǒng),具有高擴展性、高性能、高可靠性等優(yōu)點,同時提供塊存儲服務(wù)(rbd)、對象存儲服務(wù)(rgw)以及文件系統(tǒng)存儲服務(wù)(cephfs),Ceph 在存儲的時候充分利用存儲節(jié)點的計算能力,在存儲每一個數(shù)據(jù)時都會通過計算得出該數(shù)據(jù)

    2024年02月09日
    瀏覽(24)
  • 【分布式技術(shù)】分布式存儲ceph之RBD塊存儲部署

    【分布式技術(shù)】分布式存儲ceph之RBD塊存儲部署

    目錄 創(chuàng)建 Ceph 塊存儲系統(tǒng) RBD 接口 服務(wù)端操作 1、創(chuàng)建一個名為 rbd-demo 的專門用于 RBD 的存儲池 2、將存儲池轉(zhuǎn)換為 RBD 模式 3、初始化存儲池 4、創(chuàng)建鏡像 5、在管理節(jié)點創(chuàng)建并授權(quán)一個用戶可訪問指定的 RBD 存儲池 6、修改RBD鏡像特性,CentOS7默認(rèn)情況下只支持layering和stripin

    2024年01月18日
    瀏覽(35)
  • Ceph 分布式存儲

    Ceph 分布式存儲

    DAS(直接附加存儲,是直接接到計算機的主板總線上去的存儲) IDE、SATA、SCSI、SAS、USB 接口的磁盤 所謂接口就是一種存儲設(shè)備驅(qū)動下的磁盤設(shè)備,提供塊級別的存儲 NAS(網(wǎng)絡(luò)附加存儲,是通過網(wǎng)絡(luò)附加到當(dāng)前主機文件系統(tǒng)之上的存儲) NFS、CIFS、FTP 文件系統(tǒng)級別的存儲,本

    2024年02月16日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包