添加卷到您的实例

您既然已启动并连接到您的 Linux 实例,现在即可在您的实例上运行以下命令以查看其装载的卷。

[ec2-user ~]$ df -h

对于微型实例,您的输出应如下所示。

Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 8.0G 1.1G 6.9G 14% /
tmpfs 298M 0 298M 0% /dev/shm

/dev/xvda1 卷是根设备卷。它包含用于启动实例的映像。请注意,您的实例上有一些用于安装其他软件的空间(上面仅使用了文件系统的 14%)。例如,您可以使用 yum 命令下载并安装软件包。

如果您需要额外的数据存储,一种简单的解决方法是添加 Amazon EBS 卷到您的实例。Amazon EBS 卷用作实例的网络附加存储。让我们添加卷到您已启动的 Linux 实例。首先,我们将使用 EC2 控制台来创建卷并将其附加到实例,然后我们将装载该卷以使其可用。

创建并附加 Amazon EBS 卷的步骤

打开 Amazon EC2 控制台 https://console.aws.amazon.com/ec2/。

在导航栏中,选择您在其中创建实例的区域,然后单击导航窗格中的 Instances (实例)。

控制台将显示该区域中当前实例的列表。选择 Linux 实例。在底部窗格的 Description (描述) 选项卡中,记下实例的 Availability Zone (可用区)。

在导航窗格中的 Elastic Block Store (弹性块存储) 下,单击 Volumes (卷)。

单击“Create Volume”。

配置以下内容,然后单击 Create (创建):

    选择 General Purpose (SSD) (通用 (SSD)) 卷类型以创建通用型 (SSD) EBS 卷。

    Note

    2012 年之前创建的某些 AWS 账户可能能够访问 us-east-1、us-west-1 或 ap-northeast-1 中的可用区;这些可用区不支持 SSD 卷,例如 Provisioned IOPS 和 通用型 (SSD)。如果您无法在其中一个区域中创建 SSD 卷(或在其块储存设备映射中启动具有 SSD 卷的实例),请尝试该区域中的其他可用区。您可以通过在某可用区创建 1 GiB 通用型 (SSD) 卷来验证该可用区是否支持 通用型 (SSD) 和 Provisioned IOPS 卷。

    输入要创建的卷的大小。Amazon EBS 免费套餐权益的存储空间上限为 30 GiB;因此,为避免因此教程付费,请选择不会导致超出该限制的卷大小。例如,如果所创建的实例的启动卷使用 8 GiB 的 Amazon EBS 卷,则应确保创建的卷不超过 22 GiB。

    选择与在创建实例时使用的相同的“Availability Zone”。否则,您无法将卷附加到实例。

在“Elastic Block Store”下方的导航窗格中,单击“Volumes”。注意,此时会显示您新创建的卷,并且卷的状态为 available,因此其已准备好附加到实例。

右键单击新创建的卷,然后选择“Attach Volume”。

在 Attach Volume (连接卷) 对话框中,配置以下内容,然后单击 Attach (连接):

    开始输入您实例的名称或 ID,然后从建议选项的列表中选择它。

    为该实例指定一个未经使用的设备名称。在本教程中,我们将使用 /dev/sdf。如果您选择其他设备名称,请务必记下该名称,因为在下一过程中您将需要此信息。

您将注意到,在卷的“Details”窗格中,卷的状态为 in-use,而且卷附加到具有设备名称 /dev/sdf 的实例。但是,如果您返回到实例并再次运行 df -h 命令,还不会看到该卷。这是因为,我们需要安装该卷,df -h 才会看到它。但是,lsblk 命令可以查看附加到实例的所有块储存设备。

Note

某些 Linux 分发版本在默认情况下不提供 lsblk 命令。如果 lsblk 命令不起作用,可以改用 sudo fdisk -l | grep Disk。

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

在上面的示例中,lsblk 报告有两个块储存设备附加到该实例;xvda1 将作为根文件系统安装(注意 MOUNTPOINT 值为 /),xvdf 根本不安装。

使卷可用

标识要装载的设备。在上一个过程中,新卷连接到 /dev/sdf。根据实例操作系统上的块储存设备驱动程序,设备可能出现在与控制台中指定的位置 (/dev/sdf) 不同的位置(例如,上例中的 /dev/xvdf);某些情况下,甚至尾部字母也可能改变(例如,/dev/xvdj)。Amazon Linux 实例始终创建从控制台中指定的设备路径到新设备路径的链接,但其他分发版本(如 Ubuntu 或 Red Hat)不可预测。

使用 lsblk 命令可列出可用的设备。

Note

某些 Linux 分发版本在默认情况下不提供 lsblk 命令。如果 lsblk 命令不起作用,可以改用 sudo fdisk -l | grep Disk。

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

在上面的示例中,xvdf 设备未安装。有时,从快照创建卷时,卷上的数据包含在分区中(如 /dev/xvdf1)而不是包含在卷的根目录中。在这种情况下,应安装 /dev/xvdf1 分区(lsblk 命令输出会省略文件路径的 /dev/ 部分)。此示例中有一个没有分区的空卷,因此,您将安装 /dev/xvdf。

因为您在上一过程中创建了空卷而不是从快照还原卷,您需要先使用 mkfs 将该卷格式化,然后才能将其安装。使用以下命令可在卷上创建 ext4 文件系统。如果您在附加该卷时没有使用 /dev/xvdf,请替换所用的设备名称。

Caution

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

Note

SUSE Linux Enterprise Server 11 不完全支持 ext4 文件系统。如果您选择将 SLES 11 AMI 用于实例,请在以下命令中改用 ext3。

[ec2-user ~]$ sudo mkfs -t ext4 /dev/xvdf

要将设备作为 /mnt/my-data 安装,请运行以下命令。

[ec2-user ~]$ sudo mkdir /mnt/my-data
[ec2-user ~]$ sudo mount /dev/xvdf /mnt/my-data

请务必指定您在 Step 1 中标识的设备名称;否则,当您运行此装载命令时,可能收到以下错误:“mount: you must specify the filesystem type”。如果看到此错误,请重复 Step 1 并使用正确的设备路径(请注意将 /dev/ 添加到您通过 lsblk 命令获取的设备名称)。

请注意,当您运行 df -h 命令时,您将看到如下输出。

[ec2-user ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            7.9G  1.1G  6.8G  14% /
tmpfs                 298M     0  298M   0% /dev/shm
/dev/xvdf              22G     0   22G   0% /mnt/my-data

要查看新卷的内容,请运行以下命令。

[ec2-user ~]$ ls /mnt/my-data

此时,您已完成了本教程的示例架构。如果愿意,您可以继续自定义和使用您的实例。

Important

请记住,只要您保持在免费套餐权益范围以内,就不会产生费用。否则,只要您的实例开始启动,即使实例闲置,实例保持运行的每个小时或不足一小时都会计费。只要实例状态变为 shutting down 或 terminated,就会停止对您的常规实例进行计费。

完成对实例的操作时,不要忘记清除已使用的任何资源并终止实例,如下一步骤中所示 (清除您的实例和卷)。

Logo

更多推荐