菜单
Amazon Elastic Compute Cloud
Linux 实例用户指南

使 Amazon EBS 卷可用

将某个 Amazon EBS 卷连接到您的实例后,该卷将显示为块储存设备。您可以使用任何文件系统将卷格式化,然后进行安装。在使 EBS 卷可供使用后,您可以像访问其他所有卷一样访问该卷。任何写入此文件系统的数据均写入 EBS 卷,并且对使用该设备的应用程序是透明的。

您可以拍摄 EBS 卷的快照以进行备份或在您创建其他卷时作为基线。有关更多信息,请参阅 Amazon EBS 快照

使卷可在 Linux 上使用

按照以下过程使卷可用。您可以从 Amazon EC2 用户指南(适用于 Windows 实例) 中的使卷可在 Windows 上使用,获得有关 Windows 实例上的卷的指示。

使 EBS 卷可在 Linux 上使用

  1. 使用 SSH 连接到您的实例。有关更多信息,请参阅 步骤 2:连接到您的实例

  2. 根据内核的块储存设备驱动程序,附加的设备所采用的名称可能与您指定的名称不同。例如,如果您指定设备名称 /dev/sdh,内核可能将该设备重命名为 /dev/xvdh/dev/hdh;在大多数情况下,尾部字母保持不变。在某些版本的 Red Hat Enterprise Linux (及其变体,例如,CentOS) 中,尾部字母也可能发生变化 (例如 /dev/sda 可能变为 /dev/xvde)。在这些情况下,设备名称各尾部字母都会递增相同次数。例如,/dev/sdb 将成为 /dev/xvdf/dev/sdc 将成为 /dev/xvdg。Amazon Linux AMI 会使用您在启动时指定的名称创建指向重命名设备路径的符号链接,但是其他 AMI 的工作方式可能不同。

    使用 lsblk 命令可查看可用磁盘设备及其安装点 (如果适用),以帮助您确定要使用的正确设备名称。

    Copy
    [ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvdf 202:80 0 100G 0 disk xvda1 202:1 0 8G 0 disk /

    lsblk 的输出移除了完整设备路径中的 /dev/ 前缀。在此示例中,/dev/xvda1 安装为根设备 (请注意 MOUNTPOINT 被列为 /,即 Linux 文件系统层次结构的根),且连接了 /dev/xvdf,但它还未安装。

    对于 C5 实例,EBS 卷显示为 NVMe 块储存设备。您指定的设备名称将使用 NVMe 设备名称 (/dev/nvme[0-7]n1) 进行重命名。有关更多信息,请参阅 Amazon EBS 和 NVMe

  3. 确定是否要在卷上创建文件系统。新卷为原始的块储存设备,您必须先在这种设备上创建文件系统,然后才能够安装并使用它们。从快照还原的卷可能已经含有文件系统;如果您在现有的文件系统上创建新的文件系统,则该操作将覆盖您的数据。使用 sudo file -s device 命令可列出特殊信息,例如文件系统类型。

    Copy
    [ec2-user ~]$ sudo file -s /dev/xvdf /dev/xvdf: data

    如果前面的命令的输出仅显示该设备的 data,则说明设备上没有文件系统,您必须创建一个文件系统。您可继续步骤 4。如果您在包含文件系统的设备上运行此命令,则您的输出将有所不同。

    Copy
    [ec2-user ~]$ sudo file -s /dev/xvda1 /dev/xvda1: Linux rev 1.0 ext4 filesystem data, UUID=1701d228-e1bd-4094-a14c-8c64d6819362 (needs journal recovery) (extents) (large files) (huge files)

    在以上示例中,该设备包含 Linux rev 1.0 ext4 filesystem data,因此,此卷无需创建文件系统 (如果您的输出中显示文件系统数据,则可以跳过步骤 4)。

    注意

    如果 EBS 卷加密,则 file 命令会返回随机数据。

  4. (有条件) 使用以下命令在卷上创建 ext4 文件系统。用设备名称 (例如,/dev/xvdf) 替换 device_name。根据应用程序的要求或操作系统的限制,您可以选择其他文件系统类型,如 ext3 或 XFS。

    警告

    此步骤假定您在安装空的卷。如果要安装已包含数据的卷 (如,从快照还原的卷),请勿在安装卷之前使用 mkfs (而应跳到下一步)。否则,您会格式化卷并删除现有数据。

    Copy
    [ec2-user ~]$ sudo mkfs -t ext4 device_name
  5. 使用以下命令创建卷的安装点目录。安装点是卷在文件系统树中的位置,以及您在安装卷之后读写文件的位置。替换 mount_point 的位置,如 /data

    Copy
    [ec2-user ~]$ sudo mkdir mount_point
  6. 使用以下命令在您刚才创建的位置安装卷。

    Copy
    [ec2-user ~]$ sudo mount device_name mount_point
  7. (可选) 要在每一次系统重启时安装此 EBS 卷,可在 /etc/fstab 文件中为该设备添加一个条目。

    1. 创建 /etc/fstab 文件的备份,当您进行编辑时意外损坏或删除了此文件的情况下,可以使用该备份。

      Copy
      [ec2-user ~]$ sudo cp /etc/fstab /etc/fstab.orig
    2. 使用任意文本编辑器 (如 nanovim) 打开 /etc/fstab 文件。

      注意

      您必须以根身份或使用 sudo 命令打开该文件。

    3. 使用以下格式在该文件末尾为您的卷添加一个新行:

      device_name  mount_point  file_system_type  fs_mntops  fs_freq  fs_passno  

      此行的最后三个字段分别是文件系统安装选项、文件系统转储频率和启动时的文件系统检查顺序。如果您不知道这些值应该是什么值,请使用下面的示例中的值 (defaults,nofail 0 2)。有关 /etc/fstab 条目的更多信息,请参阅 fstab 手册页面 (通过在命令行上输入 man fstab)。

      您可以使用系统的当前设备名称 (/dev/sda1/dev/xvda1等)在 /etc/fstab,中,我们建议使用设备的 128 位通用唯一标识符 (UUID) 代替。系统声明的块设备名称可能会在各种情况下更改,但是格式化时 UUID 会分配给卷分区,并在整个分区的使用寿命期间保留。通过使用 UUID,您可以减少 /etc/fstab 中块设备映射的机会,使系统在硬件重新配置后无法引导。

      要查找设备的 UUID,请首先显示可用设备:

      Copy
      [ec2-user ~]$ df

      下面是示例输出:

      Filesystem     1K-blocks    Used Available Use% Mounted on
      /dev/xvda1       8123812 1876888   6146676  24% /
      devtmpfs          500712      56    500656   1% /dev
      tmpfs             509724       0    509724   0% /dev/shm

      接下来,继续本示例,检查两个命令中任意一个的输出,以找到 /dev/xvda1 的 UUID:

      • sudo file -s /dev/xvda1

      • ls -al /dev/disk/by-uuid/

      假设您找到具有 UUID de9a1ccd-a2dd-44f1-8be8-0123456abcdef/dev/xvda1,您可以将以下条目添加到 /etc/fstab 以在装载点 /data 装载 ext4 文件系统:

      Copy
      UUID=de9a1ccd-a2dd-44f1-8be8-0123456abcdef /data ext4 defaults,nofail 0 2

      注意

      如果您要在未连接此卷的情况下启动实例 (例如,以便此卷可以在不同实例之间向后和向前移动),则应添加 nofail 安装选项,该选项允许实例即使在卷安装过程中出现错误时也可启动。Debian 衍生物 (包括早于 16.04 的 Ubuntu 版本) 还必须添加 nobootwait 挂载选项。

    4. 在您将新条目添加到 /etc/fstab 后,必须检查您的条目是否有效。运行 sudo mount -a 命令,以便安装 /etc/fstab 中的所有文件系统。

      Copy
      [ec2-user ~]$ sudo mount -a

      如果上述命令未产生错误,说明您的 /etc/fstab 文件正常,您的文件系统会在下次启动时自动安装。如果该命令产生了任何错误,请检查这些错误并尝试更正 /etc/fstab

      警告

      /etc/fstab 文件中的错误可能显示系统无法启动。请勿关闭 /etc/fstab 文件中有错误的系统。

    5. (可选) 如果您无法确定如何更正 /etc/fstab 错误,则始终可以使用以下命令还原您的备份 /etc/fstab 文件。

      Copy
      [ec2-user ~]$ sudo mv /etc/fstab.orig /etc/fstab
  8. 检查新卷安装的文件权限,确保您的用户和应用程序可以向该卷写入数据。有关文件权限的更多信息,请参阅 Linux 文档项目 文件安全性