Date: 11月 27, 2018
标签:Fusion-io的
使用Fusion-io最大化Linux群集的复制性能的技巧
当大多数人考虑设置群集时,它通常涉及两个或更多服务器,以及SAN或其他类型的共享存储。SAN的设置和维护通常非常昂贵且复杂。此外,它们在技术上代表了集群架构中潜在的单点故障(SPOF)。如今,越来越多的人开始使用Fusion-io这样的公司,以及他们闪电般快速的ioDrives,来加速关键应用。 这些存储设备位于服务器内(即不是“共享磁盘”)。 因此,它不能用作具有许多传统群集解决方案的群集磁盘。幸运的是,有一些方法可以最大化使用Fusion-io进行Linux群集的复制性能。 允许您在不涉及共享存储时形成故障转移群集的解决方案 – 即“无共享”群集。
传统集群 | “无共享”集群 |
在将数据复制作为群集配置的一部分时,充足的带宽至关重要,这样才能在网络上复制数据,就像写入磁盘一样快。 以下是调优技巧,可让您在涉及高速存储时充分利用“无共享”群集配置:
网络
- 使用10Gbps网卡:Fusion-io(或OCZ,LSI等其他类似产品)的基于闪存的存储设备能够以MB /秒或更高的百万分之一(750)的速度写入数据。 1Gbps网卡只能推动理论最大值~125 MB /秒,因此任何利用ioDrive潜力的人都可以比通过1 Gbps网络连接推送更快地写入数据。 为确保服务器之间有足够的带宽以促进实时数据复制,应始终使用10 Gbps NIC来承载复制流量
- 启用巨型帧:假设您的网卡和交换机支持它,启用巨型帧可以大大提高网络吞吐量,同时减少CPU周期。 要启用巨型帧,请执行以下配置(例如来自RedHat / CentOS / OEL linux服务器)
- ifconfig <interface_name> mtu 9000
- 编辑/ etc / sysconfig / network-scripts / ifcfg- <interface_name>文件并添加“MTU = 9000”,以便在重新启动后更改仍然存在
- 要验证端到端巨型帧操作,请运行以下命令:ping -s 8900 -M do <IP-of-other-server>
- 更改NIC的传输队列长度:
- / sbin / ifconfig <interface_name> txqueuelen 10000
- 将其添加到/etc/rc.local以保留重新启动后的设置
TCP / IP调整
- 更改NIC的netdev_max_backlog:
- 在/etc/sysctl.conf中设置“net.core.netdev_max_backlog = 100000”
- 已显示可提高复制性能的其他TCP / IP调整:
- 注意:这些是示例值,有些可能需要根据您的硬件配置进行调整
- 编辑/etc/sysctl.conf并添加以下参数:
- net.core.rmem_default = 16777216
- net.core.wmem_default = 16777216
- net.core.rmem_max = 16777216
- net.core.wmem_max = 16777216
- net.ipv4.tcp_rmem = 4096 87380 16777216
- net.ipv4.tcp_wmem = 4096 65536 16777216
- net.ipv4.tcp_timestamps = 0
- net.ipv4.tcp_sack = 0
- net.core.optmem_max = 16777216
- net.ipv4.tcp_congestion_control = HTCP
调整
通常,您还需要对群集配置进行调整,这将根据您决定实施的群集和复制技术而有所不同。 在这个例子中,我使用的是SIOS Technologies的SteelEye Protection Suite for Linux(又名SPS,又名LifeKeeper)。 它允许用户利用几乎任何后端存储类型形成故障转移群集:光纤通道SAN,iSCSI,NAS,或者与本文最相关的本地磁盘,需要在群集节点之间实时同步/复制。 SPS for Linux包括集成的块级数据复制功能,这使得在没有共享存储时很容易设置集群。
建议
为了最大化使用Fusion-io的Linux群集的复制性能,让我们试试这个。SteelEye Protection Suite(SPS)for Linux配置建议:
- 分配位于Fusion-io驱动器上的小(~100 MB)磁盘分区以放置位图文件。 在此分区上创建一个文件系统并将其挂载,例如,在/ bitmap:
- #mount | grep /位图
- / dev / fioa1 on / bitmap type ext3(rw)
- 在创建镜像之前,请在/ etc / default / LifeKeeper中调整以下参数
- 插入:LKDR_CHUNK_SIZE = 4096
- 默认值为64
- 编辑:LKDR_SPEED_LIMIT = 1500000
- (默认值为50000)
- LKDR_SPEED_LIMIT指定重新同步将采用的最大带宽 – 应设置为足够高以允许重新同步以尽可能最大的速度运行
- 编辑:LKDR_SPEED_LIMIT_MIN = 200000
- (默认值为20000)
- LKDR_SPEED_LIMIT_MIN指定当同时进行其他I / O时允许重新同步的速度 – 根据经验,这应该设置为驱动器的最大写入吞吐量的一半或更少,以避免挨饿重新同步发生时,正常的I / O活动
- 插入:LKDR_CHUNK_SIZE = 4096
从这里开始,像往常一样创建镜像并配置群集。有兴趣通过Fusion-io最大化Linux群集的复制性能,请参阅SIOS可以提供的其他内容。经LinuxClustering许可转载