4.12. 共有ブロックストレージの設定
追加のストレージリソースを作成するには、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
$ aws ec2 create-volume --availability-zone <availability_zone> --no-encrypted --size 1024 --volume-type io1 --iops 51200 --multi-attach-enabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、以下のコマンドは、
us-east-1aアベイラビリティーゾーンにボリュームを作成します。aws ec2 create-volume --availability-zone us-east-1a --no-encrypted --size 1024 --volume-type io1 --iops 51200 --multi-attach-enabled
$ 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" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記次の手順で
VolumeIdが必要になります。クラスターの各インスタンスについて、AWS コマンド attach-volume を使用して共有ブロックボリュームを割り当てます。
<instance_id>および<volume_id>を使用します。aws ec2 attach-volume --device /dev/xvdd --instance-id <instance_id> --volume-id <volume_id>
$ aws ec2 attach-volume --device /dev/xvdd --instance-id <instance_id> --volume-id <volume_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、以下のコマンドは共有ブロックボリューム
vol-042a5652867304f09をinstance i-0eb803361c2c887f2に接続します。aws ec2 attach-volume --device /dev/xvdd --instance-id i-0eb803361c2c887f2 --volume-id vol-042a5652867304f09
$ 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" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
クラスター内の各インスタンスについて、インスタンスの
<ip_address>を指定してSSHコマンドを使用して、ブロックデバイスが利用可能になっていることを確認します。ssh <ip_address> "hostname ; lsblk -d | grep ' 1T '"
# ssh <ip_address> "hostname ; lsblk -d | grep ' 1T '"Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、以下のコマンドは、インスタンス IP が
198.51.100.3のホスト名およびブロックデバイスを含む詳細をリスト表示します。ssh 198.51.100.3 "hostname ; lsblk -d | grep ' 1T '"
# ssh 198.51.100.3 "hostname ; lsblk -d | grep ' 1T '" nodea nvme2n1 259:1 0 1T 0 diskCopy to Clipboard Copied! Toggle word wrap Toggle overflow SSHコマンドを使用して、クラスター内の各インスタンスが同じ共有ディスクを使用していることを確認します。ssh <ip_address> "hostname ; lsblk -d | grep ' 1T ' | awk '{print \$1}' | xargs -i udevadm info --query=all --name=/dev/{} | grep '^E: ID_SERIAL='"# ssh <ip_address> "hostname ; lsblk -d | grep ' 1T ' | awk '{print \$1}' | xargs -i udevadm info --query=all --name=/dev/{} | grep '^E: ID_SERIAL='"Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、以下のコマンドは、インスタンスの 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='"# 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_vol0fa5342e7aedf09f7Copy to Clipboard Copied! Toggle word wrap Toggle overflow