软件取胜之道
存储行业发展到今天,硬件越来越标准化,所以已经很难靠硬件出彩了。要么能够制造存储芯片,例如三星这种模式,从底层开始都自己做,靠巨大的出货量坐收硬件的利润,但这种模式投资巨大,一般人玩不来。要么就靠软件走差异化了,而且软件还有一个硬件没有的优势:非标准化,比如IBM的软件很多是基于自己的Unix系统开发,别人用了之后切换到其他厂家的软件难度很大,毕竟丢数据的风险不能随便冒。
看了前面的XtremIO硬件架构之后,不少人可能觉得并没有什么复杂的,基本上是个系统集成,组装机嘛,中国的山寨厂家也能搞一套出来。但是,全闪存阵列的核心在软件,软件做好了,才能让用户体验到闪存阵列的性能。试想,如果iPhone装的是Android系统,你还会花五六千大洋排队去买吗?估计连两三千都舍不得了吧!
XIO软件几大杀器
- 去重:提升性能,同时因为写放大降低,延长了闪存的寿命,提高可靠性。
- Thin Provisioning:分区的容量可以随着使用而自动增长(直到用满阵列),这样关键时候不会影响到性能。
- 镜像:先进的镜像架构保证了容量和性能不会受损。
- XDP数据保护:用RAID6保护数据。
- VAAI集成。后面解释这是个什么东东。
XIO软件核心设计思想
-
一切为了随机性能
- 任何节点上访问任意数据块,都不能比其他情况增加多余的成本,就是必须是公平访问所有资源。这是为神马?这样的效果就是即使节点增加,性能可以线性增长,扩展性也好。
-
尽可能减少写放大
- 要知道,对SSD来讲写放大不仅导致寿命缩短,同时因为闪存的擦写次数升高,导致质量下降,数据可靠性也会下降。XIO的设计目标就是让后台实际写入的数据尽量少,起到一种数据衰减的作用。
-
不做全局垃圾回收
- XIO使用的是SSD阵列,而SSD内部是有高性能企业级控制器芯片的,当前的SSD主控都非常强大,垃圾回收效率很高,所以XIO并没有再重复做一遍垃圾回收。这样做的效果是降低了写放大,毕竟后台搬移的数据量少了,同时,节省出时间和系统资源来给其他软件功能,数据服务,VAAI等。
-
按照内容存放数据
- 数据存放的地址用数据内容生成,而跟逻辑地址无关。这样数据可以存放在任何位置,提升随机性能,同时还可以针对SSD做各种优化。
- 数据可以平均的放置在整个系统中。
-
True Active/Active数据访问
- LUN没有所有者一说,所有节点都可以为任何卷服务,这样就不会因为某一个而性能受损。
- 扩展性好:性能,容量等都可以线性扩展。
引用
http://vjswami.com/2013/11/13/xtremio-hardwaresoftware-overview-architecture-deepdive/