3.3. Red Hat Enterprise Linux 用ストレージノードのインストールおよび設定

外部ストレージノードで Red Hat OpenStack Platform Object Storage サービス (swift) を使用するには、アカウント、コンテナー、およびオブジェクトサービスのプロセスを処理するストレージノードをインストールして設定する必要があります。この設定では、2 つのストレージノードを参照します。それぞれのノードには、空のローカルブロックストレージデバイスが 2 つ含まれます。

注記

Object Storage サービスの内部ネットワークは認証されません。セキュリティー上の理由から、Red Hat では、ストレージノードを専用のネットワークまたは VLAN 上に維持することを推奨します。

注記

手順ではデバイス名に /dev/sdb および /dev/sdc を使用していますが、実際の環境内の特定ノードの値に置き換えることができます。

3.3.1. ストレージデバイスの準備

ストレージノードに Object Storage サービスをインストールして設定する前に、ストレージデバイスの準備を行う必要があります。

注記

各ストレージノードでこれらのすべての手順を実施します。

手順

  1. 補助ユーティリティーパッケージをインストールします。

    # yum install xfsprogs rsync
  2. /dev/sdb および /dev/sdc デバイスを XFS としてフォーマットします。

    # mkfs.xfs /dev/sdb
    # mkfs.xfs /dev/sdc
  3. マウントポイントのディレクトリー構造を作成します。

    # mkdir -p /srv/node/sdb
    # mkdir -p /srv/node/sdc
  4. /etc/fstab ファイルを編集し、以下のデータを追加します。

    /dev/sdb /srv/node/sdb xfs defaults 0 2
    /dev/sdc /srv/node/sdc xfs defaults 0 2
  5. デバイスをマウントします。

    # mount /srv/node/sdb
    # mount /srv/node/sdc
  6. /etc/rsyncd.conf ファイルを作成または編集して、以下のデータを追加します。

    uid = swift
    gid = swift
    log file = /var/log/rsyncd.log
    pid file = /var/run/rsyncd.pid
    address = MANAGEMENT_INTERFACE_IP_ADDRESS
    
    [account]
    max connections = 2
    path = /srv/node/
    read only = False
    lock file = /var/lock/account.lock
    
    [container]
    max connections = 2
    path = /srv/node/
    read only = False
    lock file = /var/lock/container.lock
    
    [object]
    max connections = 2
    path = /srv/node/
    read only = False
    lock file = /var/lock/object.lock

    MANAGEMENT_INTERFACE_IP_ADDRESS は、ストレージノード上の管理ネットワークの IP アドレスに置き換えます。

  7. rsyncd サービスを開始し、さらにシステムのブート時に開始するように設定します。

    # systemctl enable rsyncd.service
    # systemctl start rsyncd.service

3.3.2. コンポーネントの設定

アカウント、コンテナー、およびオブジェクトストレージサーバーを設定します。

手順

  1. パッケージをインストールします。

    # yum install openstack-swift-account openstack-swift-container \
      openstack-swift-object
  2. /etc/swift/account-server.conf ファイルを編集し、以下の操作を完了します。

    1. [DEFAULT] セクションで、バインド IP アドレス、バインドポート、ユーザー、設定ディレクトリー、およびマウントポイントディレクトリーを設定します。

      [DEFAULT]
      ...
      bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
      bind_port = 6202
      user = swift
      swift_dir = /etc/swift
      devices = /srv/node
      mount_check = True

      MANAGEMENT_INTERFACE_IP_ADDRESS は、ストレージノード上の管理ネットワークの IP アドレスに置き換えます。

    2. [pipeline:main] セクションで、healthcheck および recon モジュールを有効にします。

      [pipeline:main]
      pipeline = healthcheck recon account-server
    3. [filter:recon] セクションで、recon キャッシュディレクトリーを設定します。

      [filter:recon]
      use = egg:swift#recon
      ...
      recon_cache_path = /var/cache/swift
  3. アカウントサービスのデフォルトファイアウォールポートを開放します。

    # firewall-cmd --permanent --add-port=6202/tcp
  4. /etc/swift/container-server.conf ファイルを編集し、以下の操作を完了します。

    1. [DEFAULT] セクションで、バインド IP アドレス、バインドポート、ユーザー、設定ディレクトリー、およびマウントポイントディレクトリーを設定します。

      [DEFAULT]
      ...
      bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
      bind_port = 6201
      user = swift
      swift_dir = /etc/swift
      devices = /srv/node
      mount_check = True

      MANAGEMENT_INTERFACE_IP_ADDRESS は、ストレージノード上の管理ネットワークの IP アドレスに置き換えます。

    2. [pipeline:main] セクションで、healthcheck および recon モジュールを有効にします。

      [pipeline:main]
      pipeline = healthcheck recon container-server
    3. [filter:recon] セクションで、recon キャッシュディレクトリーを設定します。

      [filter:recon]
      use = egg:swift#recon
      ...
      recon_cache_path = /var/cache/swift
  5. コンテナーサービスのデフォルトファイアウォールポートを開放します。

    # firewall-cmd --permanent --add-port=6201/tcp
  6. /etc/swift/object-server.conf ファイルを編集し、以下の操作を完了します。

    1. [DEFAULT] セクションで、バインド IP アドレス、バインドポート、ユーザー、設定ディレクトリー、およびマウントポイントディレクトリーを設定します。

      [DEFAULT]
      ...
      bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
      bind_port = 6200
      user = swift
      swift_dir = /etc/swift
      devices = /srv/node
      mount_check = True

      MANAGEMENT_INTERFACE_IP_ADDRESS は、ストレージノード上の管理ネットワークの IP アドレスに置き換えます。

    2. [pipeline:main] セクションで、healthcheck および recon モジュールを有効にします。

      [pipeline:main]
      pipeline = healthcheck recon object-server
    3. [filter:recon] セクションで、recon_cache_path および recon_lock_path ディレクトリーを設定します。

      [filter:recon]
      use = egg:swift#recon
      ...
      recon_cache_path = /var/cache/swift
      recon_lock_path = /var/lock
  7. オブジェクトサービスのデフォルトファイアウォールポートを開放します。

    # firewall-cmd --permanent --add-port=6200/tcp
  8. マウントポイントディレクトリー構造の所有権を正しく設定します。

    # chown -R swift:swift /srv/node
  9. recon ディレクトリーを作成し、その所有権を適切に設定します。

    # mkdir -p /var/cache/swift
    # chown -R root:swift /var/cache/swift
    # chmod -R 775 /var/cache/swift