Ceph オブジェクト ゲートウェイ ストレージ用に AWS S3 CLI を設定する |
Ceph Storage 用に AWS s3 CLI を設定するにはどうすればよいですか? Ceph Object Gateway は、Ceph Storage Cluster への RESTful ゲートウェイをアプリケーションに提供するために、librados 上に構築されたオブジェクト ストレージ インターフェイスです。 Ceph Object Gateway デーモン (radosgw) は、Ceph Storage Cluster と対話するための HTTP サーバーです。 OpenStack Swift と Amazon S3 の両方と互換性のあるインターフェイスを提供し、ユーザー管理が組み込まれています。
Ceph Object Storage は 2 つのインターフェイスをサポートしています。
- S3 互換: Amazon S3 RESTful API の大規模なサブセットと互換性のあるインターフェイスを備えたオブジェクト ストレージ機能を提供します。
- Swift 互換: OpenStack Swift API の大規模なサブセットと互換性のあるインターフェイスを備えたオブジェクト ストレージ機能を提供します。
このガイドでは、Ceph Object Storage クラスターと連携するように Amazon S3 CLI を設定することに焦点を当てます。これは、個人のバックアップを自動化し、サーバーのデータと構成を Ceph オブジェクト ストアにプッシュする場合に役立ちます。
ステップ 1: AWS CLI をインストールする
Ceph Object Gateway へのアクセスが行われるサーバーまたはマシンに AWS CLI をインストールする必要があります。
以下のガイドに従って AWS CLI をインストールします。
- Linux に AWS CLI をインストールして使用する
インストールを確認します。
$ aws --version
aws-cli/2.8.12 Python/3.10.8 Darwin/22.5.0 source/x86_64 prompt/off
ステップ 2: S3 アクセス用のオブジェクト ストア ユーザーを作成する
ユーザーは Ceph Object Store バックエンドで作成する必要があります。これにより、AWS S3 CLI が使用するように設定する S3 API 認証情報が生成されます。
管理のためにクラスターにアクセスできる Ceph クラスターノードの 1 つでコマンドを実行します。
sudo radosgw-admin user create --uid="computingforgeeks" --display-name="Computingforgeeks S3User"
どこ :
- computingforgeeks は、作成するユーザーの名前です。
- Computingforgeeks S3User はユーザーの表示名です。
これはコマンドからのサンプル出力です。
{
"user_id": "computingforgeeks",
"display_name": "Computingforgeeks S3User",
"email": "",
"suspended": 0,
"max_buckets": 1000,
"subusers": [],
"keys": [
{
"user": "computingforgeeks",
"access_key": "J18YW5BHJIVF69Y57IIT",
"secret_key": "JthVuEmluDqMuAZyc1oA0abaquc1U0WfemmzL5XS"
}
],
"swift_keys": [],
"caps": [],
"op_mask": "read, write, delete",
"default_placement": "",
"default_storage_class": "",
"placement_tags": [],
"bucket_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"user_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"temp_url_keys": [],
"type": "rgw",
"mfa_ids": []
}
access_key と secret_key をメモしておきます。
"user": "computingforgeeks"
"access_key": "J18YW5BHJIVF69Y57IIT"
"secret_key": "JthVuEmluDqMuAZyc1oA0abaquc1U0WfemmzL5XS"
ステップ 3: Ceph Object Storage で AWS CLI を使用する
AWS CLI ツールを使用して AWS のサービスと対話する前に、aws configure コマンドを実行してツールを設定する必要があります。
$ aws configure --profile=ceph
AWS Access Key ID [None]: J18YW5BHJIVF69Y57IIT
AWS Secret Access Key [None]: JthVuEmluDqMuAZyc1oA0abaquc1U0WfemmzL5XS
Default region name [None]:
Default output format [None]: json
前の手順でコピーしたアクセス キーとシークレット キーを貼り付けます。認証情報はファイル ~/.aws/credentials に書き込まれます。
$ cat ~/.aws/credentials
[ceph]
aws_access_key_id = J18YW5BHJIVF69Y57IIT
aws_secret_access_key = JthVuEmluDqMuAZyc1oA0abaquc1U0WfemmzL5XS
設定ファイルは ~/.aws/config にあります。
$ cat ~/.aws/config
[profile ceph]
output = json
Rados Gateway ノードのいずれかの IP アドレス、または同等の DNS 名を構成する必要があります。次のコマンドを使用して、rgw サーバーのリストを取得します。
$ sudo ceph -s | grep rgw
rgw: 3 daemons active (ceph-rgw-01, ceph-rgw-02, ceph-rgw-03)
私のセットアップには 3 つの rgw サーバーがあります。そのうちの 1 つである ceph-rgw-01 を使用します。URL は http://172.21.148.53 です。
$ aws --profile=ceph --endpoint=http://172.21.148.53 s3 mb s3://test
このコマンドは、test という名前のバケットを作成します。作成はコマンド radosgw-admin を使用して確認できます。
$ sudo radosgw-admin bucket list
[
"jkmutai-bucket",
"test"
]
次のコマンドを使用して、作成されたバケットを一覧表示できます。
$ aws --profile=ceph --endpoint=http://172.21.148.53 s3 ls
2020-02-13 15:17:13 test
テスト ファイルをバケットにコピーします。
$ aws --profile=ceph --endpoint=http://172.21.148.53 s3 cp release.asc s3://test/
upload: ./release.asc to s3://test/release.asc
ファイルがアップロードされたかどうかを確認します。
$ aws --profile=ceph --endpoint=http://172.21.148.53 s3 ls s3://test/
2020-02-13 16:04:17 1645 release.asc
Ceph ダッシュボードの [オブジェクト ゲートウェイ] > [バケット] セクションで同じことを確認できます。
参考: Ceph オブジェクトゲートウェイ
関連ガイド:
Ceph vs GlusterFS vs MooseFS vs HDFS vs DRBD
Ceph Storage Cluster を Ubuntu 18.04 LTS にインストールする方法
Prometheus と Grafana を使用した Ceph クラスターの監視