Ubuntu 24.04
Sponsored Link

OpenStack Caracal : Swift 設定 (Control ノード)2024/05/22

 

OpenStack Object Storage(Swift)を設定します。

当例では以下のような環境を例に Swift サービスを設定します。

------------+--------------------------+------------
            |                          |
        eth0|10.0.0.30             eth0|10.0.0.50
+-----------+-----------+  +-----------+-----------+
|   [ dlp.srv.world ]   |  | [ network.srv.world ] |
|     (Control Node)    |  |      (Proxy Node)     |
|                       |  |                       |
|  MariaDB    RabbitMQ  |  |      Swift Proxy      |
|  Memcached  Nginx     |  |         Nginx         |
|  Keystone   httpd     |  |                       |
+-----------------------+  +-----------------------+

------------+--------------------------+--------------------------+-----------
        eth0|10.0.0.71             eth0|10.0.0.72             eth0|10.0.0.73
+-----------+-----------+  +-----------+-----------+  +-----------+-----------+
|  [snode01.srv.world]  |  |  [snode02.srv.world]  |  |  [snode03.srv.world]  |
|    (Storage Node#1)   |  |    (Storage Node#2)   |  |    (Storage Node#3)   |
|                       |  |                       |  |                       |
|     Swift-Account     |  |     Swift-Account     |  |     Swift-Account     |
|    Swift-Container    |  |    Swift-Container    |  |    Swift-Container    |
|     Swift-Object      |  |     Swift-Object      |  |     Swift-Object      |
+-----------------------+  +-----------------------+  +-----------------------+

[1] Control ノードの Keystone に Swift 用のユーザー等々を登録しておきます。
# [service] プロジェクト所属で [swift] ユーザーを作成

root@dlp ~(keystone)#
openstack user create --domain default --project service --password servicepassword swift

+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| default_project_id  | ab9749e59bdb48e4807a18abb83c9f99 |
| domain_id           | default                          |
| enabled             | True                             |
| id                  | aec1c215630c467880734684e17e0cd5 |
| name                | swift                            |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

# [swift] ユーザーを [admin] ロール に加える

root@dlp ~(keystone)#
openstack role add --project service --user swift admin
# [swift] 用サービスエントリ作成

root@dlp ~(keystone)#
openstack service create --name swift --description "OpenStack Object Storage" object-store

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Object Storage         |
| enabled     | True                             |
| id          | 29db359aa9d44086aaf4ff0b50a04b2a |
| name        | swift                            |
| type        | object-store                     |
+-------------+----------------------------------+

# Swift Proxy ノードを定義

root@dlp ~(keystone)#
export swift_proxy=network.srv.world
# [swift] 用エンドポイント作成 (public)

root@dlp ~(keystone)#
openstack endpoint create --region RegionOne object-store public https://$swift_proxy:8080/v1/AUTH_%\(tenant_id\)s

+--------------+------------------------------------------------------+
| Field        | Value                                                |
+--------------+------------------------------------------------------+
| enabled      | True                                                 |
| id           | fb95c056bcf346bfb70e393a496c3686                     |
| interface    | public                                               |
| region       | RegionOne                                            |
| region_id    | RegionOne                                            |
| service_id   | 29db359aa9d44086aaf4ff0b50a04b2a                     |
| service_name | swift                                                |
| service_type | object-store                                         |
| url          | https://network.srv.world:8080/v1/AUTH_%(tenant_id)s |
+--------------+------------------------------------------------------+

# [swift] 用エンドポイント作成 (internal)

root@dlp ~(keystone)#
openstack endpoint create --region RegionOne object-store internal https://$swift_proxy:8080/v1/AUTH_%\(tenant_id\)s

+--------------+------------------------------------------------------+
| Field        | Value                                                |
+--------------+------------------------------------------------------+
| enabled      | True                                                 |
| id           | 720bbf226b434ad5b095d7242ee94e23                     |
| interface    | internal                                             |
| region       | RegionOne                                            |
| region_id    | RegionOne                                            |
| service_id   | 29db359aa9d44086aaf4ff0b50a04b2a                     |
| service_name | swift                                                |
| service_type | object-store                                         |
| url          | https://network.srv.world:8080/v1/AUTH_%(tenant_id)s |
+--------------+------------------------------------------------------+

# [swift] 用エンドポイント作成 (admin)

root@dlp ~(keystone)#
openstack endpoint create --region RegionOne object-store admin https://$swift_proxy:8080/v1

+--------------+-----------------------------------+
| Field        | Value                             |
+--------------+-----------------------------------+
| enabled      | True                              |
| id           | 8a1c88fc239d435496db11a92159765d  |
| interface    | admin                             |
| region       | RegionOne                         |
| region_id    | RegionOne                         |
| service_id   | 29db359aa9d44086aaf4ff0b50a04b2a  |
| service_name | swift                             |
| service_type | object-store                      |
| url          | https://network.srv.world:8080/v1 |
+--------------+-----------------------------------+
関連コンテンツ