目前有很多select来设置Linux集群。
对于集群pipe理器:您可以使用Red Hat集群pipe理器,Pacemaker或Veritas Cluster Server。 第一个是最有势头的,第二个是RH订阅默认的,最后一个非常昂贵,而且有很好的声誉;-)
对于存储: – 您可以使用软件raid / md设备复制LUN – 您可以使用DRBD复制来提供更多的灵活性 – 您可以使用Veritas Storage Foundation技术与您的SAN复制技术进行通信。
任何人对这些技术有任何推荐或经验?
我会去GlusterFS。 最新版本3.x支持地理复制(长潜pipetypes的东西)以及局域网复制。 有大量关于如何在群集中复制和传播数据的文档 。
我不喜欢DRDB,因为您可以使用的节点数量有限制。 我认为GlusterFS在体面的硬件上,有一点体面的networking调整可能就是你所追求的。 绝对值得一试。
我正在使用Red Hat Cluster Suite和DRBDtesting“stretch cluster”。 我在刚刚结束的波士顿红帽峰会附近的一家酒店打字。 我和Red Hat CLuster Suite开发者谈过,他们说目前不支持拉伸集群。
这不会阻止我从工作中获得乐趣。 我在一个集群中安装了四个HP刀片。 两个刀片位于距其他数据中心约15英里的一个数据中心内,该数据中心容纳另外两个刀片。 为了让集群连在一起,我需要networking团队来configuration站点之间的路由器来传递组播stream量。 另外,由于红帽硬件编码多播心跳包的TTL为“1”,所以我不得不使用iptables来将该多播地址改为更高的TTL。
完成之后,我可以使用我的刀片获得四个节点的群集。 为了存储,我在每个站点的两个本地节点之间共享一个3Par LUN。 这些是我用于DRBD设备的块设备。 我应该在这里添加一个专门的1G广域网链接,用于我的DRBDstream量。 我能够在站点之间相当容易地运行DRBD,并使用该DRBD设备作为运行GFS2的集群LV中的PV。 我偶尔会在我的DRBD设置上出现裂脑情况,我必须手动恢复,而我正在尝试隔离这个问题。
下一步是最困难的。 如果主服务器出现故障,我希望能够将GFS2挂接故障转移到另一个节点。 我的GFS2服务由浮动IP – > DRBD – > LVM – > GFS2组成。 源代码中用于集群的drbd.sh脚本完全不起作用,所以我一直在使用/etc/init.d中的常规DRBD启动脚本进行testing。 似乎工作“有时”,所以我将需要调整,似乎。
我很惊讶地发现这些在红帽集群套件中都没有得到支持,所以我把这个梦想转化为生产的梦想是虚幻的。 还有什么地方需要这种设置? 几乎只有非常重要的生产的东西。
我在这里与赛门铁克进行了交stream,他们告诉我,他们绝对支持共享存储的主动 – 主动延伸集群。 我会相信,当我真的看到它。
众所周知,DRBD已经很慢了。 您不能将其用于高负载的企业用途。 它使用128 KiB散列函数,将IO请求限制为最大。 128 KiB而不是512 KiB硬盘所能提供的。 此外,还有一个愚蠢的IO请求大小检测。 这个东西只有在连接到其他主机时才起作用。 如果您的连接失效,则重置为本地硬盘上的4 KiB。 8.4.1和8.3.11具有相同的问题。
这里有一些更多的细节: http : //www.gossamer-threads.com/lists/drbd/users/24104
这就是为什么真正的企业使用像Veritas这样的$$$东西。
如果你需要低价格的性能,MD RAID 1要好得多。 它还提供了“主要写入”模式,以避免从慢速设备读取数据。
如果你有一个SAN后端,那么共享存储文件系统(GFS?)比复制存储更有意义。
我们在工作中使用DRBD。 它工作得很好,但我们只用于双节点configuration。 我不会认为它更复杂。
WRT。 软件raid / md,而DRBD在表面上仅仅是networking上的RAID 1,实际上,为了处理临时networking分区而不必重新从头重新同步,DRBD要复杂得多,等等。
另外,考虑到软件RAID-1通常会通过在驱动器上均匀分配读取来平衡驱动器上的负载。 不用说,如果一个驱动器是本地驱动器而另一个驱动器位于潜在的低带宽/高延迟networking连接之后,这不是一个好主意。
IOW,软件RAID不是一个好的复制解决scheme。
城域/延伸集群只能用于asynchronous或半同步复制模式,以便排除md 。
我曾与一家$$$公司的Veritas Volume Manager,Cluster和Global集群合作过 – 我真的很喜欢它。
我曾经使用SAN设备的基于主机的镜像。
我有两个XEN群集运行DRBD与本地磁盘在两个数据中心(彼此不太远)之间进行复制。 在短暂的networking断开之后,我刚刚遇到了一些麻烦。
我真正喜欢Veritas解决scheme的是可以对每个方面进行微调。 因此,对于读取密集型的数据库应用程序,我们调整了卷的数量,使读取来自与客户端共同使用的主要数据中心,从而提高了性能。
所以对于存储复制:如果你能负担得起 – 去Veritas。
现在对于集群软件:我知道Veritas,Sun,AIX / HACMP / HAGEO,HP-Serviceguard和Linux-Heartbeat。
我最喜欢Veritas,特别喜欢它防止裂脑(危险模式)的方式…
但是,如果您使用独立的线路进行心跳检测,那么您可以在任何其他群集软件上实现相同的function,因此可以使用这些线路而不是软件。
我可以在这里引用艾伦·罗伯逊的话:“一个集群不是一个集群,除非你testing了它”。
而且我看到了更多的停机时间,因为一个复杂的集群设置比通过这样的设置节省。 所以保持简单(Heartbat v1而不是v2)。