日本的NTT公司搞了个SheepDog分布式文件系统,唤做牧羊犬,Matrixer倒觉得挂羊头卖狗肉文件系统更好听啊~
SDS(软件定义硬件)和Sheepdog
现在软件定义硬件(Software Defined Storage,SDS)被吵得很火热,比如代表公司Ceph分布式文件系统的提供商InkTank被RedHat 1.75亿美金收购。到底什么是软件定义硬件?
其实软件定义硬件的目标就是改变传统SAN这种存储和服务器分离的架构,让存储回到服务器,成为DAS,通过服务器分布式软件整合存储。为什么呢?是因为SAN这种分离式存储有以下缺点:
- 可配置性差。存储资源在服务闲置的时候是浪费的,同时扩展存储容量也很麻烦。
- 容量估算复杂。买大了浪费钱,买少了不够用。
目前有两种SDS:
- 融合架构。计算和存储资源放到同一个硬件单元里面,硬件单元可以增加或减少,以Nutanix最为有名。其他代表公司有Nutanix, Simplivity OmniCube, Cohodata Difference,VMware virtual SAN, EMC ScaleIO, Maxta MxSP等。
- Scale-out (向外扩展)SAN。存储和OS分离,能够增减SAN存储节点,如下图向外扩展。这样的产品或公司有Nimble storage, HP 3Par, HP LeftHand, IBM XIV, Dell EqualLogic, PureStorage, EMC XtreamIO等。
SDS两大属性
- Scale-Out:可以往集群里面增加节点来增加容量和性能。
- 容易管理:不管集群规模多大,增加新节点的难度是一样的。
Sheepdog
Sheepdog诞生于2009年,提供QEMU虚拟机块设备的分布式文件系统。提供实时镜像、克隆、自动精简配置(thin provisioning)等功能。同时:
- 没有特殊节点,比如元数据服务器。
- 增加新节点的难度不因集群规模而改变。
如下是Sheepdog在虚拟机创建磁盘和启动时的配置。Sheepdog最终把虚拟机的磁盘整合成了集群。
Sheepdog把虚拟机磁盘分解成固定大小的对象,把对象进行复制,并分布存储到集群里面不同的节点上。
对象存储到哪个节点取决于它的ID,选择节点的HASH算法是固定的,不需要元数据服务器管理,所以不需要其他软件就可以把Sheepdog应用到融合系统或Scale-out SAN中。
性能
可用于融合系统的KVM测试,其中sheepdog-EC是有数据压缩(4:2)的版本,Ceph和GlusterFS是当前常见的分布式文件系统。看得出随机读性能优势很明显,512KB以上的随机写性能也不错,但是4KB随机写还是GlusterFS更强悍。
可用于Scale-out SAN的iSCSI tgt测试,小块数据写依然有优势。
想要每天看一条SSD文章吗?扫一扫,微信关注我们!或者微信搜索公众号ssdfans关注。