自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Ceph RADOS Gateway安裝,你學(xué)會(huì)了嗎?

存儲(chǔ) 數(shù)據(jù)管理
對(duì)象存儲(chǔ)的優(yōu)勢(shì)在于其擴(kuò)展性和可訪問性。對(duì)象存儲(chǔ)是為大規(guī)模數(shù)據(jù)設(shè)計(jì)的,它能夠很好地處理大量非結(jié)構(gòu)化數(shù)據(jù)。對(duì)象可以跨多個(gè)服務(wù)器或地理區(qū)域分散存儲(chǔ),提供了高度的冗余和可用性。對(duì)象存儲(chǔ)通常通過 RESTful API 訪問,這使得它可以通過網(wǎng)絡(luò)從任何地方訪問,而且開發(fā)者可以輕松地集成到應(yīng)用程序中。

什么是對(duì)象存儲(chǔ)

對(duì)象存儲(chǔ)以獨(dú)立的對(duì)象的形式管理數(shù)據(jù),而不是傳統(tǒng)的文件層次結(jié)構(gòu)或塊存儲(chǔ)的形式。每個(gè)對(duì)象包括數(shù)據(jù)、元數(shù)據(jù)和唯一標(biāo)識(shí)符。元數(shù)據(jù)是描述數(shù)據(jù)的信息,比如創(chuàng)建日期、類型和其他相關(guān)信息。 

主要用于非結(jié)構(gòu)化數(shù)據(jù),例如多媒體內(nèi)容、備份數(shù)據(jù)、分析數(shù)據(jù)等,以及任何需要大規(guī)模、易于訪問和經(jīng)濟(jì)有效的數(shù)據(jù)存儲(chǔ)的應(yīng)用。Amazon S3、Google Cloud Storage 和 OpenStack Swift 是一些常見的公有云對(duì)象存儲(chǔ)服務(wù)。在私有云或本地環(huán)境中,Ceph 和 MinIO 是兩個(gè)常見的對(duì)象存儲(chǔ)系統(tǒng)。 

與文件存儲(chǔ)不同,對(duì)象存儲(chǔ)不使用目錄樹結(jié)構(gòu)。它把所有的數(shù)據(jù)都看作是對(duì)象,每個(gè)對(duì)象都由一個(gè)唯一的 ID 標(biāo)識(shí)。對(duì)象包括數(shù)據(jù)本身,以及描述數(shù)據(jù)的元數(shù)據(jù),還有一個(gè)全局唯一的 ID。 

對(duì)象存儲(chǔ)的優(yōu)勢(shì)在于其擴(kuò)展性和可訪問性。對(duì)象存儲(chǔ)是為大規(guī)模數(shù)據(jù)設(shè)計(jì)的,它能夠很好地處理大量非結(jié)構(gòu)化數(shù)據(jù)。對(duì)象可以跨多個(gè)服務(wù)器或地理區(qū)域分散存儲(chǔ),提供了高度的冗余和可用性。對(duì)象存儲(chǔ)通常通過 RESTful API 訪問,這使得它可以通過網(wǎng)絡(luò)從任何地方訪問,而且開發(fā)者可以輕松地集成到應(yīng)用程序中。

總結(jié)起來,文件存儲(chǔ)更適合于需要文件級(jí)別操作和低延遲訪問的傳統(tǒng)應(yīng)用,而對(duì)象存儲(chǔ)則適合于大規(guī)模、非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和云環(huán)境。

對(duì)象存儲(chǔ)的桶概念

在對(duì)象存儲(chǔ)系統(tǒng)中,"桶"(Bucket)是一種容器,用于組織和管理存儲(chǔ)的對(duì)象。每個(gè)桶都有一個(gè)唯一的名稱,用于區(qū)分存儲(chǔ)在同一對(duì)象存儲(chǔ)系統(tǒng)中的其他桶。你可以將桶看作是一個(gè)邏輯上的存儲(chǔ)區(qū)域,可以在其中存儲(chǔ)、列舉和刪除對(duì)象。 

對(duì)象存儲(chǔ)系統(tǒng)的用戶可以創(chuàng)建一個(gè)或多個(gè)桶,并將對(duì)象上傳到這些桶中。每個(gè)對(duì)象都有一個(gè)與其所在桶相關(guān)聯(lián)的唯一鍵,可以用這個(gè)鍵在桶中定位對(duì)象。

這里需要注意的是,桶并不等同于傳統(tǒng)文件系統(tǒng)的文件夾。在文件系統(tǒng)中,文件夾可以嵌套,形成一個(gè)層級(jí)結(jié)構(gòu),但在對(duì)象存儲(chǔ)中,桶并不能嵌套。每個(gè)桶都是平等且獨(dú)立的,它們只是一種組織對(duì)象的方式。 

另外,每個(gè)桶可以有其自己的配置,如訪問權(quán)限和生命周期管理規(guī)則。例如,你可以為一個(gè)桶設(shè)置公共讀取權(quán)限,而另一個(gè)桶則設(shè)置為私有?;蛘?,你可以為一個(gè)桶設(shè)置一個(gè)規(guī)則,自動(dòng)刪除超過一定期限的對(duì)象。這為管理和控制存儲(chǔ)的數(shù)據(jù)提供了靈活性。

例如,Amazon S3、Google Cloud Storage 和 Ceph RGW 都使用了桶的概念。你可以通過這些服務(wù)的 API 或工具創(chuàng)建桶,上傳對(duì)象到桶,從桶下載對(duì)象,列舉桶中的對(duì)象,以及管理桶的配置。

什么是RGW

RGW是RADOS Gateway的簡(jiǎn)稱,是一套基于LIBRADOS接口封裝而實(shí)現(xiàn)的FastCGI服務(wù),對(duì)外提供基于 HTTP 的RESTful風(fēng)格的對(duì)象存儲(chǔ)數(shù)據(jù)訪問和管理接口,使得 Ceph 存儲(chǔ)集群可以像對(duì)象存儲(chǔ)系統(tǒng)一樣使用。 

RGW 支持兩種主要的對(duì)象存儲(chǔ) API:Amazon S3 兼容的 API 和 OpenStack Swift 兼容的 API。這使得可以使用許多已經(jīng)存在的 S3 或 Swift 工具和庫(kù)來訪問 Ceph 存儲(chǔ)。RGW 的主要功能包括:

  • 提供 S3 或 Swift 兼容的 API,使得你可以在 Ceph 上存儲(chǔ)和檢索數(shù)據(jù),而不需要知道底層的 RADOS 協(xié)議。
  • 支持多種訪問控制機(jī)制,包括 S3 風(fēng)格的 ACL(Access Control Lists)和 Swift 風(fēng)格的訪問控制。
  • 提供數(shù)據(jù)冗余和復(fù)制,確保數(shù)據(jù)的可靠性和持久性。
  • 支持大規(guī)模的數(shù)據(jù)存儲(chǔ),你可以存儲(chǔ)幾乎無限數(shù)量的對(duì)象。
  • 支持多租戶環(huán)境,可以在同一 Ceph 集群中為不同的用戶或組織提供隔離的存儲(chǔ)空間。

因此,如果需要在 Ceph 存儲(chǔ)集群中使用對(duì)象存儲(chǔ),或者你需要與 S3 或 Swift 兼容的存儲(chǔ),那么 RGW 就會(huì)是一個(gè)很好的選擇。

安裝ceph RADOS Gateway

在線方式安裝

sudo apt install ceph-radosgw

離線安裝

在聯(lián)網(wǎng)環(huán)境下安裝 apt-rdepends:

sudo apt-get update
sudo apt-get install apt-rdepends

apt-rdepends 是一個(gè)工具,可以列出一個(gè)包及其所有遞歸依賴的包。使用 apt-rdepends 列出 radosgw 及其所有依賴的包:

apt-rdepends radosgw | grep -v "^ " > packages.txt

這會(huì)生成一個(gè)名為 packages.txt 的文件,包含 radosgw 及其所有依賴的包的名稱。使用 apt-get download 下載這些包

mkdir packages
cd packages
xargs -a ../packages.txt apt-get download

這會(huì)在 packages 目錄下下載 radosgw 及其所有依賴的包。

  1. 將下載的包拷貝到離線的環(huán)境中:
tar -zcvf ceph_radosgw.tar.gz packages
離線環(huán)境解壓安裝
tar -zxvf ceph_radosgw.tar.gz packages
cd packages
dpkg -i *.deb

配置ceph rados gateway

編輯 /etc/ceph/ceph.conf 文件以添加 client.rgw 部分,下面可以添加多個(gè)rgw主機(jī),這樣,每個(gè) RGW 實(shí)例都有自己的配置,并且都可以被獨(dú)立地啟動(dòng)和停止。這種方式可以提高系統(tǒng)的可用性和容錯(cuò)能力,因?yàn)榧词挂粋€(gè) RGW 實(shí)例出現(xiàn)問題,其他的實(shí)例仍然可以繼續(xù)提供服務(wù)。

[client.rgw.node1]
host = node1
rgw_frontends = "civetweb port=80"
[client.rgw.node2]
host = node2
rgw_frontends = "civetweb port=80"

創(chuàng)建keyring

創(chuàng)建 keyring 文件:使用 ceph-authtool 命令來創(chuàng)建 keyring 文件,然后使用 chown 命令來更改文件的所有者為 ceph 用戶。

sudo mkdir -p /var/lib/ceph/radosgw/ceph-rgw.`hostname`/
sudo ceph-authtool /var/lib/ceph/radosgw/ceph-rgw.`hostname`/keyring --create-keyring --gen-key -n client.rgw.`hostname`
sudo chown ceph:ceph /var/lib/ceph/radosgw/ceph-rgw.`hostname`/keyring

添加 keyring 到 Ceph 集群:你需要將新創(chuàng)建的 keyring 添加到你的 Ceph 集群中。

sudo ceph auth add client.rgw.`hostname` osd 'allow rwx' mon 'allow rwx' -i /var/lib/ceph/radosgw/ceph-rgw.`hostname`/keyring

重啟ceph rados gateway

sudo systemctl start ceph-radosgw@rgw.`hostname`

創(chuàng)建rgw 數(shù)據(jù)池

創(chuàng)建數(shù)據(jù)池以供 RGW 使用。在命令行中運(yùn)行 ceph 命令以創(chuàng)建所需的池。

ceph osd pool create .rgw.root 64
ceph osd pool create default.rgw.control 64
ceph osd pool create default.rgw.data.root 64
ceph osd pool create default.rgw.gc 64
ceph osd pool create default.rgw.log 64
ceph osd pool create default.rgw.users.uid 64
ceph osd pool create default.rgw.users.email 64
ceph osd pool create default.rgw.users.swift 64
ceph osd pool create default.rgw.buckets.index 64
ceph osd pool create default.rgw.buckets.data 64

解釋下上面創(chuàng)建的數(shù)據(jù)池的作用

  • .rgw.root:存儲(chǔ) RGW 的配置信息和元數(shù)據(jù),例如區(qū)域和區(qū)域組的定義。
  • default.rgw.control:用于 RGW 控制數(shù)據(jù)。
  • default.rgw.data.root:默認(rèn)情況下,新創(chuàng)建的 RGW bucket 的元數(shù)據(jù)會(huì)存儲(chǔ)在這個(gè)池中。
  • default.rgw.gc:用于存儲(chǔ)將被垃圾收集器清理的對(duì)象列表。
  • default.rgw.log:用于記錄 RGW 的訪問日志。
  • default.rgw.users.uid、default.rgw.users.email、default.rgw.users.swift:存儲(chǔ)不同類型的用戶信息。
  • default.rgw.buckets.index:存儲(chǔ)每個(gè) bucket 的索引信息,用于快速查找和訪問 bucket 中的對(duì)象。
  • default.rgw.buckets.data:默認(rèn)情況下,新創(chuàng)建的 RGW bucket 的對(duì)象數(shù)據(jù)會(huì)存儲(chǔ)在這個(gè)池中。

在執(zhí)行上面操作中可能會(huì)報(bào)如下錯(cuò)誤

pg_num 64 size 3 would mean 771 total pgs, which exceeds max 750 (mon_max_pg_per_osd 250 * num_in_osds 3

新創(chuàng)建的 placement groups(PG)數(shù)量超過了 Ceph 集群的限制。Ceph 集群設(shè)置了每個(gè) OSD 可以支持的最大 PG 數(shù)量,這是通過參數(shù) mon_max_pg_per_osd 來控制的。

mon_max_pg_per_osd 的值被設(shè)置為了 250,而此時(shí)的集群中有 3 個(gè) OSDs,因此,集群總共可以支持 250 * 3 = 750 個(gè) PGs?,F(xiàn)在嘗試創(chuàng)建的 PG 數(shù)量為 64 * 3 = 192 個(gè)(因?yàn)?size 參數(shù)設(shè)置為 3,每個(gè) PG 都會(huì)有兩個(gè)副本),加上集群中已經(jīng)存在的 PG 數(shù)量,總數(shù)超過了 750。可以采取以下幾種策略來解決這個(gè)問題:

  1. 增加 mon_max_pg_per_osd 的值:這將增加每個(gè) OSD 支持的 PG 數(shù)量,從而增加集群總體可以支持的 PG 數(shù)量。但是過多的 PGs 可能會(huì)消耗更多的內(nèi)存和 CPU 資源,可能導(dǎo)致性能下降。
ceph config set global mon_max_pg_per_osd 300
查看當(dāng)前osd可以支持的最大pg數(shù)
ceph config get mon mon_max_pg_per_osd
  1. 添加更多的 OSDs:通過增加 OSD 的數(shù)量,增加集群總體可以支持的 PG 數(shù)量。
  2. 減小 pg_num 的值:降低 pg_num 的值可以減少新創(chuàng)建的 PG 數(shù)量,從而使得總 PG 數(shù)量不超過限制。但是,pg_num 的值應(yīng)該根據(jù)你的數(shù)據(jù)分布和性能需求來設(shè)置,過小的 pg_num 可能會(huì)導(dǎo)致數(shù)據(jù)分布不均,性能下降。

使用radosgw-admin 命令行工具來創(chuàng)建用戶

radosgw-admin user create --uid="wanger" --display-name="wanger"

創(chuàng)建完成后需要保存好access_key和secret_key,后面配置 S3 客戶端和其他工具會(huì)用到

圖片

在 Ceph RADOS Gateway (RGW) 中,可以使用 S3 兼容的客戶端工具(例如 AWS CLI、s3cmd、boto3 等)或者 librgw API 來上傳數(shù)據(jù)。下面以awscli為例進(jìn)行實(shí)驗(yàn)

  1. 安裝 AWS CLI
apt-get install awscli
  1. 配置 AWS CLI:運(yùn)行 aws configure 命令來配置 S3 客戶端。需要提供訪問密鑰、安全密鑰、默認(rèn)區(qū)域名稱(可以設(shè)置為 us-east-1),以及默認(rèn)輸出格式(可以設(shè)置為 json)。
aws configure

將訪問密鑰和安全密鑰設(shè)置為你在 RGW 中創(chuàng)建的用戶的密鑰。

  1. 創(chuàng)建bucket:使用aws s3api create-bucket命令來創(chuàng)建新的bucket。例如:
aws s3api create-bucket --bucket mybucket --endpoint-url http://node1
  1. 上傳數(shù)據(jù):使用 aws s3 cp 命令來上傳文件到 bucket。例如:
aws s3 cp myfile.txt s3://mybucket/myfile.txt --endpoint-url http://node1
  1. 列出 bucket 中的文件:使用 aws s3 ls 命令來列出 bucket 中的所有文件。例如:
aws s3api head-object --bucket mybucket --key myfile.txt --endpoint-url http://node1
  1. 刪除文件:使用 aws s3 rm 命令來刪除 bucket 中的文件。例如:
aws s3 rm s3://mybucket/myfile.txt --endpoint--url http://node1


責(zé)任編輯:武曉燕 來源: 運(yùn)維開發(fā)故事
相關(guān)推薦

2023-01-10 08:43:15

定義DDD架構(gòu)

2024-02-04 00:00:00

Effect數(shù)據(jù)組件

2023-07-26 13:11:21

ChatGPT平臺(tái)工具

2024-01-19 08:25:38

死鎖Java通信

2024-01-02 12:05:26

Java并發(fā)編程

2023-08-01 12:51:18

WebGPT機(jī)器學(xué)習(xí)模型

2022-11-21 16:57:20

2024-05-06 00:00:00

InnoDBView隔離

2024-08-06 09:47:57

2022-07-08 09:27:48

CSSIFC模型

2023-01-30 09:01:54

圖表指南圖形化

2024-07-31 08:39:45

Git命令暫存區(qū)

2023-12-12 08:02:10

2023-10-10 11:04:11

Rust難點(diǎn)內(nèi)存

2022-07-13 08:16:49

RocketMQRPC日志

2023-01-31 08:02:18

2023-03-26 22:31:29

2023-05-05 06:54:07

MySQL數(shù)據(jù)查詢

2023-08-26 21:34:28

Spring源碼自定義

2022-06-16 07:50:35

數(shù)據(jù)結(jié)構(gòu)鏈表
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)