华为面试中经常提到的一个问题,从以下几点分析:
1. 机头
1)传统存储支持双控~16控
2)Fusionstorage 采用分布式软件机头,可以线性扩展至4096个。准确的说是4096个VBS,而不是必须是4096个节点,因为有些场景一个节点可以有多个VBS。
引申:为什么传统存储最大 16 控?
控制器和控制器间需要形成集群关系,同步信息(如管理数据),关系的维护需要消耗cpu和内存实现,控制器越多消耗的资源越多,再往上加的话,性价比不高。
为什么我的分布式软件机头最大4096个?
主VBS存在性能上瓶颈,因为VBS之间需要同步信息。
VBS集群为什么会有主的VBS?
原因在于解决多 VBS 对同一卷元数据的一致性操作上,FS中如果多个VBS同时操作元数据卷,会引起数据数被写坏等问题,为了防止数据被写坏的问题,所以只有主 VBS 能够操作元数据,备的VBS不允许对数据进行操作。
2. 元数据
1)传统存储中LUN的元数据存放在归属控制器上(内存中),访问该LUN 时,需要先访问元数据,当LUN较多时,归属控制器需要维护的元数据也较多,并发性性访问时,会存在性能瓶颈。
2)FusionStorage元数据分2部分,视图存放在ZK中,卷的元数据被打散存放在相应资源池的所有存储中。元数据通过 VBS 中的 DHT 算法去计算得到。所以没有性能瓶颈。
引申:DHT为什么要hash?
为了实现负载均衡,使得数据可以分布在各个节点
3. IO瓶颈
1)传统存储会有IO瓶颈,lun会有元数据,存放于某个控制器上,形成归属控制器。服务器访问该 lun,一定要经过归属控制器,当 IO 比较大的时候,就会形成IO瓶颈。
2)因为VBS是无状态机头,状态信息由管理层面保存并且同步记录(MDC),VBS只要维持管理卷的元数据就行。(处理请求时不会依赖上一次的请求,每次通过DHT计算得到的,所以是无状态的)。数据打散存放,不存在IO性能瓶颈。
4. 缓存
1)传统存储提供GB级别的缓存,V3存储采用SmartCache特性,读缓存可以达到TB级别,传统存储cache由机头提供。(cache有内存和ssd盘,只有读cache。SSD不给写,因为SSD有擦写次数,如果写操作过多,会影响寿命。)
2)fusionstorage 采用分布式智能缓存技术,由多个节点同时提供,可以提供TB级别的缓存。
5. 管理
1)传统存储缺乏资源共享,不同厂商管理软件不同,不易管理。也可以用第三方软件进行统一管理。但体验度有待探究。
2)fusionstorage是数据中心级别的资源共享,支持FSM统一管理.
6. 性价比
1)传统存储成本随性能提升成本大幅提升,性价比不高2)fusionstorage部署在通用的X86上,计算和存储线性扩展,并且既能提高存储空间,又能提高存储整体IO性能。实现设备利旧,保护投资,节约成本。
7. 可靠性
1)传统存储采用主备模式、RAID技术来保障数据的可靠性。
2) FusionStorage
1.数据可靠性:采用多副本和 EC(Erasure Coding)允许硬盘、服务器、机柜级故障,并且有故障数据自动重建机制。
2.组件可靠性:MDC/VBS/OSD/ZK 都是主备模式
3.采用保电介质做读写 Cache, SSD 或NVDIMM 内存条。
4.支持远程复制、双活。(产品文档上说的支持,但是好像没人用,不主动提。)