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

【Linux】分布式存儲系統(tǒng) Ceph應用

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

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔


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

//服務端操作
1)在管理節(jié)點創(chuàng)建 mds 服務
cd /etc/ceph
ceph-deploy mds create node01 node02 node03

2)查看各個節(jié)點的 mds 服務
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

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服務
ceph -s
mds: mycephfs:1 {0=node01=up:active} 2 up:standby

ceph mds stat
mycephfs:1 {0=node01=up:active} 2 up:standby

5)創(chuàng)建用戶
語法格式:ceph fs authorize  <fs_name>  client.<client_id>  <path-in-cephfs>  rw

#賬戶為 client.zhangsan,用戶 name 為 zhangsan,zhangsan 對ceph文件系統(tǒng)的 / 根目錄(注意不是操作系統(tǒng)的根目錄)有讀寫權限
ceph fs authorize mycephfs client.zhangsan / rw | tee /etc/ceph/zhangsan.keyring

# 賬戶為 client.lisi,用戶 name 為 lisi,lisi 對文件系統(tǒng)的 / 根目錄只有讀權限,對文件系統(tǒng)的根目錄的子目錄 /test 有讀寫權限
ceph fs authorize mycephfs client.lisi / r /test rw | tee /etc/ceph/lisi.keyring


//客戶端操作
1)客戶端要在 public 網(wǎng)絡內

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 用戶的秘鑰導出到 zhangsan.keyl
ceph-authtool -n client.lisi -p lisi.keyring > lisi.key						#把 lisi 用戶的秘鑰導出到 lisi.key

6)客戶端掛載
●方式一:基于內核
語法格式:
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

#驗證用戶權限
cd /data/lisi
echo 123 > 2.txt
-bash:2.txt:權限不夠

echo 123 > test/2.txt
cat test/2.txt
123

示例三:
#停掉 node02 上的 mds 服務
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/aa
ceph-fuse -m node01:6789,node02:6789,node03:6789 /data/aa [-o nonempty]			#掛載時,如果掛載點不為空會掛載失敗,指定 -o nonempty 可以忽略

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

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

ceph osd pool create rbd-demo 64 64

2、將存儲池轉換為 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

可簡寫為:
rbd create rbd-demo/rbd-demo2.img --size 10G

5、鏡像管理

//查看存儲池下存在哪些鏡像
rbd ls -l -p rbd-demo

//查看鏡像的詳細信息
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)							#條帶的編號,有效范圍是1225,對應4K到32M,而22代表222次方,這樣剛好是4M
	snapshot_count: 0
	id: 5fc98fe1f304									#鏡像的ID標識
	block_name_prefix: rbd_data.5fc98fe1f304			#名稱前綴
	format: 2											#使用的鏡像格式,默認為2
	features: layering, exclusive-lock, object-map, fast-diff, deep-flatten			#當前鏡像的功能特性
	op_features: 																	#可選的功能特性
	flags: 

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

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

#使用 resize 調整鏡像大小,一般建議只增不減,如果是減少的話需要加選項 --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 命令,這個命令刪除是將鏡像移動至回收站,如果想找回還可以恢復
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客戶端使用

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

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

//在管理節(jié)點創(chuàng)建并授權一個用戶可訪問指定的 RBD 存儲池
#示例,指定用戶標識為client.osd-mount,對另對OSD有所有的權限,對Mon有只讀的權限
ceph auth get-or-create client.osd-mount osd "allow * pool=rbd-demo" mon "allow r" > /etc/ceph/ceph.client.osd-mount.keyring

//修改RBD鏡像特性,CentOS7默認情況下只支持layering和striping特性,需要將其它的特性關閉
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

//linux客戶端操作
#安裝 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/bb
mount /dev/rbd0 /data/bb

#在線擴容
在管理節(jié)點調整鏡像的大小
rbd resize rbd-demo/rbd-demo1.img --size 30G

在客戶端刷新設備文件
xfs_growfs /dev/rbd0		#刷新xfs文件系統(tǒng)容量
resize2fs /dev/rbd0			#刷新ext4類型文件系統(tǒng)容量

7、快照管理

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

//在客戶端寫入文件
echo 1111 > /data/bb/11.txt
echo 2222 > /data/bb/22.txt
echo 3333 > /data/bb/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/bb/*
umount /data/bb
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/bb
ls /data/bb				#發(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)建的鏡像幾乎完全一樣,支持鏡像的所有操作。唯一不同的是克隆鏡像引用了一個只讀的上游快照,而且此快照必須要設置保護模式。

#快照克隆
1)將上游快照設置為保護模式:
rbd snap create rbd-demo/rbd-demo1.img@demo1_snap666

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)取消快照保護
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、鏡像的導出導入

//導出鏡像
rbd export rbd-demo/rbd-demo1.img  /opt/rbd-demo1.img

//導入鏡像
#卸載客戶端掛載,并取消映射
umount /data/bb
rbd unmap rbd-demo/rbd-demo1.img

#清除鏡像下的所有快照,并刪除鏡像
rbd snap purge rbd-demo/rbd-demo1.img
rbd rm rbd-demo/rbd-demo1.img

rbd ls -l -p rbd-demo

#導入鏡像
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)是非結構數(shù)據(jù)的存儲方法,對象存儲中每一條數(shù)據(jù)都作為單獨的對象存儲,擁有唯一的地址來識別數(shù)據(jù)對象,通常用于云計算環(huán)境中。
不同于其他數(shù)據(jù)存儲方法,基于對象的存儲不使用目錄樹。

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

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

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

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

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

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

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

//在管理節(jié)點創(chuàng)建一個 RGW 守護進程(生產(chǎn)環(huán)境下此進程一般需要高可用,后續(xù)介紹)
cd /etc/ceph
ceph-deploy rgw create node01

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

#創(chuàng)建成功后默認情況下會自動創(chuàng)建一系列用于 RGW 的存儲池
ceph osd pool ls
rgw.root 
default.rgw.control			#控制器信息
default.rgw.meta			#記錄元數(shù)據(jù)
default.rgw.log				#日志信息
default.rgw.buckets.index	#為 rgw 的 bucket 信息,寫入數(shù)據(jù)后生成
default.rgw.buckets.data	#是實際存儲的數(shù)據(jù)信息,寫入數(shù)據(jù)后生成


#默認情況下 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 守護進程內部由 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.11"

#3、將生成的證書合并為pem
cat civetweb.key civetweb.crt > /etc/ceph/civetweb.pem

#更改監(jiān)聽端口
Civetweb 默認監(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"

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

#修改完 ceph.conf 配置文件后需要重啟對應的 RadosGW 服務,再推送配置文件
ceph-deploy --overwrite-conf config push node0{1..3}

ssh root@node01 systemctl restart ceph-radosgw.target

#在 rgw 節(jié)點上查看端口
netstat -lntp | grep -w 80
netstat -lntp | grep 443

#在客戶端訪問驗證
curl http://192.168.80.11:80
curl -k https://192.168.80.11:443


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

radosgw-admin user create --uid="rgwuser" --display-name="rgw test user"
......
    "keys": [
        {
            "user": "rgwuser",
            "access_key": "ER0SCVRJWNRIKFGQD31H",
            "secret_key": "YKYjk7L4FfAu8GHeQarIlXodjtj1BXVaxpKv2Nna"
        }
    ],


#創(chuàng)建成功后將輸出用戶的基本信息,其中最重要的兩項信息為 access_key 和 secret_key 。用戶創(chuàng)建成后功,如果忘記用戶信息可以使用下面的命令查看
radosgw-admin user info --uid="rgwuser"


//S3 接口訪問測試
1)在客戶端安裝 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 接口
echo 123123 > /opt/123.txt

vim test.py
#coding:utf-8
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 = "ER0SCVRJWNRIKFGQD31H"                          #輸入 RadosGW 賬戶的 access_key
secret_key = "YKYjk7L4FfAu8GHeQarIlXodjtj1BXVaxpKv2Nna"      #輸入 RadosGW 賬戶的 secret_key

#rgw的ip與端口
host = "192.168.80.11"        #輸入 RGW 接口的 public 網(wǎng)絡地址

#如果使用443端口,下述鏈接應設置is_secure=True
port = 443
#如果使用80端口,下述鏈接應設置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,
    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下的文件
#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('/opt/123.txt')
# 讀取 s3 中文件的內容,返回 string 即文件 123.txt 的內容
#print(key.get_contents_as_string())

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

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


4)按照以上步驟執(zhí)行 python 腳本測試
python3 test.py

OSD 故障模擬與恢復

1、模擬 OSD 故障

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

#如果 osd 守護進程正常運行,down 的 osd 會很快自恢復正常,所以需要先關閉守護進程
ssh root@node01 systemctl stop ceph-osd@0

#down 掉 osd
ceph osd down 0

ceph osd tree

2、將壞掉的 osd 踢出集群

//方法一:
#將 osd.0 移出集群,集群會開始自動同步數(shù)據(jù)
ceph osd out osd.0

#將 osd.0 移除 crushmap
ceph osd crush remove osd.0

#刪除守護進程對應的賬戶信息
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 修復后重新加入集群文章來源地址http://www.zghlxwxcb.cn/news/detail-591063.html

#在 osd 節(jié)點創(chuàng)建 osd,無需指定名,會按序號自動生成
cd /etc/ceph

ceph osd create

#創(chuàng)建賬戶
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 *'

#導入新的賬戶秘鑰
ceph auth import -i /etc/ceph/ceph.osd.0.keyring

ceph auth list

#更新對應的 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 代表權重

#加入集群
ceph osd in osd.0

ceph osd tree

#重啟 osd 守護進程
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

到了這里,關于【Linux】分布式存儲系統(tǒng) Ceph應用的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 分布式運用——存儲系統(tǒng)Ceph

    分布式運用——存儲系統(tǒng)Ceph

    Ceph是一個開源的分布式存儲解決方案,旨在提供可擴展性、高性能和強大的數(shù)據(jù)可靠性。它采用了一種分布式對象存儲架構,能夠同時提供塊存儲和文件存儲的功能。本篇博客將深入探索Ceph的原理、特性和應用場景,幫助讀者更好地理解和使用這一強大的存儲解決方案。

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

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

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

    2024年02月16日
    瀏覽(26)
  • Ceph分布式存儲系統(tǒng)優(yōu)化分析

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

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

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

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

    最近工作中接觸了一個 Python + Flask 的新項目,項目中使用了 Ceph 對象存儲服務。遂在開發(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è)界和學術界都有著重要的影響。Ceph的架構和算法設計發(fā)表在國際系統(tǒng)領域頂級會議OSDI、SOSP、SC等上。Ceph社區(qū)得到Red Hat、SUSE、Intel等大公司的大力支持。Ce

    2024年02月12日
    瀏覽(21)
  • linux————ceph分布式部署

    linux————ceph分布式部署

    目錄 一、概述 特點 1、統(tǒng)一存儲 2、高擴展性 3、可靠性強 4、高性能 組件 1、Monitor 2、OSD 3、MOD 4、Objet 5、PG 6、RADOS 7. Libradio 8. CRUSH 9. RBD 10. RGW 11. CephFS 架構圖 二、準備工作 三、ceph安裝 創(chuàng)建集群目錄 修改配置文件 安裝 初始化monitor 同步管理信息 ?編輯 安裝mgr(管理守護

    2024年02月07日
    瀏覽(26)
  • Ceph分布式文件系統(tǒng)——文件系統(tǒng)MDS接口 塊存儲RDB接口 對象存儲RGW接口

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

    服務端操作 1)在管理節(jié)點創(chuàng)建 mds 服務 2)查看各個節(jié)點的 mds 服務 3)創(chuàng)建存儲池,啟用 ceph 文件系統(tǒng) ceph 文件系統(tǒng)至少需要兩個 rados 池,一個用于存儲數(shù)據(jù),一個用于存儲元數(shù)據(jù)。此時數(shù)據(jù)池就類似于文件系統(tǒng)的共享目錄。 創(chuàng)建 cephfs,命令格式:ceph fs new FS_NAME CEPHFS_ME

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

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

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

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

    【分布式技術】分布式存儲ceph之RBD塊存儲部署

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

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

    Ceph 分布式存儲

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

    2024年02月16日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包