第一部分:
Mirror 定义了安全的新标准
MIRROR解决方案迈向了绝对安全的决定性一步,它可以支持所有的应用,并且在成本方面比任何一种高可用软件都明显降低。COTS硬件的使用和免费的Linux操作系统的使用使支出降低了90%。
终极高端解决方案
数据的价值越高,对其要求的安全性就越高。为了满足这些需求,针对极其敏感的数据,MIRRO-R又进一步开发了MIRROR解决方案。
有了MIRROR,您可以应对任何糟糕的情况。第一次的,三路镜像被定义为高可用解决方案的黄金标准,您可以拥有一个第三份,异步镜像方式以及超过无限距离的集群。
第二部分
什么是 MIRROR ?
MIRROR是将块设备作为building block构成的高可用集群。是通过指定网络的块设备的镜像来完成的,在系统中显示为raid-1的格式。
上图中,两个橙色的图形代表构成高可用集群的两个服务器。每个图形都包含了Linux内核的通用组件:文件系统,缓存,磁盘,分区,TCP/IP协议和网卡。黑色的箭头表明了在这些组件中的数据流。
橙色的箭头说明的是在高可用集群中Mirror从主服务器到备服务器的镜像的数据流。
Mirror能做什么?
Mirror运行于顶部的块设备,比如,硬盘分区或者LVM逻辑卷。镜像每块数据块,并将数据写入到对端节点上。
镜像重要数据
完全镜像
同步镜像(配置文件中的C协议)是构建高可用集群的正确选择,如果活动节点(即primary)完全宕机在传输过程中也不会丢失一丁点的数据。
异步方式
另外一种选择是异步镜像。这意味着一旦数据写入到本机的磁盘上,主节点就认为写入要求完成。
异步镜像适用于异地远距离的镜像,比如,网络来回相应的时间高于写入延迟时间,这样对应用的要求就不会那么严格。(注意:对端节点的数据量由于带宽延迟和TCP发送缓存会落后于主节点)
只有主节点的数据可以访问
基于块设备数据镜像的结果在于只有主节点可以接收和访问数据。这并不是Mirror的一个缺点;这个要归因于大多数的文件系统(ext3,XFS,JFS,ext4.....).这些文件系统设计当初就只能由一台电脑访问一块磁盘,所以他们并不能作为一个共享磁盘由两台电脑来同时访问。
尽管有这种限制,仍然有一些其他的方法在第二个节点上访问数据:在逻辑分区上使用Mirror或者使用LVM格式在对端等待节点上做快照,通过快照来访问数据。
Mirror的 活动--活动(active-active)模式必须基于共享的文件系统(GFS,OCFS2)。这些文件系统对网络复制中出现的错误非常敏感。目前,我们还不建议在实际环境中使用。
MIRROR 在机器失效后会怎样?
其中一个节点失效
当其中一个节点失效后,Mirror会自动重新同步暂时不可用节点上的数据为最新数据,在后台自动运行,不会干扰服务的正常运行。当然如果两个节点都失效的话,Mirror会自动侦测那个节点宕机的时间比较长,然后会自动以正确的方向进行同步。
镜像网络失效
Mirror在短暂网络失效后,仍能恢复服务,这也是Mirror自动恢复机制的一部分。Mirror会自动重建网络连接并进行必要的重新镜像。
存储子系统失效
Mirror可以在主节点上掩盖磁盘错误,即服务可以在主节点上继续运行而不需要将服务切换到另外一个节点。如果无需关闭机器就可以更换硬盘(即热插拔硬盘),更换后的磁盘可以在DRB+中复位。MIRROR会重新镜像数据到新更换的磁盘上。
所有网络连接都失效
在“脑分裂”的情况下,Mirror可以支持各种自动和手动恢复。“脑分裂”是指在集群节点之间的所有网络连接发生短暂失效,由于集群管理软件或者人为的错误干预,导致两个节点在网络连接断开的过程中都转变成主节点。这是一个潜在的危险因素,这意味更新的数据可能存在于任何一台机器上,但却没有镜像到对端节点。因此,很有可能在这种情况下已经建立了两个不同的数据集,并且不能再合并。
功能特点
完全镜像,内存镜像以及异步镜像三个模式
掩盖本地的IO错误
Shared secret to authenticate the peer upon connect
可根据宽带大小调节同步速率
在节点、网络或者磁盘失效后能自动恢复
节点断电后只重新同步设备上修改过的内容
独立于磁盘设备的大小,主节点失效后更快的重新同步
节点完全断电之后,自动检测最新数据
可以跟Heartbeat脚本完全兼容
在GFS/OCFS2下支持双主机工作
可根据Mirror事件随意配置脚本
数据在线校对
Optional data digests to verify the data transfer over the network
可以和Xen脚本完全兼容
可用于LVM格式的磁盘。以物理磁盘方式使用LVM
支持节点变成目标端之前的LVM自动快照技术
依赖于串行的再同步技术,防止磁盘设备默认的并行
和Heartbaet兼容使用时,为防止切换造成数据丢失,在更新对端节点时,Mirror会断开数据复制连接
针对于特殊的机器,网络硬件和存储的子系统都可以调整Mirror配置文件的参数来满足不同的需求
可选服务
这些都可以通过LINBIT的商业版实现。
Mirror代理:通过缓冲数据提高远距离异步镜像的性能。数据的缓冲只受限于运行代理的机器的物理内存,可选择性的压缩数据。LINBIT的Mirror产品可以同时镜像两个节点以上的数据。Mirror可以在单个Mirror块设备中镜像大于4TB的数据。 |