关注到现在HCI市场很火,也出现诸多分布式存储产品,了解各家HCI内的分布式存储方案后,有一个分布式存储机制问题:
超融合上的分布式存储玩法大概有两种,一种是完全的分布式,比如FusionStorage,数据完全切片打散,多节点读多节点写;另一种类似Nutanix,有IO本地化这种机制,读优先从本节点读,写由多节点写。这样就想到两个问题:
1,FusionStorage这类完全分布式的做法,利用多节点性能,那是不是有很大部分资源消耗去保障分布式数据的强一致性?
2,对于Nutanix分布式存储,在读场景下还是受制于单节点的性能吗?感觉没体现分布式的优势。
无论数据完全打散的方式,还是IO本地化方式,都需要设计存储策略层来保证一致性,不同的分布式存储软件在实现一致性的机制上不一样,对应的资源开销也会不同,与副本分配策略没有太大关系。
市面上卓越的超融合产品,基于2块标准的NVMe SSD做cache,单节点性能做到20w 以上的IOPS 很容易,该性能对于单体虚拟化工作负载完全是够用的,如果单节点上运行了大量IO密集型工作负载,通常这类工作负载同时也会对CPU 和 内存有较高的资源需求,负载均衡总是必须的,可以借助虚拟化放置组的规则分散负载到不同节点上。
数据完全打散的分布式存储,如ceph类,其场景和落地案例主要在存算分离上,技术上也能做到融合部署在计算节点上,但本质上和存算分离的存储使用方式基本一样,都需要接入网络的支撑,IO本地化特性数据直接在Hypervisor内接入并传输,性能更好,且减少了网络建设的成本。所以这类超融合分布式存储缺乏IO本地化特性在情理之中,因为其主要场景是存算分离。
收起