Cluster
集群 将多台电脑集合起来完成一定任务
scale on
scale out
LB Load Balancing 负载均衡
lvs
HA High Availability 高可用
HP High Performance 高性能
Director Dispatcher
四层交换(IP:port)LVS
章文嵩
Linux Virtul Server
ipvsadm/ipvs
iptables/netfilter
七层交换(squid,proxy)
http ,stateless
index.html,object
LVS 类型
LVS-NAT 直接转换类型
LVS-DR 直接路由类型
Director和Cluster要在同一网络中
RIP的地址可以为公有地址
Director只处理请求的数据包
Cluster的网关不可为DIP,应是路由ip
不能重新影射端口,端口必须保持一致
LVS-TUN 隧道类型
Director和Cluster不在同一网络中
RIP不能用私有地址
Director只处理请求的数据包
不能重新影射端口,端口必须保持一致
只有支持隧道协议的服务器才能作为RealServer
LVS Scheduling Method LVS调度算法
fixed scheduling 固定调度算法
Round-robin(RR) 轮循算法
Weighted round-robin 加权轮循算法
destination hashing 目标散列算法
Source hashing` 源目标散列算法
dynamic scheduling 动态调度算法
Least-connection 最少连接算法
active,inactive
overhead=active*256+inactive
最大连接数=活动连接数*256+非活动连接
Werighted Least-connection 加权最少连接算法
最大连接数=活动连接数*256+非活动连接
overhead=最大连接数/权重
Shortest Expected Delay 最短期望延迟
最大连接数=(活动连接数+1)*256
最大连接数/权重
Nerver Queue 永不排队算法
SED的改进
Locality-Based Least-connection 基于本地状态的最少连接
相当于动态的DH算法
Locality-Based Least-connection with Replication scheduling
带复制的基于本地状态的最少连接
LVS-NAT
DIRECOTR,REAL(web) +real(web)
LVS工作起来:
定义服务
-t,tcp
-u,udp
-f,firewall
为此服务定义realserver
ipvsadm
-A 新增服务
-s 调度方法,默认wlc
-E 修改服务
-D 删除服务
-S 保存规则
-m LVS-NAT
-g LVS-DR
-i LVS-TUN
-R 恢复规则
ipvsadm -a -t service -r realserver service
ipvsadm -A -t 192.168.0.173:80 -s rr 定义算法
ipvsadm -Ln 查看服务
ipvsadm -a -t 192.168.0.173:80 -r 192.168.10.6 -m -w 2
ipvsadm -a -t 192.168.0.173:80 -r 192.168.10.7 -m -w 1
ipvsadm -E -t 192.168.0.173:80 -s wrr
ipvsadm -Z -t 192.168.0.173:80 清计数器
ipvsadm -E -t 192.168.0.173:80 -s lblc
ipvsadm -C 清空规则
ipvsadm -S > /root/a.ipvs 保存规则
ipvsadm -R < /root/a.ipvs 恢复规则
LVS-DR
arp-announce
1 试图避免使用另外一个网卡上的MAC地址响应
2 只使用最佳的MAC地址匹配
arp-ignore
1 响应接受的网卡的MAC地址
realserver
vim /etc/sysctl.conf
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
ifconfig lo:0 VIP broadcast VIP netmask 255.255.255.255 up
route add -host VIP dev lo:0
Drectory
ifconfig eth0:0 VIP broadcast VIP netmask 255.255.255.255 up
route add -host VIP dev eth0:0
ipvsadm -A -t 192.168.0.137:80 -s wlc
ipvsadm -a -t 192.168.0.137:80 -r 192.168.0.186 -g -w 5
ipvsadm -a -t 192.168.0.137:80 -r 192.168.0.187 -g -w 7
service ipvsd save
1. 数据包在节点间传输靠的是MAC,通过ARP的广播解析IP到MAC;此种模型中Director仍有VIP、DIP;Real server有VIP、RIP;
2. Director及real server 都连接到一个Switch上;
3. Director及real server 都配置的有VIP;
4. 相同的IP,为防止冲突,在 real server 上采取手段隐藏起VIP地址,使其对请求VIP地址解析的ARP请求不作响应,这样解析到的VIP地址即为Director,数据包线传输到Director;
5. Director 接收到数据包后,根据算法找到某个real server ,并且修改数据包中的目的MAC地址为该real server的Mac,然后通过Switch转发该数据包;此时,该数据包的源ip仍未CIP,目标ip为VIP;
6. real server接收到数据包后(包中的VIP、目的MAC均匹配自己),处理该包,返回的数据直接通过Switch出去并过Router传回Client。
Persistent client connections
以客户端的请求来源为基准,以后所有的服务申请都定向到同一台realserver
ipvsadm -A -t 192.168.0.173:0 -s rr -p
Persistent port connections
Client --> LVS(80) --> RealServer2,PPC
Persistent Netfilter Marked Packet connections
Port affinity 端口殷勤关系
smtp smtps
http https
iptables -t mangle -A PREROUTING -i eth0 -d 192.168.0.83 -p tcp --dport 80 -j MARK --set-mark 2
ipvsadm -A -f 2 -s wlc -p 3600
ipvsadm -a -f 2 -r 192.168.0.6 -m -w 2
ipvsadm -a -f 2 -r 192.168.0.7 -m -w 5
Persistent Connection Template
time client --> reslserver
HA:高可用
Messageing Layer/Infrastructure
heartbeat,keepalived,ultramonkey,corosync/openais
Resource Allocation
CRM 集群资源管理器
CID(XML)
定义每个节点的属性信息
PE
策略引擎
LRM
实现跟第三层工具通信
资源管理器
pacemaker
Rresource
Rresource Agent
hearbeat v1
LSB scripts
OCF
split-brain,partitioned cluster
stonith
HA:active/passive,active/active,N-M
RHCS,100+
Heartbeat
node1,node2
authkeys
/etc/ha.d/
ha.cf --> 最底层,定义传递信息的方式
authkeys 信息认证
haresources CRM,实现集群资源管理
文件共享:
廉价文件共享:
内核2.6.32
drbd,rsync
iSCSI
DAS
NAS服务器
SAN(FC,iSCSI)
Cluster Filesystem
GFS2,OCFS2
moosefs,pvfs
配置:
node1,node2
uname -n
以太网
bcast
ucast
mcast
串行线缆
OpenAIS + corosync + pacemaker + LSB web
High Performance 高性能
GRID computing
网格计算
生产调度分开的
Perform concurrent calculations 执行并行运算
Volume Management
LUN
Logical Unit Number 逻辑单元号
UUID
Universally Unique Identifier
128bit
Direct Attached Storange
直接附加存储
Network Attached Storage NAS
网络附加存储
成员由IP网段决定
SAN Technologies
FC
HBA 主机总线适配器
iSCSI
IDE 依赖CPU,存储性能差
SCSI IDE 并行总线
IDE -> SATA 串行
SCSI -> SAS 串行
SCSI总线:
initiator 客户端,发起端,主机适配器端
target 控制器,连接硬盘
SCSI协议
CRM 集群资源管理器
LRM 本地资源管理
PE 策略引擎
Failover Domains 故障转移域
Storage Area Network SAN
存储区域网络
网络由成员决定
initator target
target,tcp:3260
scsi-target-utils
/etc/init.d/
tgtd
fdisk /dev/sdb
partprob
service tgtd start
chkconfig tgtd on
IQN
iqn
date
reversed domain name 反写的域名
string,主机名
substring
iqn.2011-02.com.a.linux:appdata
tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2011-02.com.a.linux:appdata
tatadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb1
tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.0.0/24 基于IP认证
tgtadm --lld iscsi --op show --mode target
IP,CHAP
initiator
iscsi-initiator-utils
/etc/iscsi/iscsid.conf
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2011-02.com.a.node1:node1
service iscsi start
chkconfig iscsi on
iscsiadm -m discovery -t sendtargets -p 192.168.0.190 发现target
iscsiadm -m node -T iqn.2011-02.com.a.linux:appdata -p 192.168.0.190 查看target信息
iscsiadm -m node -T iqn.2011-02.com.a.linux:appdata -p 192.168.0.190 -l 登入
fdisk -l 多一个挂载分区/dev/sdbX
mkfs -t ext3 /dev/sdbX
iscsiadm --mode node -T iqn.2011-02.com.a.linux:appdata -p 192.168.0.18 --logout 登入出
GFS:
yum -y install ricci 每台node
yum -y install luci 一台node
luci_admin init
service ricci start
service luci start
chkconfig ricci on
chkconfig luci on
网页登陆luci configure add fence
failover domains add a failover
share fence device
resources GFS Resource Configuration
cmon_tool status 查看集群信息
clustat
ccs_tool lsnode
ccs_tool lsfence
ccs_tool -h 查看可用选项
ccs_test
service rgmanager start
lvmconf --enable-cluster
grep 'locking_type' /etc/lvm/lvm.conf
service clvmd start
lsmod | grep gfs
ps aux | grep dlm
iscsiadm -m discovery -t sendtargets -p 192.168.0.190
iscsiadm -m node -T iqn.2011-02.com.a.linux:appdata -p 192.168.0.190 -l 登入
fdisk /dev/sdb
pvcreate -ff /dev/sdb1
fence_manual
lvmconf --enable-cluster
rgmanager 每台
clvmd 启动进程
service iscsi
tgtadm --lld iscsi --op new --mode account --tid 1 --user=terra --password=123456
tgtadm --lld iscsi --op show --mode account
tgtadm --lld iscsi --op bind --mode account --tid 1 --user terra
tgtadm --lld iscsi --op new --mode account --user=terra --password=123456
tgtadm --lld iscsi --op show --mode account
tgtadm --lld iscsi --op bind --mode target --tid 1 --user terra
iscsiadm -m node -T iqn.2011-02.com.a.linux:appdata -p 192.168.0.18 --logout
iscsiadm -m node -T iqn.2011-02.com.a.linux:appdata -p 192.168.0.18 -o delete
rm -fr /var/lib/iscsi/send_targets/192.168.0.18,3260
service iscsi stop
vim /etc/iscsi/iscsid.conf
node.session.auth.authmethod = CHAP
node.session.auth.username = terra
node.session.auth.password = 123456
discovery.sendtargets.auth.username = terra
discovery.sendtargets.auth.password = 123456
iscsiadm -m discovery -t sendtargets -p 192.168.0.18
iscsiadm -m node -T iqn.2011-02.com.a.linux:appdata -p 192.168.0.18