集群管理高可用(HA)
一台物理机192.168.0.1两台节点机192.168.0.103 192.168.0.100
需要保证:Networkanager关闭, 火墙关闭, selinux可以开启, 时间同步
物理机配置ntp服务器:vim /etc/ntp.conf
添加:
server 127.127.1.0
fudge 127.127.1.0 stratum 8
重启服务/etc/init.d/ntpd restart
ntpq -p查看同步状态,出现以下情况,说明同步成功。
remote refid st t when poll reach delay offset jitter
==============================================================================
*LOCAL(0) .LOCL. 8 l 37 64 37 0.000 0.000 0.000
客户端可以同步ntpdate 192.168.0.1
物理机解析vim /etc/hosts
192.168.0.103 vm1.example.com
192.168.0.100 vm2.example.com
192.168.0.1 sxy.example.com
两个节点机做解析
192.168.0.103 vm1.example.com
192.168.0.100 vm2.example.com
在集群节点管理机上安装luci服务,它可以提供一个web网页来管理集群节点
物理机yum install -y luci图形化的配置集群的服务
/etc/init.d/luci start
chkconfig luci on
提醒访问网页https://sxy.example.com:8084
两节点机:
首先配置yum源 vim /etc/yum.repos.d/yum.repo
[server1]
name=localhost
baseurl=ftp://192.168.0.1/pub/rhel6.3
gpgcheck=0
[server2]
name=localhost
baseurl=ftp://192.168.0.1/pub/rhel6.3/HighAvailability
gpgcheck=0
[server3]
name=localhost
baseurl=ftp://192.168.0.1/pub/rhel6.3/LoadBalancer
gpgcheck=0
[server4]
name=localhost
baseurl=ftp://192.168.0.1/pub/rhel6.3/ScalableFileSystem
gpgcheck=0
[server5]
name=localhost
baseurl=ftp://192.168.0.1/pub/rhel6.3/ResilientStorage
gpgcheck=0
两台节点机:
yum install -y ricci 图形化的配置集群的服务
chkconfig ricci on
重置ricci密码为root passwd ricci
访问网页https://sxy.example.com:8084
首先root登录,可以给本地普通用户授权管理节点,之后用普通用户登录。
用户登录可以create创建集群,add添加节点。
添加成功后,出现如下图
点进一个节点,要是如下图开启这些服务就说明此节点状态正常
Fence Devices隔离设备
相当于电源交换机,一个节点故障,可直接将其踢掉,相当于拔掉电源。
需要在管理集群节点的机子上安装隔离设备的包
yum install fence-virt fence-virtd fence-virtd-libvirt fence-virtd-multicast -y
fence_virtd -c 设置隔离设备
一直回车保持默认,除了Interface[none]:br0(虚拟机通信接口) Backend module:libvirt
mkdir /etc/cluster/
加密创建fence_xvm.key :dd if = /dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1
把key考给两个节点机
scp /etc/cluster/fence_xvm.key vm1:/etc/cluster
scp /etc/cluster/fence_xvm.key vm2:/etc/cluster
/etc/init.d/fence_virtd start
chkconfig fence_virtd on
在网页添加fence设备:
add fence method;
add fence instance:(domain填对应节点机的UUID)
可手动踢出一个节点,由另一个节点接管。
fence_xvm -H vm1
Failover Domains错误维护域
优先级数字越小优先级越高。
Resources添加资源
1.添加浮动IP,需要是一个ping不通的IP
2.添加脚本script,比如开启apache的脚本
还可添加文件系统等等。
Services Groups服务管理组
点击add resource:添加之前建立的192.168.0.200 IP资源,和之前创建的apache这个脚本:
clusvcadm -d web 关闭此服务组
clustat 查看节点和服务的状态
clusvcadm -e web 开启此服务组
服务组创建成功之后,节点机上clustat查看集群状态
刚刚添加了apache服务,所以要在每个节点上安装apache服务。
为了区分两台内容可以重新编辑一下默认访问主页
cd /var/www/html/
echo `hostname` > index.html
ok现在可以在web网页上访问刚刚添加的那个浮动ip
网页访问192.168.0.200
就可以看到你做的那个优先级高的节点机在接管服务。
如果将这个节点上的http关掉,那么那个优先级低的候补立马接管。
如果ifconfig eth0 down 使这个节点的网卡关掉,他会尝试恢复,如果恢复不了,他就会被集群forceoff,然后重启当替补,如果优先级高的话,那么就会立即接管。
分配集群资源
给集群管理加存储服务,在一个存储服务器上共享一块硬盘,作为存储(在实验中,就直接在集群管理的那台服务器上共享一块硬盘)
物理机上:
yum install scsi-*
lvcreate -L 2G -n iscsi vg0 创建/dev/vg0/iscsi逻辑卷
vim /etc/tgt/targets.conf
backing-store /dev/vg0/iscsi
initiator-address 192.168.0.103 //两台节点机IP
initiator-address 192.168.0.100
开启服务 /etc/init.d/tgtd start chkconfig tgtd on
tgt-admin -s 查看设备共享的信息
两个节点机都要做以下操作:
yum install -y iscsi-*
iscsiadm -m discovery -t st -p 192.168.0.1 //查找iscsi设备是否在1主机上
iscsiadm -m node -l //登录到iscsi设备
fdisk -l 可查看多了一块共享硬盘/dev/sdb
这时在节点1主机vm1上创建一个主分区
1.现在在一个节点上给此设备做 分区和格式化 (做本地文件系统 ext4)
fdisk -cu /dev/sdb
会同步到vm2节点机。
格式化为ext4格式文件系统
mkfs.ext4 /dev/sdb1
在节点2主机vm2上执行partprobe,更新内核分区表,cat /proc/partitions查看内核分区。
vm1上现在将此设备先挂载到/var/www/html下 mount /dev/sdb1 /var/www/html/
给设备上写入东西,方便访问echo www.westos.org > /var/www/html/index.html
现在解挂 umount /var/www/html
vm2上挂载mount /dev/sdb1 /var/www/html/,cat /var/www/html/index.html可查看vm1 html的内容。交给集群管控,哪台工作,哪台被挂
在web管理界面上添加存储设备资源和资源组 先关闭资源组clusvcadm -d web
再去资源组添加此资源
现在开启服务组 clusvcadm -e web
注意:ext4为本地文件系统,两个节点只能一方卸载,另一方挂载之后才可看到共享磁盘的信息,不可两边同时挂载,gfs2可实现多节点同时挂载,同时写入数据,实现数据同步。可是gfs2必须在集群平台上才能挂载,若集群挂掉,gfs2文件怎么办呢?方法是导出集群文件dd if=/dev/clustervg/gfs2demo of=gfs2.img bs=128 count=1,再执行挂载命令mount -t gfs2 -o lockproto=lock_nolock,loop gfs2.img /mnt
2.现在在一个节点上给此设备做 分区和格式化 (做网络文件系统 gfs2)
clusvcadm -d web 先停掉服务组
网页上将服务组Service Groups里的文件系统资源去掉,再到资源Resources里删掉存储设备资源
vm1上fdisk -cu /dev/sdb
把分区/dev/sdb1做成lvm格式
lvmconf --enable-cluster(相当于vim /etc/lvm/lvm.conf 设置locking_type = 3,使它可以支持集群 )
/etc/init.d/clvmd restart(vm2上也要执行这两步)
pvcreate /dev/sdb1 //创建pv
vgcreate -cy clustervg /dev/sdb1 //创建vg取名为clustervg,使其支持cluster
lvcreate -L 1G -n gfs2demo clustervg //创建lv 取名为gfs2demo
同时vm2上可查看创建lvm同步
格式化为gfs2的格式 -t跟更集群的名字:后是标签
mkfs.gfs2 -p lock_dlm -t mycluster:mygfs2 -j 3 /dev/clustervg/gfs2demo
用集群管理gfs2文件:
方法1:写入开机自动挂载文件里
blkid 查看挂载设备的UUID,标签等信息
vim /etc/fstab
UUID="dc966f09-5b9e-a13b-c210-2299bd5e36a1" /var/www/html gfs2 _netdev,defaults 0 0
可以用UUID挂载,也可以用设备/dev/mapper/clustervg-gfs2demo挂载
mount -a 全部挂载(vm2上也执行这两步)
两边可以同时挂载,vm1上导入index.html,vm2上可查看信息。
clusvcadm -e web开启web服务组,网页登录192.168.0.200验证
方法2:直接在集群管理界面添加
clusvcadm -d web 停掉服务组
vim /etc/fstab 屏蔽掉挂载设备这行
#UUID="dc966f09-5b9e-a13b-c210-2299bd5e36a1" /var/www/html gfs2 _netdev,defaults 0 0
网页上在资源Resources加存储设备资源,集群管控 加服务组
可以用设备,UUID,标签挂载。
添加之前mygfs2文件到服务组里,注意服务组里的顺序最好是Ipaddress ,GFS2 ,Script
clusvcadm -e web 开启服务组 网页访问192.168.0.200验证
gfs2_tool journals /dev/clustervg/gfs2demo //查看日志
journal2 - 128MB
journal1 - 128MB
journal0 - 128MB
3 journal(s) found.
多路经存储 DM存储
首先卸载umount /var/www/html
关闭服务组clusvcadm -d web,网页上移除gfs2的资源和组。
两个节点机上:
vgremove clustervg
pvremove /dev/sdb1
iscsiadm -m node -u 登出iscsi服务器
iscsiadm -m node -o delete 删掉节点
多路经存储(在一做存储的服务器上共享一块存储磁盘设备用192.168.0.110这台主机替代物理机,在这个服务器上加一块虚拟磁盘,加一个虚拟网卡),将这个虚拟磁盘共享出去
在192.168.0.110这台主机上
yum install scsi-*
/etc/init.d/tgtd start
cat /etc/udev/rules.d/70-persistent-net.rules 查看多了一个虚拟网卡eth1
vim /etc/tgt/targets.conf
backing-store /dev/vg0/iscsi
initiator-address 192.168.0.103 //两台节点机IP
initiator-address 192.168.0.100
开启服务 /etc/init.d/tgtd start
配置另一快网卡cd /etc/sysconfig/network-scripts/
ls
cp ifcfg-eth0 ifcfg-eth1
/etc/init.d/network restart
此主机有两个IP,192.168.0.110 和 192.168.0.113
在所有节点上 登入这个共享设备 多路登入 做冗余
两个节点机上都要做:
iscsiadm -m discovery -t st -p 192.168.0.110
iscsiadm -m node -p 192.168.0.110 -l
iscsiadm -m discovery -t st -p 192.168.0.113
iscsiadm -m node -p 192.168.0.113 -l
fdisk -l
两台节点机上安装 device-mapper-multipath
yum install device-mapper-multipath
( multipath –enable,提醒让执行/sbin/mpathconf --enable 来生成 /etc/multipath.conf文件(这个只需要在一个节点上做,其他的复制这个配置文件)
vim /etc/multipath.conf
/etc/init.d/multipathd start 启动多路映射服务
scp /etc/multipath.conf 192.168.0.103:/etc/ 复制给另一节点/etc/init.d/multipathd start
chkconfig multipathd on设置开机自启动
multipath -l 查看多路映射设备信息
fdisk -l查看分区,多了一个分区/dev/mapper/mpathb
要想给分区起一个别名vim /etc/multipath.conf
multipaths {
multipath {
wwid "1IET 00010001" //id是multipath -l查看的id号加双引号
alias clusterstorage //起别名为clusterstorage
}
}
fdisk -cu /dev/mapper/ clusterstorage 在这个设备上做主分区(在一个节点上做,其他节点会同步)
cat /proc/partitions 看是否分区刷新成功(所有节点都做)
partprobe 刷新内核分区表
mkfs.ext4 /dev/mapper/clusterstoragep1 格式化
ccs -h vm1.example.com -p root --addresource fs name=web_fs device=/dev/mapper/clusterstoragep1 mountpoint=/var/www/html/ fstype=ext4 #给vm1节点添加文件资源 web_fs,挂载到/var/www/html/
ccs -h vm1.example.com --sync #同步到vm2,需要ricci的密码(即root)
ccs -h vm1.example.com --lsservices #列出服务
或者直接mount /dev/mapper/ clusterstoragep1 /var/www/html挂载测试 写个东西
cd /var/www/html
ls
vim index.html
在web管理上将web_fs添加 存储设备资源 和服务组
clusvcadm -e web 网页登录192.168.0.200验证。