我很喜欢新的amazon web services。 我有几个Ubuntu的10.04实例运行,但今天当我试图login到我的实例,我得到一个错误,说“根目录中的磁盘空间不足”。 几分钟后,我设法login,并删除了所有不需要的文件。 在实例描述中,提到一个大型实例具有850 GB的存储空间,但是对于根,只有8 GB。 我碰到这篇文章,以增加根大小,但命令是从一个Linuxshell运行我猜,我有我的Windows机器上的EC2工具设置。
有人可以告诉我如何运行这些命令中提到的文章在Windowsshell? 一般来说,我对EC2有一些疑问:
在AWS上处理存储时有许多可能性。
首先,有实例存储(您正在谈论的850 GB)。 此存储挂钩到您的EC2实例。 一旦实例消失,不能移动或恢复到另一个实例。 这对存储重要性低的东西是有用的。 (操作系统文件,要处理的文件,…)。 实例消失后,您的数据也消失了。
那么有EBS块。 这些就像您可以连接到任何EC2实例的硬盘,而EC2实例可以持久保存您的数据,无论您的EC2实例是否closures。 当你需要另一个实例的驱动器,只需分离它并重新附加它。 EBS块的大小是预定义的。 当空间用完时,再添加一个。 resize是不可能的(除非你使用你提供的链接中描述的哈希方式)。
最后你可以使用S3-Bucket。 您可以在这些存储桶中存储尽可能多的数据。 它有点像EBS,但没有真正的文件系统实现。 一些网站使用这个主办他们的图片等
所以,对于你的问题:
你应该可以使用ec2-tools来运行它们。 Q1&2我想我已经在上面提到了。 与AWS一样。 不要依附于EC2-instaces。 当他们坏了,摆脱他们,并build立一个新的预制图像,并附上您的EBS块。
你可以在这里find一个非常详细的解释: http : //alestic.com/2009/12/ec2-ebs-boot-resize
大型实例具有850 GB的存储容量,其中一个分为两个420 GB的卷,另加10 GB的根分区。 这两大卷在发行时并未“激活”。 当您启动EBS支持的AMI时会发生这种情况。
850 GB的存储是短暂的 – 一旦实例停止/终止,它不会持续; 您不会为此收取任何费用(I / O和预configuration存储)。 对于m1.large,这两个卷通常显示为/dev/xvdb和/dev/xvdc 。 对于具有EBS根的实例,只有在AMI( ec2-register )或启动命令( ec2-run-instances )中明确包含临时存储(即使用--block-device-mapping )时才会添加临时存储。 如果一个实例没有添加存储,则不能添加(不启动新实例)。
在本文中提到的命令中,所有以ec2- *(即api工具)开头的命令都可以从任何地方运行(例如,您的Windows机器,或另一个实例或所讨论的实例)。 而其他需要运行在实例本身(通过SSH)。
您可以使用AWS控制台执行相同的任务(停止,分离,快照,创buildEBS卷,附加),而不必使用API工具,但是您需要直接在实例本身上执行resize2fs。
值得注意的是,默认情况下,大多数根EBS卷在实例终止后没有被设置为永久存储(而您手动附加的任何EBS卷将默认保留)。 您可以使用以下命令更改此行为: ec2-modify-instance-attribute INSTANCE_ID -b "MOUNT_POINT=VOLUME_ID:false" (“false”指定在终止时不删除)。 您可以确定在使用ec2-describe-instance-attribute INSTANCE_ID -v -b (或使用AWS控制台)终止EBS卷时是否将被删除。
只要您的EBS卷存在,其上的所有数据依然存在。 如果一个实例“坏了”(假设它对您的设置没有问题),并且EBS卷仍然存在,您可以将它附加到另一个实例,作为根卷或作为额外的卷,它应该能够运行没有问题。 但是,build议您对EBS卷有一些快照(它们没有超出故障范围),并且将数据与软件分开(即使用多个EBS卷)。
要将重要数据放在EBS卷上(假定您已经将其放在根卷上),您可以附加第二个EBS卷,并挂载-o将根卷中的位置绑定到附加卷。 尽pipe实例存储根卷可用,但使用EBS根在可移植性和恢复能力方面更可取。