我正在使用一个大型 EC2 实例,但刚刚意识到我没有承诺的空间。它说我应该有 850 GB,但我只得到了 8 GB。
据我所知,应该有两个额外的 420 GB 驱动器可供我格式化/安装到设置中,但我似乎找不到它。如果我在 dev 目录中查找,它就在那里。我尝试输入“df -h”,但它也没有出现。
我需要做些什么才能访问驱动器?
如果有帮助的话,我正在使用标准的亚马逊 Linux 映像。
答案1
要访问 Amazon 随 EC2 实例提供的临时(实例存储)存储,您需要在启动实例时定义它。使用 EC2 命令行工具,您需要做的就是包含 -b 或 --block-device-mapping 选项标志。
例如,此命令将在 us-east-1a 中启动单个 m1.large 实例,其中 ephemeral0 和 ephemeral1 分别映射到 sdb1 和 sdb2,并具有以下选项:
- 酰胺
- (-n) 启动的实例数
- (-t)实例类型
- (-z)可用区域
- (-b)块设备映射
- (-g)安全组
- (-k)键名称
-
ec2-run-instances ami-id -n 1 -t m1.large -z us-east-1a -b "/dev/sdb1=ephemeral0" -b "/dev/sdb2=ephemeral1" -g security_group -k key_name
然后您可以格式化并安装设备。(对每个设备重复一次每个命令)
sudo mkfs /dev/sdb[1..n]
sudo mkdir -p /media/ephemeral[0...n]
然后,您可以将以下两行添加到您的 /etc/fstab(随意调整您的挂载选项、文件系统等)
/dev/sdb1 /media/ephemeral0 auto defaults,comment=cloudconfig 0 2
/dev/sdb2 /media/ephemeral1 auto defaults,comment=cloudconfig 0 2
并安装设备
sudo mount /media/ephemeral0
sudo mount /media/ephemeral1
或者,只挂载设备而不将这些设备添加到 fstab 文件中
sudo mount -t ext3 /dev/sdb1 /media/ephemeral0
sudo mount -t ext3 /dev/sdb2 /media/ephemeral1
核实
df -h
示例输出:
[ec2-user@ip-10-251-159-223 media]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.9G 883M 7.0G 12% /
tmpfs 3.7G 48K 3.7G 1% /dev/shm
/dev/xvdb1 414G 199M 393G 1% /media/ephemeral0
/dev/xvdb2 414G 199M 393G 1% /media/ephemeral1
[ec2-user@ip-10-251-159-223 media]$
顺便说一句,一旦你自定义了实例,就可以基于此实例创建自己的 AMI,并且无论何时从生成的 AMI 启动实例,临时存储都已配置完毕。
另外,请查看 AWS 网站上提供的文档。
祝你好运!
答案2
额外的空间应安装在 下/mnt
。但请记住,如果您终止实例,其上的所有内容都将消失,因此如果您想保留数据,则需要执行额外的步骤。例如,您可能希望创建额外的 EBS 卷,每次启动实例时安装它并将所有持久数据保存在其中。我个人仅将 /mnt 中的空间用于临时文件。
答案3
如果您在根卷上特别看到此情况,需要注意的一点是,某些 AMI 似乎没有正确设置其 cloud-init 脚本来扩展您的根 FS 以填充可用空间。例如,AMI 最初使用 8 GiB 根卷创建,您在创建新实例时将其更改为更大的大小,但运行时df -h
它仍然只显示 8 GiB。
我曾经在一些 CentOS AMI 上看到过这种情况,但是我有一段时间没有使用它了,所以不确定这是否仍然是一个常见问题。
在这些情况下,手动在线调整大小通常可以解决问题。
首先,检查你的根文件系统 (/dev/xvda) 是否使用整个磁盘 (/dev/xvda1):
mount -l|grep 'on / '
假设它使用了整个磁盘(xvda),您可以尝试在线调整大小:resize2fs /dev/xvda
...然后重试df -h
并与最近的同事/家人击掌。
在其他情况下...我认为我从未见过这种情况,当安装过程实际上已对磁盘进行分区时。尝试一下不会有什么坏处resize2fs /dev/xvda1
,但我怀疑您需要先扩展分区的大小才能执行任何操作。最好的选择是类似parted
。