从今天开始,在Amazon Elastic Compute Cloud (EC2)上运行 Linux 的客户可以利用新的支持功能,将预置 IOPS (io1)Amazon Elastic Block Store (EBS)卷挂载到多个实例。每个卷在配置了新的“多挂载”选项后,在单个可用区中最多可以挂载到 16 个实例。此外,每个基于 Nitro 的实例都可以支持挂载多个启用了多挂载选项的卷。借助多挂载功能,提供顺序写入以保持存储一致性的应用程序更容易获得更高的可用性。
通过完全读写权限,应用程序可以将多挂载卷作为非引导数据卷进行挂载。与常规卷一样,可以为配置了“多挂载”选项的卷拍摄快照,但是也可以从该卷挂载到的任何实例中启动快照,并且多挂载卷也支持加密。可以使用Amazon CloudWatch指标监控启用了多挂载功能的卷,要监控每个实例的性能,可以使用 Linux工具。
开始使用多挂载卷
使用AWS 命令行界面 (CLI)或AWS 管理控制台,配置和使用多挂载卷对于新卷而言是一个简单的过程。在本博文的一个简单示例中,我将创建一个已配置“多挂载”选项的卷,并将其挂载到两个 Linux实例。在其中一个实例中,我将写入一个简单的文本文件,在另一个实例中,我将读取相应内容。让我们开始吧!
在AWS 管理控制台中,首先导航到主页,从导航面板中选择 卷 ,然后单击 创建卷 。为 卷类型 选择 预置 IOPS SSD (io1) ,输入所需的大小和 IOPS,然后选中 多挂载 选项。
要改用AWS 命令行界面 (CLI)执行此操作,只需使用
ec2 create-volume
命令和
--multi-attach-enabled
选项,如下所示。
aws ec2 create-volume --volume-type io1 --multi-attach-enabled --size 4 --iops 100 --availability-zone us-east-1a
复制代码
选择卷后,我可以在 描述 选项卡中验证我的卷上是否启用了多挂载功能。卷表中还包含一列 已启用多挂载 ,该列中显示一个简单的“yes/no”值,我能够一目了然地检查多个卷中是否启用了多挂载功能。
创建该卷并可以使用后,接下来我将启动两个运行 Linux 的实例。请记住,多挂载功能需要基于 AWS Nitro 系统的实例类型,并且必须在与我的卷相同的可用区中创建实例。我的实例正在运行Amazon Linux 2,并已放置在 us-east-1a 可用区中,与启用了多挂载功能的新卷的位置一致。
实例运行后,就可以将我的卷挂载到这两个实例了。在控制面板中单击 卷 ,然后选择我创建的多挂载卷。在 操作 菜单中,单击 挂载卷 。在下面的屏幕截图中,您可以看到我已经将卷挂载到一个实例,并且正在挂载到第二个实例。
如果我要使用AWS 命令行界面 (CLI)挂载卷,则可以使用 ec2 attach-volume 命令,就像处理其他任何卷类型一样:
aws ec2 attach-volume --device /dev/sdf --instance-id i-0c44a... --volume-id vol-012721da...
复制代码
对于给定的卷,当我选择该卷时,AWS 管理控制台会向我显示该卷已挂载到的实例或当前正在挂载的实例:
当该卷已挂载到这两个实例后,我们可以通过一个简单的测试来使用它。在EC2 控制面板的 实例 视图中选择我的第一个实例,单击 连接 ,然后使用AWS Systems Manager的 Session Manager 在该实例上打开一个 Shell 会话。按照此处的说明,我在挂载为的新卷上创建了文件系统,将其安装为,并使用 vi 将一些文本写入文件。
sudo mkfs -t xfs /dev/sdf
sudo mkdir /data
sudo mount /dev/sdf /data
sudo vi file.txt
复制代码
在AWS 管理控制台中选择我的第二个实例,重复连接步骤。这次我不需要创建文件系统,但我需要再次将卷安装为(如果选择的话,我可以使用其他安装点)。将目录更改为后,我看到我从第一个实例中写入的文件已经有了,并且文件中包含我预期的文本。
创建和使用多挂载卷很简单! 只需记住,这些卷需要挂载到,并且与它们要挂载到的实例处于同一可用区中。显然,本博文使用了一个简单的用例,但是对于任何实际的应用程序使用情况,您可能还需要考虑实现某种形式的顺序写入,以确保保持一致性。
将“终止时删除”用于“多挂载”卷
如果您希望使用该选项在实例终止时删除已挂载的卷,则建议您在多挂载卷已挂载到的所有实例上统一设置该选项 – 使用“全部删除”或“全部保留”,以允许可预测的终止行为。如果将卷挂载到具有 终止时删除 不同值的实例集,则删除卷取决于是否将要分离的最后一个实例设置为“删除”。统一设置显然可以避免任何疑问!
可用性
有关更多信息,请参阅Amazon Elastic Block Store (EBS)技术文档。适用于Amazon Elastic Block Store (EBS)上的预置 IOPS (io1) 卷的多挂载功能现已面向以下区域的客户免费推出:美国东部(弗吉尼亚北部和俄亥俄)、美国西部(俄勒冈)、欧洲(爱尔兰)和亚太地区(首尔)。
原文链接: