分布式存储部署架构前情提要
某分布式存储系统部署架构
延展集群
延展集群即将分布式存储系统跨同城数据中心部署,两数据中心通过裸光纤或者专线连接(保证带宽和时延即可),再单独部署仲裁节点连接到两数据中心,每个数据中心有一个以上的副本;仲裁节点默认带监控角色、管理角色和块存储网关角色,无需OSD和cluster网络。
软件支持
■■■■■4.1以上所有版本均可通过购买license的方式支持延展集群;推荐使用最新版本。
方案特点
1.RPO=0,RTO≈0
2.低成本实现双活,管理与维护成本低。
3.应用支持双活,则业务双活,即应用侧双活需要应用支持,如Oracle RAC。
方案要求
1.数据中心间建议小于100公里。
2.站点间网络延时或者往返时间小于RTT≤5msec,即单向小于2.5ms,站点与仲裁间不超过200ms,大集群不超过100ms。
3.站点间至少10Gbps,建议20Gbps以上,站点与仲裁间推荐带宽大于2Gbps。
4.站点间MTU设置要保持一致,可设置为MTU=9000(交换机和存储节点网卡均需配置)。
方案优势
1.两个数据中心平分MON节点,第三站点部署MON仲裁。(MON最小为1+1+1,实际部署时管理服务节点一般也会分开如1+1+1)
2.数据中心级故障域,强制分配副本数量。(支持4/5/6副本,推荐四副本即2+2,不支持EC)
3.适用块、文件、对象,无缝切换,业务无感知。
4.仲裁节点支持虚拟机、物理机、公有云主机。
实现原理
当出现数据中心故障(如地域性灾害)时,仍将有超过50%的MON组件可用,ceph的paxos算法才能正常运行。从而保障分布式存储集群的持续可用。
仲裁节点
延展集群模式下需要一个独立的仲裁节点,仲裁节点可以是一个虚拟机,物理机,或者一个公有云主机,部署在独立的第三站点上,安装好后的仲裁节点,默认设置监控角色、管理角色和块存储网关角色。
※:为什么需要块存储网关角色:因为管理服务xmsd需要使用rbd命令,rbd又被打包在块存储网关角色中,所以在当前版本中块存储网关角色是必须要选择安装的。
仲裁节点建议最低要求:4C-32G-400GSSD*2
业务逻辑
前提:本存储系统的读写特性为所有副本均可读,但只有主副本可写;其他系统如果可以定义2个主副本等功能,那下面业务逻辑就会发生变化。
说明用例:两数据中心,采用2+2四副本部署,设置两个存储池,现有三个业务系统APP1/2/3,如下图:
此时创建两个存储池,存储池1主副本设置在数据中心A,存储池2主副本设置在数据中心B,存储池1对接数据中心A部署的业务如APP1,存储池1对接数据中心B部署的业务如APP2,从而保证了APP本地读写。 效果 APP1和APP2均实现了双活容灾,以APP1举例: 若发生云主机高可用迁移,APP1迁移到数据机房A内其他物理机上,仍可进行本机房副本的读写;APP1迁移到数据机房B内其他物理机上,可进行本机房B的读,跨机房的写; 若存储发生损坏,若本机房发生一副本损坏,可使用另一副本本地读写,若本机房发生二副本损坏,需要进行跨站点读写。 若数据机房发生损坏, 云主机迁移至数据机房B,读写B机房的副本,本地读写。
业务单机房部署容灾双活
一个业务系统APP3,在两个机房使用负载均衡集群部署,使用pool1对接存储系统。 效果 APP3实现了双活容灾,且实现了就近访问: 通过A机房访问,读写A机房主副本,本地读写。云主机迁移/副本损坏/数据中心损坏同上述逻辑。 通过B机房访问,读B机房副本,写A机房主副本。云主机迁移/副本损坏/数据中心损坏同上述逻辑。
业务集群部署容灾双活
实际的双活容灾设计仍需结合实际进行,网络延时尤为重要,推荐使用业务单机房部署,尽量保证更少的跨机房读写。
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://tenkms.cn/archives/267
共有 0 条评论