成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

什么是對象存儲

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

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

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

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

總結起來,文件存儲更適合于需要文件級別操作和低延遲訪問的傳統應用,而對象存儲則適合于大規模、非結構化數據的存儲和云環境。

對象存儲的桶概念

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

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

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

另外,每個桶可以有其自己的配置,如訪問權限和生命周期管理規則。例如,你可以為一個桶設置公共讀取權限,而另一個桶則設置為私有?;蛘撸憧梢詾橐粋€桶設置一個規則,自動刪除超過一定期限的對象。這為管理和控制存儲的數據提供了靈活性。

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

什么是RGW

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

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

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

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

安裝ceph RADOS Gateway

在線方式安裝

sudo apt install ceph-radosgw

離線安裝

在聯網環境下安裝 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. 將下載的包拷貝到離線的環境中:
tar -zcvf ceph_radosgw.tar.gz packages
離線環境解壓安裝
tar -zxvf ceph_radosgw.tar.gz packages
cd packages
dpkg -i *.deb

配置ceph rados gateway

編輯 /etc/ceph/ceph.conf 文件以添加 client.rgw 部分,下面可以添加多個rgw主機,這樣,每個 RGW 實例都有自己的配置,并且都可以被獨立地啟動和停止。這種方式可以提高系統的可用性和容錯能力,因為即使一個 RGW 實例出現問題,其他的實例仍然可以繼續提供服務。

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

創建keyring

創建 keyring 文件:使用 ceph-authtool 命令來創建 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 集群:你需要將新創建的 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`

創建rgw 數據池

創建數據池以供 RGW 使用。在命令行中運行 ceph 命令以創建所需的池。

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

解釋下上面創建的數據池的作用

  • .rgw.root:存儲 RGW 的配置信息和元數據,例如區域和區域組的定義。
  • default.rgw.control:用于 RGW 控制數據。
  • default.rgw.data.root:默認情況下,新創建的 RGW bucket 的元數據會存儲在這個池中。
  • 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:默認情況下,新創建的 RGW bucket 的對象數據會存儲在這個池中。

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

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

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

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

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

使用radosgw-admin 命令行工具來創建用戶

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

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

圖片

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

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

將訪問密鑰和安全密鑰設置為你在 RGW 中創建的用戶的密鑰。

  1. 創建bucket:使用aws s3api create-bucket命令來創建新的bucket。例如:
aws s3api create-bucket --bucket mybucket --endpoint-url http://node1
  1. 上傳數據:使用 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


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

2024-01-19 08:25:38

死鎖Java通信

2024-02-04 00:00:00

Effect數據組件

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并發編程

2022-11-21 16:57:20

2023-10-10 11:04:11

Rust難點內存

2024-05-06 00:00:00

InnoDBView隔離

2024-07-31 08:39:45

Git命令暫存區

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

數據結構鏈表

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技術棧公眾號

主站蜘蛛池模板: 亚洲精品久久久久久一区二区 | 一区二区三区在线看 | 成av在线 | 一区中文字幕 | 国产精品久久7777777 | julia中文字幕久久一区二区 | 色橹橹欧美在线观看视频高清 | 天天艹天天干天天 | 国产免费一区二区 | 久久久久成人精品免费播放动漫 | 亚洲欧美久久 | 久热国产精品视频 | 亚洲精品第一 | 国产精品久久久久国产a级 欧美日韩国产免费 | 91看片| 国产做a爱免费视频 | 欧美一级免费看 | 日日干天天干 | 久久久久久91 | 操射视频 | 国产视频久 | 成人在线播放 | 99re在线| 日本网站免费在线观看 | 日本亚洲欧美 | 国产精品欧美一区二区三区不卡 | 欧美一区二区免费在线 | 欧美v日韩v | 亚洲国产成人av好男人在线观看 | 黑人精品xxx一区一二区 | 久综合 | 天堂精品| 在线免费观看黄视频 | 成人国产在线视频 | 男女视频免费 | 欧美日韩在线一区二区三区 | 日韩三 | 亚洲一区二区中文字幕 | www.久久| 亚洲精品国产第一综合99久久 | 91精品国产色综合久久 |