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 サービスをインストールして設定する前に、ストレージデバイスの準備を行う必要があります。
各ストレージノードでこれらのすべての手順を実施します。
手順
補助ユーティリティーパッケージをインストールします。
# yum install xfsprogs rsync
/dev/sdb
および/dev/sdc
デバイスを XFS としてフォーマットします。# mkfs.xfs /dev/sdb # mkfs.xfs /dev/sdc
マウントポイントのディレクトリー構造を作成します。
# mkdir -p /srv/node/sdb # mkdir -p /srv/node/sdc
/etc/fstab
ファイルを編集し、以下のデータを追加します。/dev/sdb /srv/node/sdb xfs defaults 0 2 /dev/sdc /srv/node/sdc xfs defaults 0 2
デバイスをマウントします。
# mount /srv/node/sdb # mount /srv/node/sdc
/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 アドレスに置き換えます。
rsyncd
サービスを開始し、さらにシステムのブート時に開始するように設定します。# systemctl enable rsyncd.service # systemctl start rsyncd.service
3.3.2. コンポーネントの設定
アカウント、コンテナー、およびオブジェクトストレージサーバーを設定します。
手順
パッケージをインストールします。
# yum install openstack-swift-account openstack-swift-container \ openstack-swift-object
/etc/swift/account-server.conf
ファイルを編集し、以下の操作を完了します。[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 アドレスに置き換えます。
[pipeline:main]
セクションで、healthcheck
およびrecon
モジュールを有効にします。[pipeline:main] pipeline = healthcheck recon account-server
[filter:recon]
セクションで、recon キャッシュディレクトリーを設定します。[filter:recon] use = egg:swift#recon ... recon_cache_path = /var/cache/swift
アカウントサービスのデフォルトファイアウォールポートを開放します。
# firewall-cmd --permanent --add-port=6202/tcp
/etc/swift/container-server.conf
ファイルを編集し、以下の操作を完了します。[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 アドレスに置き換えます。
[pipeline:main]
セクションで、healthcheck
およびrecon
モジュールを有効にします。[pipeline:main] pipeline = healthcheck recon container-server
[filter:recon]
セクションで、recon キャッシュディレクトリーを設定します。[filter:recon] use = egg:swift#recon ... recon_cache_path = /var/cache/swift
コンテナーサービスのデフォルトファイアウォールポートを開放します。
# firewall-cmd --permanent --add-port=6201/tcp
/etc/swift/object-server.conf
ファイルを編集し、以下の操作を完了します。[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 アドレスに置き換えます。
[pipeline:main]
セクションで、healthcheck
およびrecon
モジュールを有効にします。[pipeline:main] pipeline = healthcheck recon object-server
[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
オブジェクトサービスのデフォルトファイアウォールポートを開放します。
# firewall-cmd --permanent --add-port=6200/tcp
マウントポイントディレクトリー構造の所有権を正しく設定します。
# chown -R swift:swift /srv/node
recon
ディレクトリーを作成し、その所有権を適切に設定します。# mkdir -p /var/cache/swift # chown -R root:swift /var/cache/swift # chmod -R 775 /var/cache/swift