4.11. 공유 블록 스토리지 구성

Amazon EBS(Elastic Block Storage) 다중 연결 볼륨을 사용하여 Red Hat High Availability 클러스터의 공유 블록 스토리지를 구성하려면 다음 절차를 사용하십시오. 이 절차는 선택 사항이며 아래 단계에서는 1TB 공유 디스크가 있는 세 개의 인스턴스(세 개의 노드 클러스터)를 가정합니다.

사전 요구 사항

절차

  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> 및 & lt; volume_id>를 사용합니다.

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

    예를 들어 다음 명령은 공유 블록 볼륨 vol-042a5652867304f09i-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. 클러스터의 각 인스턴스에 대해 ssh 명령을 < ip_address> 인스턴스와 함께 사용하여 블록 장치를 사용할 수 있는지 확인합니다.

    # 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