您的位置:首页 > 运维架构 > 网站架构

rhcs+xen+gnbd+clvm+quorum实现mysql高可用

2012-04-25 13:59 113 查看
使用rhcs+xen+gnbd+clvm+quorum实现mysql高可用

client

|

vip

|--------------------------------------|

node1 node2 node3 <---DomU,客户机机器

|--------------------------------------|

|

共享存储 <---- Dom0,同时充当fence,gnbd+iscsi

gnbd ---> 仲裁磁盘

iscsi ---> clvm+gfs2 ,lamp的目录,包括:网站根目录,MySQL数据目录

仲裁

node1 node2 node3

X 集群继续可用

X X 集群不可用

node1 node2 node3 node4

X X 2:2集群不可用

X X X 1+(3) > 3 至少引入3个仲裁投票,才能保证集群工作

默认的仲裁策略下:有效节点必须多余无效节点。有效节点必须大于等于(N/2)+1,N就是集群中节点的个数。

为了让集群在剩下很少有效节点的情况下继续提供服务,就引入仲裁磁盘(外援的投票)。

仲裁磁盘是一个集群中共享的存储设备,然后被格式化成16个区间,供节点保存和更新各自的状态。节点还会去查看其他节点所在的区间,用来判断对应的节点是否健康。通过仲裁磁盘的判断和心跳判断,综合判断出该节点是否出故障,如果出故障就fence该节点。

一、在Dom0实现共享存储

iscsi :

<target iqn.2011-09.com.upl:hadata>

backing-store /dev/sda8

initiator-address 10.1.1.23

initiator-address 10.1.1.24

initiator-address 10.1.1.25

</target>

gnbd :

# gnbd_serv -n

# gnbd_export -e qdisk -c -d /dev/sda9

# gnbd_export -l -v

二、在Dom0实现fence功能



三、HA节点连接共享存储

1) iscsi

设备名字的持久化: udev , multipath

登录设备后,选择udev进行持久化

2) gnbd

kmod-gnbd-xen

实现仲裁磁盘,需要格式化成仲裁磁盘

# modprobe gnbd

# gnbd_import -i 10.1.1.22 -n

# ls /dev/gnbd/qdisk

格式化成qdisk

# mkqdisk -c /dev/gnbd/qdisk -l qdisk

其余节点:

# partprobe

# mkqdisk -L <--查看是否同步

所有节点启动qdiskd服务

# service qdiskd start

四、配置HA集群 (clvm+gfs2)

1)在其中一个节点配置(其中一台客户机机器)

Use a quorum disk 打勾

votes: 外援的票数 2 《--- 1+2 : 2 = 赞成票:反对票

Minumum Score: 1 <--集群中,至少存活一个节点,就可以让集群继续使用

device:

Program: <---辅助判断是自己问题还是仲裁磁盘出问题

/bin/ping -c 1 10.1.1.22

其他默认

2)添加节点,fence

3) 添加失效域,资源

资源:

vip

共享存储(iscsi+clvm+gfs2)挂载

实现规划好:

VG: lampVG

LV: lampdata

---> /dev/lampVG/lampdata

httpd,mysqld

增加资源的时候:

GFS , File System ID留空(工具会自动填写)

保存,需要修改一下:

把gfs改成gfs2,增加cluster_id, keyfile避免居然多集群之间冲突

<cman cluster_id="1235" keyfile="/etc/cluster/fence_xvm.key">

<clusterfs device="/dev/lampVG/lampdata" force_unmount="0" fsid="65016" fstype="gfs2" mountpoint="/lampdata" name="lampdata" options=""/>

同步配置文件

4) 启动cman

# service cman start

为什么仅仅启动cman而已,而不去启动rgmanager

5) 配置clvm

# lvmconf --enable-cluster

# service clvmd start

# pvcreate /dev/iscsi/hadata/part

# vgcreate lampVG /dev/iscsi/hadata/part

# lvcreate -n lampdata -L 1G lampVG

6) 格式化gfs2

# modprobe gfs2

# mkfs.gfs2 -p lock_dlm -t lampha:gfs2 -j 3 /dev/lampVG/lampdata

7) 其中一个节点挂载,并且进行mysql的初始化,目录权限的设定等,修改mysqld脚本

8) 设定http网站根目录

9) 启动rgmanager

验证仲裁

本文出自 “linuxart” 博客,请务必保留此出处http://linuxart.blog.51cto.com/686203/844070
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: