Red Hat Training
A Red Hat training course is available for RHEL 8
4.11. 共有ブロックストレージの設定
Amazon Elastic Block Storage (EBS) マルチアタッチボリュームを使用して Red Hat High Availability クラスターの共有ブロックストレージを設定するには、次の手順を使用します。この手順はオプションであり、以下の手順では、1 TB の共有ディスクを持つ 3 つのインスタンス (3 ノードクラスター) を想定していることに注意してください。
前提条件
- AWS Nitro システムベースの Amazon EC2 インスタンスを使用している必要があります。
手順
AWS コマンド create-volume を使用して共有ブロックボリュームを作成 します。
$ aws ec2 create-volume --availability-zone <availability_zone> --no-encrypted --size 1024 --volume-type io1 --iops 51200 --multi-attach-enabled
たとえば、以下のコマンドは、
us-east-1a
アベイラビリティーゾーンにボリュームを作成します。$ aws ec2 create-volume --availability-zone us-east-1a --no-encrypted --size 1024 --volume-type io1 --iops 51200 --multi-attach-enabled { "AvailabilityZone": "us-east-1a", "CreateTime": "2020-08-27T19:16:42.000Z", "Encrypted": false, "Size": 1024, "SnapshotId": "", "State": "creating", "VolumeId": "vol-042a5652867304f09", "Iops": 51200, "Tags": [ ], "VolumeType": "io1" }
注記次の手順で
VolumeId
が必要になります。クラスターの各インスタンスについて、AWS コマンド
attach-volume
を使用して共有ブロックボリュームを割り当てます。<instance_id>
および<volume_id>
を使用します。$ aws ec2 attach-volume --device /dev/xvdd --instance-id <instance_id> --volume-id <volume_id>
たとえば、以下のコマンドは共有ブロックボリューム
vol-042a5652867304f09
をinstance i-0eb803361c2c887f2
に接続します。$ aws ec2 attach-volume --device /dev/xvdd --instance-id i-0eb803361c2c887f2 --volume-id vol-042a5652867304f09 { "AttachTime": "2020-08-27T19:26:16.086Z", "Device": "/dev/xvdd", "InstanceId": "i-0eb803361c2c887f2", "State": "attaching", "VolumeId": "vol-042a5652867304f09" }
検証
クラスター内の各インスタンスについて、インスタンスの
<ip_address>
を指定してSSH
コマンドを使用して、ブロックデバイスが利用可能になっていることを確認します。# ssh <ip_address> "hostname ; lsblk -d | grep ' 1T '"
たとえば、以下のコマンドは、インスタンス IP が
198.51.100.3
のホスト名およびブロックデバイスを含む詳細を一覧表示します。# ssh 198.51.100.3 "hostname ; lsblk -d | grep ' 1T '" nodea nvme2n1 259:1 0 1T 0 disk
SSH
コマンドを使用して、クラスター内の各インスタンスが同じ共有ディスクを使用していることを確認します。# ssh <ip_address> "hostname ; lsblk -d | grep ' 1T ' | awk '{print \$1}' | xargs -i udevadm info --query=all --name=/dev/{} | grep '^E: ID_SERIAL='"
たとえば、以下のコマンドは、インスタンスの IP アドレスが
198.51.100.3
のホスト名および共有ディスクボリューム ID が含まれる詳細を一覧表示します。# ssh 198.51.100.3 "hostname ; lsblk -d | grep ' 1T ' | awk '{print \$1}' | xargs -i udevadm info --query=all --name=/dev/{} | grep '^E: ID_SERIAL='" nodea E: ID_SERIAL=Amazon Elastic Block Store_vol0fa5342e7aedf09f7