如何让 AMI 在初始化时挂载相同的卷?

如何让 AMI 在初始化时挂载相同的卷?

这是针对数据库 (Postgre) VM 的,其数据存储在单独的 EBS 卷上。我是否可以自动安装相同的 EBS 卷(假设没有其他实例正在使用该 EBS)。

这样做的原因是数据库在启动时会有可用的数据文件。

答案1

要挂载它,您需要在 fstab 文件 (/etc/fstab) 中添加一个条目

类似这样,尽管可能会有所不同。你可以使用 man fstab 来获取更多信息

/dev/xvdf1      /var/postgres       ext4    defaults    0 0

如果你执行 df -T 你将获得所需的所有信息

/dev/xvdf1    ext4    51605436  26338144  22645888  54% /var/postgres

因此您知道该设备是 xvdf1(可能是 sdf1 或类似的东西),第二个条目是您希望它安装的位置,第三个条目是文件系统类型(您可以在 df -T 命令中看到它是第二个条目),如果您不理解 fstab,最好将其保留为默认值,并且 0 0

希望这可以帮助。

答案2

当您将卷附加到 EC2 实例时,它将保持附加到该实例,直到明确将其分离。即使实例停止,卷仍将保持附加状态。它将具有固定的设备名称,例如 /dev/sdf1。

使用 Linux 实例时,您可以向 /etc/fstab 添加一行,以便在启动时将卷挂载到您的文件系统中。

答案3

你可能想知道如何自动音量亚马逊 EC2API 级别视角(与如何(这是从次要的操作系统级别视角来看的)?

答案很简单,创建图像API(用于AWS 管理控制台或者ec2-创建映像命令行工具会自动处理这个问题:

笔记
如果您使用实例存储卷或 EBS 卷(除了根设备卷之外)自定义了实例,则新 AMI 将包含这些卷的块储存设备映射信息。当您从此新 AMI 启动实例时,实例将自动使用这些附加卷启动。

需要注意的是,AMI 创建过程排除了从操作系统层面来看被视为临时的内容 - 我无法找到这方面的官方参考,但 Nishant 对相关问题的回答我可以创建包含多个 ebs 卷(即 sda 和 sdb)的 AMI 吗?据我记得,正确列出了这些内容:

   /sys
   /proc
   /dev
   /media
   /mnt

答案4

可能更好的方法是在启动期间从快照创建卷,而不是附加特定卷。这样更灵活 - 您可以在另一个可用区域启动您的实例,并且不会与现有实例发生冲突。此外,还有新的 Snapshot Copy 功能 -http://aws.amazon.com/about-aws/whats-new/2012/12/17/announcing-ebs-snapshot-copy/- 您甚至可以在另一个 AWS 区域复制快照并启动实例。最后,通过执行快照,您将备份云中必须拥有的数据……

相关内容