ウェブサイト検索

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 つのインターフェイスをサポートしています。

  1. S3 互換: Amazon S3 RESTful API の大規模なサブセットと互換性のあるインターフェイスを備えたオブジェクト ストレージ機能を提供します。
  2. 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_keysecret_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 クラスターの監視

関連記事: