Cephオブジェクトストレージのクイックスタート

10288 ワード

ceph rgwのインストール


ceph adminノードで次のコマンドを実行します.
[root@ceph-admin ~]# ceph-deploy install --rgw  ceph-admin

オブジェクトストレージゲートウェイインスタンスの作成
[root@ceph-admin ceph-cluster]# ceph-deploy rgw create ceph-admin
[ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.conf
[ceph_deploy.cli][INFO  ] Invoked (2.0.1): /usr/bin/ceph-deploy rgw create ceph-admin
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  rgw                           : [('ceph-admin', 'rgw.ceph-admin')]
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False
[ceph_deploy.cli][INFO  ]  subcommand                    : create
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  cd_conf                       : 
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  func                          : 
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.rgw][DEBUG ] Deploying rgw, cluster ceph hosts ceph-admin:rgw.ceph-admin
[ceph-admin][DEBUG ] connected to host: ceph-admin 
[ceph-admin][DEBUG ] detect platform information from remote host
[ceph-admin][DEBUG ] detect machine type
[ceph_deploy.rgw][INFO  ] Distro info: CentOS Linux 7.8.2003 Core
[ceph_deploy.rgw][DEBUG ] remote host will use systemd
[ceph_deploy.rgw][DEBUG ] deploying rgw bootstrap to ceph-admin
[ceph-admin][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf
[ceph-admin][WARNIN] rgw keyring does not exist yet, creating one
[ceph-admin][DEBUG ] create a keyring file
[ceph-admin][DEBUG ] create path recursively if it doesn't exist
[ceph-admin][INFO  ] Running command: ceph --cluster ceph --name client.bootstrap-rgw --keyring /var/lib/ceph/bootstrap-rgw/ceph.keyring auth get-or-create client.rgw.ceph-admin osd allow rwx mon allow rw -o /var/lib/ceph/radosgw/ceph-rgw.ceph-admin/keyring
[ceph-admin][INFO  ] Running command: systemctl enable [email protected]
[ceph-admin][WARNIN] Created symlink from /etc/systemd/system/ceph-radosgw.target.wants/[email protected] to /usr/lib/systemd/system/[email protected].
[ceph-admin][INFO  ] Running command: systemctl start [email protected]
[ceph-admin][INFO  ] Running command: systemctl enable ceph.target
[ceph_deploy.rgw][INFO  ] The Ceph Object Gateway (RGW) is now running on host ceph-admin and default port 7480

デフォルトでは7480ポートが有効ですが、有効なポートを変更する場合は、プロファイルを変更して次のパラメータを追加し、ceph-radosgwを再起動できます.service
  ceph.conf [global]      ,    client-node     
[client.rgw.client-node]
rgw_frontends = "civetweb port=80"
  :     ceph-admin
[client.rgw.ceph-admin]
rgw_frontends = "civetweb port=80"
      
[root@ceph-admin ceph-cluster]# ceph-deploy --overwrite-conf config push ceph-admin
  ceph-radosgw
[root@ceph-admin ceph-cluster]# systemctl restart [email protected]

アクセスノード80のポートには、以下の情報が表示される


anonymous





gatewayの使用


RESTインタフェースを使用するには、まずS 3インタフェースの初期Cephオブジェクトゲートウェイユーザを作成する.その後、Swiftのサブユーザーを作成します.作成したユーザーがゲートウェイにアクセスできるかどうかを確認します.
  testuser  
[root@ceph-admin ceph-cluster]#  radosgw-admin user create --uid="testuser" --display-name="First User"
{
    "user_id": "testuser",
    "display_name": "First User",
    "email": "",
    "suspended": 0,
    "max_buckets": 1000,
    "auid": 0,
    "subusers": [],
    "keys": [
        {
            "user": "testuser",
            "access_key": "63C4QLTMEHB8PZF9EQCY",
            "secret_key": "8UWfMAMr6sX7o7lLtdLZMKu07uuP2VlXtZblaXfX"
        }
    ],
    "swift_keys": [],
    "caps": [],
    "op_mask": "read, write, delete",
    "default_placement": "",
    "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": []
}


swiftユーザーの作成

[root@ceph-admin ceph-cluster]# radosgw-admin subuser create --uid=testuser --subuser=testuser:swift --access=full
{
    "user_id": "testuser",
    "display_name": "First User",
    "email": "",
    "suspended": 0,
    "max_buckets": 1000,
    "auid": 0,
    "subusers": [
        {
            "id": "testuser:swift",
            "permissions": "full-control"
        }
    ],
    "keys": [
        {
            "user": "testuser",
            "access_key": "63C4QLTMEHB8PZF9EQCY",
            "secret_key": "8UWfMAMr6sX7o7lLtdLZMKu07uuP2VlXtZblaXfX"
        }
    ],
    "swift_keys": [
        {
            "user": "testuser:swift",
            "secret_key": "Rece2VLigrD5hMwhMLXO1Bych14WeJsAIUGsFa8J"
        }
    ],
    "caps": [],
    "op_mask": "read, write, delete",
    "default_placement": "",
    "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": []
}

キーの作成

[root@ceph-admin ceph-cluster]#  radosgw-admin key create --subuser=testuser:swift --key-type=swift --gen-secret
{
    "user_id": "testuser",
    "display_name": "First User",
    "email": "",
    "suspended": 0,
    "max_buckets": 1000,
    "auid": 0,
    "subusers": [
        {
            "id": "testuser:swift",
            "permissions": "full-control"
        }
    ],
    "keys": [
        {
            "user": "testuser",
            "access_key": "63C4QLTMEHB8PZF9EQCY",
            "secret_key": "8UWfMAMr6sX7o7lLtdLZMKu07uuP2VlXtZblaXfX"
        }
    ],
    "swift_keys": [
        {
            "user": "testuser:swift",
            "secret_key": "Oe8c7JsAJobqS7IN9sFiNCbLDzgy8Ya1F8mr5LwN"
        }
    ],
    "caps": [],
    "op_mask": "read, write, delete",
    "default_placement": "",
    "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": []
}


認証アクセス


S 3


pythonスクリプトでs 3へのアクセスを認証するには、python-botoパッケージをインストールする必要があります.
[root@ceph-admin ceph-cluster]# yum install python-boto -y
[root@ceph-admin ceph-cluster]# cat s3test.py 
import boto.s3.connection

access_key = '63C4QLTMEHB8PZF9EQCY'
secret_key = '8UWfMAMr6sX7o7lLtdLZMKu07uuP2VlXtZblaXfX'
conn = boto.connect_s3(
        aws_access_key_id=access_key,
        aws_secret_access_key=secret_key,
        host='ceph-admin', port=80,
        is_secure=False, calling_format=boto.s3.connection.OrdinaryCallingFormat(),
       )

bucket = conn.create_bucket('my-new-bucket')
for bucket in conn.get_all_buckets():
    print "{name} {created}".format(
        name=bucket.name,
        created=bucket.creation_date,
    )
    
   key radosgw-admin user create       ,              
radosgw-admin user info --uid testuser  
[root@ceph-admin ceph-cluster]# python s3test.py
my-new-bucket 2020-06-14T02:13:58.424Z

Swift経由

[root@ceph-admin ceph-cluster]#  yum install python-setuptools -y
[root@ceph-admin ceph-cluster]# easy_install pip
Searching for pip
Best match: pip 20.1.1
Adding pip 20.1.1 to easy-install.pth file
Installing pip script to /usr/bin
Installing pip3.8 script to /usr/bin
Installing pip3 script to /usr/bin

Using /usr/lib/python2.7/site-packages
Processing dependencies for pip
Finished processing dependencies for pip

[root@ceph-admin ceph-cluster]#  pip install --upgrade setuptools
[root@ceph-admin ceph-cluster]#  pip install --upgrade python-swiftclient
   -K   radosgw-admin key create    "swift_keys"  "secret_key"
[root@ceph-admin ceph-cluster]# swift -V 1 -A http://10.10.128.174:80/auth -U testuser:swift -K 'Oe8c7JsAJobqS7IN9sFiNCbLDzgy8Ya1F8mr5LwN' list

my-new-bucket

ガイド:1.ゼロからcephクラスタ2を配置する.Ceph block deviceとcephfs快速入門