我目前正在运行 Amazon EC2 - 中级预留实例,用于托管客户网站。最近似乎空间开始不足/dev/sda1
- 所以我想我最好做好准备。
DF-H 文件系统大小已使用可用使用率%安装于 /dev/sda1 8.0G 5.6G 2.5G 70% / 无 848M 116K 848M 1% /dev 无 853M 0 853M 0%/dev/shm 无 853M 56K 853M 1% /var/运行 无 853M 0 853M 0%/var/锁 /dev/sda2 335G 195M 318G 1% /mnt
我见过这个问题:如何在 /dev/sda2 中挂载空间- 这提供了一种解决方案,但如何调整像 sda1 这样的活动分区的大小,这样我就不必更改当前设置了?或者有更好的方法来利用 sda2?
答案1
不要使用 /mnt 中的空间!这是临时存储,重启后不会保留 - 如果您将内容放入其中,它将丢失。一些 Linux 发行版会为您安装临时存储以方便您,将其用于临时或交换。
您有几个选择。
增加根驱动器大小
您无法动态调整 /dev/sda1 的大小。不过,您可以在启动时调整它的大小。这需要停机时间,但您可以做的是
将现有实例快照到 AMI。这应该会为您提供 ami-yyyyyy(我希望您已经这样做了或类似的事情,以便随着时间的推移进行备份!)
ec2-stop-instances i-xxxxxx
ec2-create-image --name my-image-name-v1.0 --description "My lovely Web Server" i-xxxxxxx
运行具有更大根驱动器大小的该映像的新实例
ec2-run-instances -k ssh-key -z us-east-1b -t c1.medium -b "/dev/sda1=:50" ami-yyyyyy
现在您正在运行实例 i-zzzzz。根据您使用的 Linux,您可能需要调整文件系统的大小以获取额外的空间。在 Ubuntu 上,在盒子上:
sudo resize2fs /dev/sdf
现在在您的弹性 IP 或 ELB 或 DNS 中将 i-zzzzzz 替换为 i-xxxxxx,或者无论您向全世界宣传它的方式。
添加第二个驱动器
这可能更好 - 稍微贵一点,但最好的做法是不要把一堆东西放在你的根驱动器上,因为它充满了日志或文件,你将会崩溃并且会经历一段悲伤的恢复时间。
创建所需大小的 EBS 卷,例如 20 GB。这将为您提供卷 vol-yyyyyy。
ec2-create-volume -z us-east-1b -s 20
将卷附加到您的实例
ec2-attach-volume vol-yyyyyy -i i-xxxxxx -d /dev/sdf
在实例上,创建文件系统并挂载它
sudo mkfs -t ext3 /dev/sdf
sudo mkdir -p /web
sudo mount /dev/sdf /web
将您的网络根目录移至那里。
将新驱动器永久添加到 /etc/mnttab
/dev/sdf /opt/apps ext3 defaults,rw 0 0
按照步骤 1 的方式将新图像快照到 AMI - 这始终是一个好的做法。
这还有一个好处,就是只需对卷进行快照,就可以单独备份该 EBS,而且如果您需要关闭一台服务器并启动另一台服务器,则可以从一台服务器分离 /web EBS 卷并将其附加到另一台服务器,从而轻松进行数据迁移。
答案2
我会根据需要将内容从中绑定/mnt
到中/
。这并不完美,但比现在更好,并且干扰最小。