偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Ceph RADOS Gateway安裝,你學會了嗎?

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

什么是對象存儲

對象存儲以獨立的對象的形式管理數(shù)據(jù),而不是傳統(tǒng)的文件層次結構或塊存儲的形式。每個對象包括數(shù)據(jù)、元數(shù)據(jù)和唯一標識符。元數(shù)據(jù)是描述數(shù)據(jù)的信息,比如創(chuàng)建日期、類型和其他相關信息。 

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

與文件存儲不同,對象存儲不使用目錄樹結構。它把所有的數(shù)據(jù)都看作是對象,每個對象都由一個唯一的 ID 標識。對象包括數(shù)據(jù)本身,以及描述數(shù)據(jù)的元數(shù)據(jù),還有一個全局唯一的 ID。 

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

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

對象存儲的桶概念

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

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

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

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

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

什么是RGW

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

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

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

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

安裝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 是一個工具,可以列出一個包及其所有遞歸依賴的包。使用 apt-rdepends 列出 radosgw 及其所有依賴的包:

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

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

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

這會在 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 部分,下面可以添加多個rgw主機,這樣,每個 RGW 實例都有自己的配置,并且都可以被獨立地啟動和停止。這種方式可以提高系統(tǒng)的可用性和容錯能力,因為即使一個 RGW 實例出現(xiàn)問題,其他的實例仍然可以繼續(xù)提供服務。

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

在執(zhí)行上面操作中可能會報如下錯誤

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 集群設置了每個 OSD 可以支持的最大 PG 數(shù)量,這是通過參數(shù) mon_max_pg_per_osd 來控制的。

mon_max_pg_per_osd 的值被設置為了 250,而此時的集群中有 3 個 OSDs,因此,集群總共可以支持 250 * 3 = 750 個 PGs?,F(xiàn)在嘗試創(chuàng)建的 PG 數(shù)量為 64 * 3 = 192 個(因為 size 參數(shù)設置為 3,每個 PG 都會有兩個副本),加上集群中已經(jīng)存在的 PG 數(shù)量,總數(shù)超過了 750??梢圆扇∫韵聨追N策略來解決這個問題:

  1. 增加 mon_max_pg_per_osd 的值:這將增加每個 OSD 支持的 PG 數(shù)量,從而增加集群總體可以支持的 PG 數(shù)量。但是過多的 PGs 可能會消耗更多的內(nèi)存和 CPU 資源,可能導致性能下降。
ceph config set global mon_max_pg_per_osd 300
查看當前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 的值應該根據(jù)你的數(shù)據(jù)分布和性能需求來設置,過小的 pg_num 可能會導致數(shù)據(jù)分布不均,性能下降。

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

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

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

圖片

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

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

將訪問密鑰和安全密鑰設置為你在 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


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

2024-01-19 08:25:38

死鎖Java通信

2024-02-04 00:00:00

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

2023-07-26 13:11:21

ChatGPT平臺工具

2023-01-10 08:43:15

定義DDD架構

2023-08-01 12:51:18

WebGPT機器學習模型

2024-01-02 12:05:26

Java并發(fā)編程

2022-11-21 16:57:20

2023-10-10 11:04:11

Rust難點內(nèi)存

2024-05-06 00:00:00

InnoDBView隔離

2024-07-31 08:39:45

Git命令暫存區(qū)

2023-01-30 09:01:54

圖表指南圖形化

2022-07-08 09:27:48

CSSIFC模型

2023-12-12 08:02:10

2024-08-06 09:47:57

2024-03-06 08:28:16

設計模式Java

2022-06-16 07:50:35

數(shù)據(jù)結構鏈表

2022-12-06 07:53:33

MySQL索引B+樹

2023-01-31 08:02:18

2023-10-06 14:49:21

SentinelHystrixtimeout

2022-07-13 08:16:49

RocketMQRPC日志
點贊
收藏

51CTO技術棧公眾號