4.7. 共有ブロックストレージの設定

このセクションでは、Amazon EBS のマルチアタッチボリュームを使用する Red Hat High Availability クラスターの共有ブロックストレージを設定するオプションの手順を説明します。この手順では、1TB 共有ディスクを持つ 3 つのインスタンス (3 ノードクラスター) を想定しています。

手順

  1. 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 が必要になります。

  2. クラスターの各インスタンスについて、AWS コマンド attach-volume を使用して共有ブロックボリュームを割り当てます。<instance_id> および <volume_id> を使用します。

    $ aws ec2 attach-volume --device /dev/xvdd --instance-id instance_id --volume-id volume_id

    たとえば、以下のコマンドは共有ブロックボリューム vol-042a5652867304f09instance 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"
    }

検証手順

  1. クラスター内の各インスタンスについて、インスタンス <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
  2. 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

共有ディスクが各インスタンスに接続されていることを確認したら、クラスターの回復性の高いストレージを設定できます。Red Hat High Availability クラスターに回復性の高いストレージを設定する方法は、クラスターに GFS2 ファイルシステムを設定 を参照してください。GFS2 ファイルシステムに関する一般的な情報は、GFS2 ファイルシステムの設定と管理 を参照してください。