1.要解决的问题
提前预测出系统所需的磁盘容量是很难的。所以,通常在系统部署时,设计者会提供一个预计几年内所需的磁盘容量,再乘以一个安全系数来确定最终值。磁盘不仅仅现在不能被完全使用,实际上,也许很多年都将不能被完全利用。然而,却要为这些磁盘付全部的费用。
当你需要提高磁盘读写性能时可以对磁盘进行条带化。然而,在条带化测试时也很难估算出能满足需求的磁盘数量,而且,在执行测试时要预先投资硬件。
2.云模式的说明
AWS云让你可以使用虚拟磁盘。虚拟磁盘能在任何时候提供给你所需要的容量。
当你使用虚拟磁盘时你不再需要做详细的预估。一旦系统运行,你能通过监控容量使用情况来保证磁盘拥有所需的容量。
因为存储成本每年都有下降的趋势,那么仅在必要的时候保证容量对节省成本是很有帮助的。过去,在这种需要临时增加容量的情况下你需要去购买一个大容量的磁盘,但有了虚拟磁盘,你可以在需要的时候添加磁盘容器。并在使用完后删除即可。
3.实施
AWS中的虚拟磁盘EBS可以保证在任何时候你所需要的容量。
(步骤)
- 当使用EBS时,先获得一个能满足需求的最小规模的卷。
- 当你需要更多的磁盘容量时,拍摄一张EBS的快照,并基于此创建一个新的EBS卷。
- 建新EBS卷时,指定一个比原有卷更大规模的卷。
- EC2实例添加将新的EBS。
- 添加后,在文件系统里使用Resize命令(例如,resize2fs)使空间扩大到新的规模。
- 当条带化时,添加多个EBS卷,然后使用mdadm软件或操作系统功能来创建一个软件RAID配置。
4.配置
5.好处
- 你可以在之后改变卷的规模,这样就不用进行预先估算了。
- 按需获取磁盘容量有利于节省成本。
- 条带化能提高磁盘的I/O性能。
6.注意事项
- EBS不像S3那样使用了多少存储容量就相应支付多少的费用,而是必须为EBS的容量大小付费。例如,如果你使用的EBS获得了100GB大小的空间,那么 即使只占用了里面的5GB,你也需要支付100GB的空间费用。
- 单个EBS磁盘容量设置的上限是1TB(在2012年4月)。当单个分区所需的容量超过1TB时,可以添加多个EBS卷,然后使用像mdadm的软件将它们组合成一个卷来使用。
7.其他
EBS是一个可以使用在网络上的磁盘卷,所以可以使用一个较大规模的EC2实例来增加I/O性能。特别的,当进行条带化时你需要知道EC2实例的规模。
8.Q&A
Q1:这个模式使用到了哪些其他模式?
A1:快照模式中的在EBS作为数据磁盘下的拷贝。进行快照是为了新建EBS卷,并为其指定更大容量规格,从而达到扩展磁盘容量的目的。
Q2:为什么较大规模的EC2实例可以提高磁盘的I/O性能?为什么条带化时需要知道EC2实例的规模?