[译3] SheepDog 集群管理后端和双NIC

原文地址

SheepDog 使用一个集群管理后端来管理成员,向成员节点广播消息。

目前,sheepdog能够使用Local Dirver,corosync(默认),ZooKeeper 和Accord。Corosync不建议用于商用产品,因为同步功能容易受到高负载包丢失的影响。为了可靠运行,强烈建议使用zookeeper。


Local Driver

该驱动使用Unix IPC 来管理单个box上的成员,这里,我们开启多个“Sheep”进程来模拟集群。它简单易用,主要用来测试功能;

例如: 我们启动三个节点,可以通过Local Driver一行命令实现。

$ for i in 0 1 2; do sheep -c local -d /path/to/store/$i -z $i -p 700$i;sleep 1;done


Corosync

作为守护进程运行在每个节点上;
Corosync 只能用于15个节点以内


Zookeeper

zookeeper是独立运行的,你需要先设置它,通过 IP:PORT 列表来是设置,大部分场景下,3-5个节点就能驱动上百个sheep守护进程;
如果你想添加更多节点,你需要zookeeper。一些用户(例如淘宝)已经成功实现sheepdog的扩展性可以运行1000个节点。
下面是开启ZOOkeeper支持的具体步骤(3节点)

安装zookeeper

下载

wget http://mirror.bjtu.edu.cn/apache/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz

安装

$ cd zookeeper-x.x.x/src/c
$ ./configure --prefix=/usr
$ make
$ make install

设置

$ cd zookeeper-x.x.x/conf
$ mv zoo_sample.cfg zoo.cfg
#Setting this to 0 entirely removes the limit on concurrent connections.
$ echo "maxClientCnxns=0" >> zoo.cfg
$ mkdir -p /tmp/zookeeper

开启

$ sudo ./bin/zkServer.sh start 

zookeeper驱动SheepDog

$ cd sheepdog/
$ ./configure --enable-zookeeper
$ make
$ sudo make install

启动SheepDOG

$ sudo sheep /store  -c zookeeper:IP1:2181,IP2:2181,IP3:2181 # use default 30s heartbeat or
$ sudo sheep /store  -c zookeeper:IP1:2181,IP2:2181,IP3:2181,timeout=10s # use 10s heartbeat for small sized cluster like 30 nodes.

双网卡

我们可以选择一个专用的双网卡来进行IO请求,我们叫它IO NIC;集群管理软件用一个专有NIC,我们叫它non-IO NIC,来传递心跳消息;
冗余网卡有很多优势,当IO NIC被配置后,如果IO NIC 关闭后,我们可以回退non-io 链接来处理IO请求。但反之不可以,如果non-IO NIC 关闭后,我们的集群就挂了(云里雾里)
即使我们支持具有异构NIC配置的集群,但主要目的是如果所有节点上都提供辅助.,则允许分离IO请求和集群成员心跳消息,从而获得更好的可靠性和可伸缩性。(云里雾里)
用例:

sheep -i host=yyy ... # this add a dedicated io nic

你可能感兴趣的:([译3] SheepDog 集群管理后端和双NIC)