4.12. 配置共享块存储
要创建额外的存储资源,您可以使用 Amazon Elastic Block Storage (EBS) Multi-Attach 卷为红帽高可用性集群配置共享块存储。请注意,这个流程是可选的,以下步骤假设三个带有 1TB 共享磁盘的实例(三节点集群)。
先决条件
步骤
使用 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
附加到实例 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