创建 Lightsail 块存储磁盘并将其连接到 Linux 实例 - Amazon Lightsail

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建 Lightsail 块存储磁盘并将其连接到 Linux 实例

您可以为您的 Amazon Lightsail 实例创建和附加额外的块存储磁盘。创建其他磁盘后,您需要连接到基于 Linux/UNIX 的 Lightsail 实例,然后格式化并装载该磁盘。

本主题向您展示如何使用 Lightsail 创建新磁盘并连接该磁盘。它还描述了如何使用连接到基于 Linux/UNIX 的实例SSH,以便您可以格式化和装载连接的磁盘。

如果您拥有基于 Windows Server 的实例,请改为参阅以下主题:创建数据块存储磁盘并将其附加到 Windows Server 实例

步骤 1:创建新磁盘并将其连接到您的实例

  1. 在 Lightsail 主页上,选择存储。

  2. 选择创建磁盘

  3. 选择您的 Lightsail 实例所在的 AWS 区域 和可用区。

  4. 选择一种大小。

  5. 输入磁盘的名称。

    资源名称:

    • 在你的 Lightsail 账户 AWS 区域 中,每个账户中必须是唯一的。

    • 必须包含 2 到 255 个字符。

    • 必须以字母数字字符或数字作为开头和结尾。

    • 可以包括字母数字字符、数字、句点、连字符和下划线。

  6. 选择以下选项之一以将标签添加到磁盘:

    • Add key-only tags(添加仅包含键的标签)或 Edit key-only tags(编辑仅包含键的标签)(如果已添加标签)。在标签键文本框中输入新标签,然后按 Enter。在您输入标签以添加它们后,选择 Save(保存),或者选择 Cancel(取消)以取消添加。

      Lightsail 控制台中的仅限密钥的标签。
    • 创建一个键值标签,然后在 Key(键)文本框中输入一个键,并在 Value(值)文本框中输入一个值。输入标签后,选择 Save(保存),或者选择 Cancel(取消)以取消添加。

      一次只能添加一个键值标签,然后进行保存。要添加多个键值标签,请重复前面的步骤。

      Lightsail 控制台中的键值标签。
    注意

    有关“仅键”标签和键值标签的更多信息,请参阅标签

  7. 选择 Create disk(创建磁盘)。

    在几秒钟后,将创建您的磁盘,并显示新的磁盘管理页面。

  8. 从列表中选择您的实例,然后选择 Attach(连接)以将新磁盘连接到您的实例。

步骤 2:连接到您的实例以格式化并装载磁盘

  1. 创建并连接磁盘后,返回 Lightsail 中的实例管理页面。

    默认情况下,将显示 Connect(连接)选项卡。

    实例管理页面上的 Connect(连接)选项卡
  2. 选择 Connect 使用SSH连接到您的实例。

  3. 在终端窗口中输入以下命令:

    lsblk

    的输出lsblk省略了磁盘路径中的/dev/前缀。

    注意

    2023 年 6 月 29 日,我们更新了 Lightsail 实例的基础硬件。在以下示例中,上一代实例的设备名称显示为/dev/xvda。在此日期之后创建的实例的设备名称显示为/dev/nvme0n1

    Current generation instances

    在以下示例输出中,根卷(nvme0n1)有两个分区(nvme0n1p1nvme0n1p128),而额外的卷(nvme1n1)没有分区。

    [ec2-user ~]$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:0 0 30G 0 disk /data nvme0n1 259:1 0 16G 0 disk └─nvme0n1p1 259:2 0 8G 0 part / └─nvme0n1p128 259:3 0 1M 0 part
    Previous generation instances

    在以下示例输出中,根卷(xvda)有一个分区(xvda1),而额外的卷(xvdf)没有分区。

    [ec2-user ~]$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 16G 0 disk └─xvda1 202:1 0 8G 0 part / xvdf 202:80 0 24G 0 disk
  4. 确定是否在磁盘上创建文件系统。新磁盘为原始块存储设备,您必须在这些设备上创建文件系统,然后才能装载并使用这些设备。在通过快照还原的磁盘上可能已具有文件系统。如果在现有的文件系统上创建新的文件系统,该操作将覆盖您的数据。

    使用以下方法来确定您的磁盘是否有文件系统。如果您的磁盘没有文件系统,请继续执行步骤 2.5。如果您的磁盘确实有文件系统,请跳至步骤 2.6

    Current generation instances
    sudo file -s /dev/nvme1n1

    将会在全新的磁盘上看到以下输出。

    /dev/nvme1n1: data

    如果看到类似下面的输出,这意味着您的磁盘已具有文件系统。

    /dev/nvme1n1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
    Previous generation instances
    sudo file -s /dev/xvdf

    将会在全新的磁盘上看到以下输出。

    /dev/xvdf: data

    如果看到类似下面的输出,这意味着您的磁盘已具有文件系统。

    /dev/xvda1: Linux rev 1.0 ext4 filesystem data, UUID=1701d228-e1bd-4094-a14c-12345EXAMPLE (needs journal recovery) (extents) (large files) (huge files)
  5. 使用以下命令在磁盘上创建新的文件系统。用设备名称(例如/dev/nvme1n1)代替 device_name。 根据应用程序的要求或操作系统的限制,您可以选择不同的文件系统类型,例如ext3ext4

    重要

    该步骤假定您装载的是空磁盘。如果在要装载的磁盘上已具有数据(例如,通过快照还原的磁盘),请在装载该磁盘之前不要使用 mkfs。相反,请跳到步骤 2.6 并创建一个挂载点。否则,将会格式化磁盘并删除现有的数据。

    Current generation instances
    sudo mkfs -t xfs device_name

    将会看到类似下面的输出。

    meta-data=/dev/nvme1n1 isize=512 agcount=16, agsize=1048576 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=1 inobtcount=1 data = bsize=4096 blocks=16777216, imaxpct=25 = sunit=1 swidth=1 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=16384, version=2 = sectsz=512 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
    Previous generation instances
    sudo mkfs -t ext4 device_name

    您应该会看到如下输出,如下所示。

    mke2fs 1.42.9 (4-Feb-2014) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 4194304 inodes, 16777216 blocks 838860 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=4294967296 512 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
  6. 可以使用以下命令创建磁盘的装载点目录。装载点是磁盘在文件系统树中的位置,以及在装载磁盘后读写文件的位置。将位置替换为 mount_point,用于未使用的空间,例如/data

    sudo mkdir mount_point
  7. 您可以通过输入以下命令来验证磁盘上现在是否有文件系统。

    Current generation instances
    sudo file -s /dev/nvme1n1

    将会看到类似下面的输出,而不是 /dev/nvme1n1: data

    /dev/nvme1n1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
    Previous generation instances
    sudo file -s /dev/xvdf

    将会看到类似下面的输出,而不是 /dev/xvdf: data

    /dev/xvdf: Linux rev 1.0 ext4 filesystem data, UUID=0ee83fdf-e370-442e-ae38-12345EXAMPLE (extents) (large files) (huge files)
  8. 最后,通过输入以下命令来装载磁盘。

    sudo mount device_name mount_point

    检查新磁盘装载的文件权限,以确保您的用户和应用程序可以在该磁盘中写入数据。有关文件权限的更多信息,请参阅《亚马逊EC2用户指南》中的 “使亚马逊EBS卷可供使用”。

步骤 3:每次重启您的实例时装载磁盘

每次重启 Lightsail 实例时,你可能都想挂载这张磁盘。如果不希望这样做,则该步骤是可选的。

  1. 要在每次系统重启时装载该磁盘,请在 /etc/fstab 文件中为该设备添加一个条目。

    创建 /etc/fstab 文件的备份,以便在编辑时误损坏或删除该文件时使用。

    sudo cp /etc/fstab /etc/fstab.orig
  2. 使用任何文本编辑器(如 vim)打开 /etc/fstab 文件。

    sudo在打开文件之前必须输入才能保存更改。

  3. 在该文件末尾,使用以下格式为磁盘添加一个新行。

    device_name mount_point file_system_type fs_mntops fs_freq fs_passno

    例如,新行可能如下所示。

    Current generation instances
    /dev/nvme1n1 /data xfs defaults,nofail 0 2
    Previous generation instances
    /dev/xvdf /data ext4 defaults,nofail 0 2
  4. 保存文件并退出文本编辑器。