实验环境
redhat6.5虚拟机三台,各1G内存,时间同步
server1 172.25.44.1
server2 172.25.44.2
server3 172.25.44.3
火墙和selinux均处于关闭状态
编辑/etc/hosts文件,加入解析
不支持在集群节点中使用 NetworkManager。如果已经在集群节点中安装了 NetworkManager,应该删除或者禁用该程序。
server1 server2 ricci节点
(1).yum源配置
vim /etc/yum.repos.d/rhel-source.repo
[server]
name=localserver
baseurl=http://172.25.44.44/rhel6.5
gpgcheck=0
[HighAvailability] ###高可用集群
name=localserver
baseurl=http://172.25.44.44/rhel6.5/HighAvailability
gpgcheck=0
[LoadBalancer]
name=localserver
baseurl=http://172.25.44.44/rhel6.5/LoadBalancer
gpgcheck=0
[ResilientStorage] ###存储
name=localserver
baseurl=http://172.25.44.44/rhel6.5/ResilientStorage
gpgcheck=0
[ScalableFileSystem] ###大型文件系统
name=localserver
baseurl=http://172.25.44.44/rhel6.5/ScalableFileSystem
gpgcheck=0
yum repolist ###列出可用的包,默认都是server里面的3690个包
yum源配置完成之后,有可用的包 共3819
(2).安装ricci以及设置开机自启动
yum install ricci -y
chkconfig ricci on ###开机自启动
echo linux | passwd --stdin ricci ###6.1版本之后要给一个密码(cat /etc/issue查看版本)
/etc/init.d/ricci start ###启动服务
server3
(1)yum源的配置同server1 server2
(2)yum install luci -y
chkconfig luci on ###开机自启动
(3)/etc/init.d/luci start 出现如下界面
在浏览器中访问https://server3.example.com:8084
可以看到如下luci登录界面
以超级用户的身份和密码登录进行管理
创建集群
(1)在luci “Homebase” 页面左侧菜单中点击「管理集群」 。此时会出现「集群」 页面;
(2)点击创建后出现创建集群界面。如下
参数说明:
a.集群名称随意输入,不能超过15个字符
b.如果节点的ricci密码相同,则可以选择“使用相同密码(所有节点)”
c.添加节点,节点名称密码自己添加,端口默认为11111,自己可以更改
d.下载软件安装包比使用本地软件安装包多了一个更新的功能
e.选择加入集群前重启和启动共享存储支持
###点击创建属性之后,会有相关信息显示正在创建;
注意:点击创建出现错误,重新给ricci节点一个密码,确保其密码和添加节点的时候输入的密码一致。
创建完成后:
clustat查看状态
配置fence设备
产生脑裂:
(1)网络突然断开,彼此都以为对方接收不到信息,然后同时对数据进行操作
(2)一个夯住,另外一个节点以为对方挂掉,当夯住的那个节点醒来之后继续工作,两个都会对数据进行传送;
夯住的时候可以使用fence机制,简单来说,就是另外一个节点把夯主的那个节点一棍子打死,就不会产生脑裂现象;
图形界面添加一个fence设备
这里用的两个虚拟机,类型选择虚拟设备的多播模型;
物理机只是添加一个连接接口,它可以发出foceoff的命令;
物理机:
(1)
yum install fence-virtd fence-virtd-libvirt fence-virtd-multicast -y
(2)systemctl start fence_virtd ###开启服务
netstat -anulpe #查看端口 1229
(3)fence_virtd -c
默认回车 Interface [virbr0]: br0 Backend module [libvirt]:libvirt
(4)mkdir /etc/cluster ###不存在则建立
cd /etc/cluster
dd if=/dev/urandom of=fence_xvm.key bs=128 count=1 ####截取生成fence_xvm.key文件
systemctl restart fence_virtd.service ###重启服务
(5)把key文件scp到其他两个ricci节点主机
scp fence_xvm.key root@172.25.44.1:/etc/cluster/
scp fence_xvm.key root@172.25.44.2:/etc/cluster/
建立虚拟机和其hostname之间的映射
在图形界面节点选项中选择一个设备比如server1:
这里的Domain可以是虚拟机的名称或者uuid,uuid是唯一的
server2和server1的方法一样,把所有节点都配置
检测:在server1中: fence_node server2.example.com
server2断电重启,执行forceoff命令,反之一样
创建Failover Domain
Failover Domain是配置集群的失败转移域,通过其可以将服务器和资源的切换限制在指定的节点间
参数说明:
prioritized:是否在这个域中启用域成员优先级设置,这里选择启用;
Restricted:是否在失败转移域成员中启用服务故障切换限制;
No failback:主节点故障,备节点会自动接管相关业务;当主节点恢复正常,不恢复到主节点,只有当备节点故障时,才会回到主节点;
优先级的设置,数字越小,优先级越高
创建资源
填写的ip要是ping不通的,为集群vip
两台ricci节点主机安装httpd,且httpd的状态为stop
创建资源组
添加资源,顺序ip-->httpd
添加的顺序就是开机的启动顺序
测试:
在server1和server2中创建测试页
server1:echo "<h1>server1</h1>" >/var/www/html/index.html
server2:echo "<h1>server2</h1>" >/var/www/html/index.html
当前在server1
网页访问:172.25.44.144
(1)
正常情况下由server1主管,当server1的服务停止后,由server2进行接管,由于是一个集群vip,所以ip不变。
(2)server 2: /etc/init.d/network stop
(3)server1: echo c > /proc/sysrq-trigger ###使内核崩掉
server1 崩掉后fence机制,force重启
共享:
server3:装有luci的主机
yum install scsi-* -y
添加磁盘8G fdisk -l 可以查看
分区fdisk -cu /dev/vda
vim /etc/tgt/targets.conf
/etc/init.d/tgtd start
server1 server2
(两台ricci节点主机)
yum install iscsi-* -y
检测并登录
登录成功后fdiks -l 查看多了/dev/sdb
以上操作两台主机都执行
server1:
在server1中对/dev/sdb/进行分区(server2执行partprobe后会同步)
fdisk -cu /dev/sdb t 8e
pvcreate /dev/sdb1
vgcreate clustervg /dev/sdb1
lvcreate -L 2G -n data1 clustervg
mkfs.ext4 /dev/clustervg/data1
ext4 本地文件系统,不支持多个挂载点同时对文件进行读写,保证一个点挂载不会出现问题
mount /dev/clustervg/data1 /mnt
echo "<h1>linux</h1>" /mnt/index.html ####编辑测试页
umount /mnt
server1 server2
clusvcadm -d apache ###停止apache
在服务组里面添加资源
顺序:ip --> filesystem(data1) -->httpd(script)
clusvcadm -e apache ###启动apache
测试:172.25.44.144
转载于:https://blog.51cto.com/11838039/1827049