封装虚拟机BASE(母机):
1. 删除自启动项 /etc/udev/rules.d/70-persistent-net.rules 这样网络设备就为eth0,而不是eth1
2. 更改网络配置文件 vi /etc/sysconfig/selinux 设置为不启用
3. 禁止网络功能 chkconfig iptables off
3.1 网络启动方式:/etc/init.d/iptavlesstop|start|restart
service iptablesstop|start|*
4.配置 yum源并下载ssh
5.更改名称 hostnameXXX.example.com 文件更改 vi /etc/sysconfig/network
6.删除ssh公钥 rm -fr/ssh_host_*
7.删除缓存 rm -fr /tmp/* rm -fr /var/cache/*
8.切记 关闭后不再启动
***********************************************
一. **************** HA(高可用架构) *************
************** RHCS + IB 高可用+负载均衡 ************
*******************************************************
简介:该高可用构架使用的RHCS套件,其中服务设定为httpd。启用了fence,并使用ISCSI存储。文件共享机制使用的是ext4 或 gfs2,两种方式有操作和演示。在文档中即有原理解释,而且还有细节操作。
(一)
1. M
/ \
/ \
/ \
HA1 <---------> HA2
1.配置好yum,通过iso(rhel6.5)将yum中的组件,Server,HighAvailability,LoadBalancer,ResilientStorage,ScalableFileSystem,写入yum源。 【每个集群机器都要 配置好,包括管理机】
[Server]
name=Red Hat Enterprise LinuxServer
baseurl=http://172.25.254.251/pub/rhel6.5
enabled=1
gpgcheck=0
[HighAvailability]
name=Red Hat Enterprise LinuxHighAvailability
baseurl=http://172.25.254.251/pub/rhel6.5/HighAvailability
enabled=1
gpgcheck=0
[LoadBalancer]
name=Red Hat Enterprise LinuxLoadBalancer
baseurl=http://172.25.254.251/pub/rhel6.5/LoadBalancer
enabled=1
gpgcheck=0
[ScalableFileSystem]
name=Red Hat Enterprise LinuxScalableFileSystem
baseurl=http://172.25.254.251/pub/rhel6.5/ScalableFileSystem
enabled=1
gpgcheck=0
[ResilientStorage]
name=Red Hat Enterprise LinuxResilientStorage
baseurl=http://172.25.254.251/pub/rhel6.5/ResilientStorage
enabled=1
gpgcheck=0
2. 集群机 HA1,HA2
(1)下载 yuminstall -y ricci
(2)设置 ricci 密码,ricci端口(11111)
(3)启动服务/etc/init.d/ricci start; chkconfig ricci on
(4)clustat 命令可以查看 集群上的运行点
3. 管理机
(1)下载 yuminstall -y luci(8084)
(2)启动luci
使用Conga 管理
4. 域名对应 写在/etc/hosts中 (把所用的HA1,HA2,管理机的ip和hostname相对性)
172.25.254.161 server1.example.com
172.25.254.162 server2.example.com
172.25.254.163 server3.example.com
172.25.254.60 foundation60.ilt.example.com
5. 用浏览器访问管理机的8084端口
https://server3.example.com:8084
(1)用root用户登录
(2)create集群,把HA1,HA2添加进去 (在创建HA1,HA2用的是相应 ricci 的密码)
6.所有的操作都在文件记录下
/etc/cluster/cluster.conf
(二)配置Fence守护进程属性
Fence守护程序,防止Storage(存储)损坏,由于机群中某节点异常,处于不能完全断开网络转入其它节点的状态。至此,添加Fance,防止节点异常影响Storage发生错误崩溃。
1.在Fance Devices中添加 Fencevirt(Multicast Mode)(虚拟Fence多波设备),并且添加相应的名称。
设置的信息会自动载入/etc/cluster
2.在主机上下载fence软件,即用来控制虚拟机的状态
基本软件: fence-virtd-multicast-0.3.2-2.el7.x86_64
fence-virtd-libvirt-0.3.2-2.el7.x86_64
fence-virtd-0.3.2-2.el7.x86_64
3.初始化 fence_virtd -c 【其它的默认,但在网络设备设置时使用主机的话就要设置 br0】
4.开启服务 libvirtd 和 fence_virtd
5.在主机中创建 /etc/cluster 目录。
制作一个 key 发送给自己的 HA1 和 HA2,以保护 HAcluster
dd if=/dev/urandomof=/etc/cluster/fence_xvm.key bs=128 count=1
6.着手在 HA1 和 HA2 中添加 fence设备,分别命名为 fence-1,fence-2。
7.查看虚拟机的 uuid 并且写入Add FenceDevice 信息中。
查看uuid的方法,(1)打开虚拟管理软件 查看虚拟机信息
(2)virsh list --uuid (应该是按照启动的机器顺序所显示的)
【切记添加完成之后 重启fence_virtd 服务】
8.关闭节点机器方式 fence_node + 主机名称
fence_node server1.example.com
(三)Add FailoverDomain to Cluster 添加机群机组
Prioritized 优先级
Restricted 只在指定节点切换
NO Failback (恢复回切)[节点fence启动后,是否将服务换回来]
Run Exclusive 独占(上面只能运行一个服务)
启动:先启动IP 再启动服务,若是启动服务里有存储,先启动存储再启动服务。
(1) 填写名称,
勾选,Prioritized(数字越小越高,正整数),Restricted,NO Failback。
却认选择节点,并且设置优先级。
(四)Add Resource to Cluster,向集群添加资源
(1)添加 IP Address和掩码, 添加同网段IP。选择sleep重启时间(小点也可以)。
(2)添加服务,(测试选择 Script),在节点上下载(httpd服务),
Name:httpd
Full Path to ScriptFile:/etc/init.d/httpd
(5)Add Service Group to Cluster,添加服务
Name : web
~Service(自启): 勾选
~Exclusive(独占): 勾选
~Domain:webfail
~Policy(策略):Relocate
【在下面的添加里 再添加自己设定的 *IP 和 *服务】
*用命令在有服务的节点中启动 clusvcadm -e web [关闭命令是 -d]
(6)测试,在节点中写 .html 文件,看浏览器访问到的内容;人为停止服务,测试fence是否其效果,切换时长等。
方法: echo c> /proc/sysq-trigger 用夯主服务器的方式使得fence起效果,并查看集群是否成功切换节点服务。
(五)增加 ISCSI存储
(1)在管理机上添加一个虚拟存储设备
(2)在管理机上:yum install -y scsi-target-utils.~
节点机上:yuminstall -y iscis-initiator-utils.~
(3)在管理机/etc/tgt/targets.conf 配置文件,并开启/etc/init.d/tgtd 服务。
38 <target iqn.2017-02.com.example:server.target1>
39 backing-store /dev/vdb
40 initiator-address 172.25.254.161
41 initiator-address 172.25.254.162
42 </target>
测试:tgt-admin-s [查看,载入配置文件信息]
(4)在节点机上,iscsiadm -m discovery -t st -p172.25.254.163,同步163机上分享的设备块。
iscsiadm -m node -l 连接到分享的设备节点上,供其使用
(5)创建存储(LVM)分区在一个节点机上 fdisk -cu /dev/sda,在分区类型选择时,选择8e(LVM类型)。
(6)需要在两台节点机都同步分区表(partprobe),并且可以 cat /proc/partitions 可以查看设备是否同步。
(六)在ISCSI上面附加Apache服务,存储方式位ext4,使用clvmd,自动挂载
(1)/etc/init.d/clvmd status (这个应该在上述操作中默认开启)
(2)/etc/lvm/lvm.conf (其中类型变成3)
(3)制作lvm(一个节点机就可):
pvcreate /dev/sda1 (pvs查看)
vgcreate clustervg /dev/sda1(vgs查看)
lvcreate -L 4G -n demo clustervg (lvs查看)
mkfs.ext4/dev/clustervg/demo
(4)Add Resource to Cluster
添加: Filesystem
Name: webdate
~ Type:ext4
MountPoint:/var/www/html
~or UUID:/dev/clustervg/demo
..
~ Unmount(允许强制卸载):勾选
..
~ Checks:勾选
~ Fails :勾选
(5)关闭服务,并把Filesystem加入策略中,先加入这个存储(webdate),再加入服务(Script)
clusvcadm -d web 关闭服务
clusvcadm -e web 开启服务
(6)做切换节点机测试(查看服务是否可以在两个节点机同时进行)
1.在此之前你可以在挂载点 写一个index.html文件
2.切换命令 clusvcadm -r web -mserver2.example.com
(7)LVM扩容文件系统
lvextend -L +4G/dev/clustervg/demo
resize2fs /dev/clustervg/demo
(七)在机群上使用gfs2(共享文件系统)做存储
(1)首先关闭服务
(2)在Service Groups中 移除Filesystem,并且在 Resources 中 删除webdate
(3)卸载并移除lvremove /dev/clustervg/demo,将其制作为gfs2文件系统(所用协议为:lock_dlm;日志为3个,日志个数=集群节点+1,名称=集群名称+文件系统名)
mkfs.gfs2 -p lock_dlm -j 3-t hxl_HA:mygfs2 /dev/clustervg/demo
(4)两台机器都挂载: mount /dev/clustervg/demo /mnt/
确保开启clvmd服务。
开机自动挂载(/etc/fstab)【网络文件类型:_netdev】
/dev/clustervg/demo /var/www/html gfs2 _netdev 0 0
(5)测试,在此挂载点/mnt/写的文件 两个节点机 是相同的。
关闭web。
gfs2_tool sb/dev/clustervg/demo all [查看信息]
gfs2_tool journals/dev/clustervg/demo [查看日志信息]
gfs2_jad -j 3/dev/clustervg/demo [再添加3个日志文件]
mount -a [重新加在]
df -h [查看,近尺寸单位有问题]
这个文件系统也支持 lvextend扩充,用gfs_grow扩充
【常见问题归纳】
1.tgt首先启动在管理机上 , 这样集群的 iscsi(iscsid是它的后台系统)才能起来。
2.cman即是“心跳传递(corosync)”
corosync -> heartbeat v1 v2 v3keepalived(vrrp协议) [“心跳版本”]
【总结】
1.cman(corosync) (ccsd保证配置文件一至)/etc/cluster/cluster.conf
2.存储iscsi,文件系统 afs2,ext4
3.fence
4.faildomain(故障切换域)
CCS命令 也可以命令操作配置文件的更改(详情请看RedHat6.5 Cluster官方文档)。
。