使用Amazon EC2上的所有空间 – 中等层次

我目前正在运行亚马逊EC2 – 中等层级托pipe客户端网站的保留实例。 最近似乎空间开始在/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 / run
无853M 0 853M 0%/ var / lock
 / dev / sda2 335G 195M 318G 1%/ mnt

我已经看到了这个问题: 如何在/ dev / sda2中安装空间 – 它提供了一个解决scheme,但是如何调整活动分区的大小,比如sda1,所以我不必更改当前的设置? 还是有更好的方法来利用sda2?

不要在/ mnt中使用空格! 这是短暂的存储,不会在重新启动时持续存在 – 如果你把东西放在那里,IT就会丢失。 有些Linux发行版为你提供了临时存储,方便使用,用于临时或交换。

你有几个选项。

增加根驱动器大小

您无法在运行中调整/ dev / sda1的大小。 但是,您可以在启动时调整它的大小。 这将需要停机,但你可以做的是

  1. 将现有实例快照到AMI中。 这应该给你ami-yyyyyy(我希望你正在做这个或者类似的东西已经可以做备份了!)

    ec2-stop-instances i-xxxxxx

    ec2-create-image --name my-image-name-v1.0 --description "My lovely Web Server" i-xxxxxxx

  2. 以较大的根驱动器大小运行该映像的新实例

    ec2-run-instances -k ssh-key -z us-east-1b -t c1.medium -b "/dev/sda1=:50" ami-yyyyyy

  3. 现在你正在运行实例i-zzzzz。 根据您使用的Linux,您可能需要调整文件系统的大小以获得额外的空间。 在Ubuntu上,在框中:

    sudo resize2fs /dev/sdf

  4. 现在在您的弹性IP或ELB或DNS中交换i-zzzzzz为i-xxxxxx,或者您将它广告给世界。

添加第二个驱动器

这可能是更好的 – 稍微昂贵一点,但最好的做法是不要把一堆东西放在你的根驱动器上,就好像它填满了你要崩溃的日志或文件,并有一个悲伤的恢复时间。

  1. 创build一个所需大小的EBS卷,比方说20 GB。 这给你一个卷,vol-yyyyyy。

    ec2-create-volume -z us-east-1b -s 20

  2. 将卷附加到您的实例

    ec2-attach-volume vol-yyyyyy -i i-xxxxxx -d /dev/sdf

  3. 在实例上创build一个文件系统并挂载它

    sudo mkfs -t ext3 /dev/sdf

    sudo mkdir -p /web

    sudo mount /dev/sdf /web

  4. 将您的Web根移到那里。

  5. 将新驱动器永久添加到/ etc / mnttab

    /dev/sdf /opt/apps ext3 defaults,rw 0 0

  6. 像第1步一样将您的新形象拍摄到AMI–总是一个好习惯。

这也有一个好处,就是可以单独备份EBS,只需要快照卷,而且如果你需要杀死一个服务器并启动另一个服务器,你可以从一个服务器上分离/ web EBS卷,并将其连接到另一个,使数据迁移变得容易。

我会将/mnt/根据需要。 这不是完美的,但是比现在更好,并且是微乎其微的侵入性。