详细介绍下VPLEX存储双活方案的技术特点,包括存储层组网、分布式一致性缓存、分布式缓存模式、读I/O加速能力等特点
收起EMC Vplex 存储双活方案是基于 Vplex 网关产品实现,能够将 EMC 和其他厂商存储异构整合,虚拟化为统一的存储资源池,实现异构存储双活。 Vplex 双活方案有 Vplex Metro 和 Vplex Geo 两种方案,方案由两个站点的两套 Vplex 集群系统组成,每个站点的 Vplex 集群都有自己专属的本地存储阵列,通过创建分布式镜像卷为跨集群的镜像卷,提供 Vplex Access Anywhere 功能,两个站点的 Vplex 集群各有一个卷,两个卷的 ID 一样。
( 2 )存储层组网:下图为 Vplex Metro 双活方案主机跨集群连接组网架构。主机与 Vplex 集群间访问、 Vplex 集群与后端存储数据传输、 Vplex 集群间通信网络全部隔离,为保证最高级别的高可用性,每个 Vplex Director 前端 I/O 模块和一对 SAN 光纤交换机之间必须保证 2 个以上的物理连接,每个主机和每个 Vplex 引擎的 A Director 和 B Director 都需要保持一个以上的路径连接,因此主机和一个 Vplex 引擎间具有 8 条逻辑路径。对于每个站点 2 个、 4 个引擎的 Vplex 集群来说,主机连接需要覆盖所有引擎;后端存储阵列通过 SAN 交换机或者直接连接 Vplex 引擎的后端 IO 模块,不需要配置到其他 Vplex 集群的跨站点连接路径;根据需要选用 Witness 作仲裁, Witness 需部署于两个 Vplex 集群不同的故障域中 ( 第三方站点 ) 。
分布式一致性缓存技术: EMC Vplex 是一个集群系统,提供分布式缓存一致性保证,能够将两个或多个 Vplex 的缓存进行统一管理,从而使主机访问到一个整体的缓存系统。当主机向 Vplex 的一个缓存区域写 I/O 时, Vplex 缓存将锁定这个缓存区域,同一时刻其他主机是无法向这个缓存区域写入 I/O 的。但是,当主机读取 I/O 时, Vplex 缓存允许多个主机访问一个缓存区域,尤其是主机访问其他 Vplex 集群中其他 Vplex 节点所管理的数据时,统一缓存管理会将这个 I/O 的具体缓存位置告知主机,主机直接跨 Vplex 集群访问。分布式一致性缓存技术在实现上面,并没有强求所有的 Cache 都保持统一,而是基于卷缓存目录的形式来跟踪细小的内存块,并通过锁的粒度来保证数据一致性。每个引擎的 cache 分为本地 Cache(Cache Local) 和全局 Cache(Cache Global) ,每引擎的本地 Cache 只有 26GB ,其余为全局 Cache
分布式缓存模式: Vplex Local 和 Vplex Metro 采用了写直通缓存模式,当 Vplex 集群的虚拟卷接收到了主机的写请求时,写 I/O 直接透写到该卷映射的后端存储 LUN ( Vplex Metro 包含两套后端存储 LUN )中,后端阵列确认写 I/O 完成后, Vplex 将返回确认信号至主机,完成本次写 I/O 周期。写直通缓存模式需要等待后端存储阵列落盘完成,对写 I/O 时延要求较高。这种写直通缓存模式并适合 Vplex Geo 方案,该方案最大支持 50ms 的跨站点往返延迟,采用该缓存模式将对主机产生非常大的性能影响,对于大多数应用而言显然是无法接受的。因此, Vplex Geo 采用了回写缓存模式,在该模式下, Vplex 收到了主机的写请求后,直接写入引擎控制器的缓存,并将写 I/O 镜像至引擎另一个控制器和另一套 Vplex 集群的引擎控制器的内存中,然后向主机确认本次写 I/O 周期。最后再将数据异步转储到引擎后端的存储阵列中。当出现电源故障时, Vplex 引擎自带的备用电源能够保证缓存中的所有未持久化的数据暂存到本地 SSD 存储上。回写缓存模式无需等待后端存储阵列落盘,即可回响应主机,大幅提升了 Vplex 双活方案的距离和时延要求。
读 I/O 加速能力:具有读 Cache ,写 I/O 的机制能对读 I/O 实现加速。为了提升读 I/O 性能,写 I/O 的时候先判断是否在 Local 、 Global Cache 中有对应的旧数据,如没有直接写入本地 Local Cache ;如有旧数据,先废除旧数据再写入 Local ;再通过写直通缓存模式将写 I/O 刷入两套后端存储阵列;最后反馈主机写 I/O 周期完成,同时 Global Cache 中的索引做相应修改,并在所有引擎上共享该信息,实现分布式缓存一致性。