制作母盘
极简安装
1.ip
多用 ip addr show
DEVICE="eth0"
BOOTPROTO="dhcp"
ONBOOT="yes"
2.firewall
chkconfig --list iptables 查看防火墙开机自启状态
chkconfig iptables off 永久关闭防火墙
iptables -L 查看防火墙当前状态
启动服务
/etc/init.d/iptables start
service iptables start
3.yum
真机 /iso/rhel6
yum install openssh-clients -y
4.selinux
vim /etc/sysconfig/selinux
disabled
5.udev
rm -rf /etc/udev/rules.d/70-persistent-net.rules
删除动态绑定,因为快照的虚拟机群,有不同的mac地址
只留下60-raw.rules
6.清缓存
rm -rf /tmp/*
rm -rf /var/cache
清完后poweroff,因为系统重启又会产生缓存
7.主机名
hostname server.lalala.com 临时修改
vim /etc/sysconfig/network 永久修改
8.ssh
rm -rf /etc/ssh/ssh_host_*
删除公钥,已保证每一个快照的的机器ssh时,使用不同的公钥,连接
注意: 重启服务会自动生成公钥
9.分区
使用一整块硬盘分区自动分区:
/boot : 不能使用lvm,lvm是在启动之后才加载的动态可变分区。
lvm : lv_root 根挂载在lv_root上
swap
快照
qemu-img create -f qcow2 -b base.qcow2 vm1
qemu-img create -f qcow2 -b base.qcow2 vm2
qemu-img create -f qcow2 -b base.qcow2 vm3
qemu-img info vm1 查看虚拟机名称
在开始实验前对三台虚拟机进行如下设置:
HA 高可用架构 high access
RHCS+LB 集群套件+负载均衡
冷备:手动切换
热备:自动切换
三台机器:
vim /etc/yum.repos.d/rhel-source.repo
[Server]
name=Red Hat Enterprise Linux Server
baseurl=http://172.25.88.250/rhel6
enabled=1
[HighAvailability]
name=Red Hat Enterprise Linux HighAvailability
baseurl=http://172.25.88.250/rhel6/HighAvailability
enabled=1
[LoadBalancer]
name=Red Hat Enterprise Linux LoadBalancer
baseurl=http://172.25.88.250/rhel6/LoadBalancer
enabled=1
[ResilientStorage]
name=Red Hat Enterprise Linux ResilientStorage
baseurl=http://172.25.88.250/rhel6/ResilientStorage
enabled=1
[ScalableFileSystem]
name=Red Hat Enterprise Linux ScalableFileSystem
baseurl=http://172.25.88.250/rhel6/ScalableFileSystem
enabled=1
scp /etc/yum.repos.d/rhel-source.repo root@172.25.88.2:/etc/yum.repos.d/
scp /etc/yum.repos.d/rhel-source.repo root@172.25.88.1:/etc/yum.repos.d/
yum clean all
yum repolist
三台机器+真机
vim /etc/hosts
172.25.88.1 server1.lalala.com
172.25.88.2 server2.lalala.com
172.25.88.3 server3.lalala.com
HA:server1,server2
yum install ricci -y
passwd ricci 改完密码要重启服务
chkconfig ricci on 开机自启
管理:server3
yum install luci -y
yum install httpd -y
/etc/init.d/luci strat
/etc/init.d/httpd start
luci ricci 管理机制
clvmd 集群lvm
cman 集群管理器 corosync:发送心跳(多波),心跳通讯程序
fence 电源交换机。”断电“:防止异常机器写入危险数据
因为(异步存储)async:内存——>磁盘
内部,外部 fense
rgmanager 资源组管理器
??????年停机数:99,999,9999,99999s
检验
在宿主浏览器 https://server3.lalala.com:8084
登陆 用server3的root
create NEW Cluster 创建新的集群
创建集群的时候,在安装一堆软件
浏览器
在集群服务器
clustat
配置文件
异常处理
fence
物理机
yum install fence-virtd-multicast.x86_64 fence-virtd-libvirt.x86_64fence-virtd.x86_64 -y
[root@foundation33 ~]# rpm -qa |grep fence
fence-virtd-libvirt-0.3.0-16.el7.x86_64
fence-virtd-0.3.0-16.el7.x86_64
fence-virtd-multicast-0.3.0-16.el7.x86_64
配置fence:
fence_virtd –c
Interface [virbr0]: br0
制作钥匙
mkdir cd /etc/cluster/
dd if=/dev/urandom of=/etc/cluster/fence_xum.key bs=128 count=1
把钥匙分发给集群
scp fence_xum.key root@172.25.33.1:/etc/cluster/
scp fence_xum.key root@172.25.33.2:/etc/cluster/
systemctl start fence
浏览器配置:
server1:(server2与server1配置相同)
查看sever1的UUID
使用UUID和主机名进行绑定
检验
server1:
fence_node server2.lalala.com
server2被断电然后重启。
server1和server2可以互相断电。
添加service Group 先选ip再选httpd(ip下面那个)
server1,server2:
yum install httpd -y
vim /var/www/html/index.html
server1
server2
不启动服务,服务由集群启动
clustat
浏览器
1.添加错误域(Failover)
Priorizxed 优先级(越小越高)
Restricted 限制哪些结点可用错误域
Failback 回切(性能相同不用,性能差异大用,有损失)
2.添加资源域(Resource)
IP、Script(服务,适用源码安装)
3.添加服务组(Service Groups)
全选
Reloted
exclusive:运行独占(某个服务)
添加service Group 先选ip再选httpd(ip下面那个)
添加顺序即启动顺序:ip 服务
检验
clustat: 多了rgmanager
在浏览器中访问添加的IP 172.25.88.100
server1
注意:server1并没有开启apache服务,集群负责开启
server1:
/etc/init.d/httpd stop
server1:started->recoverable->server2:starting->server2:started
2.网络接口down(fence)
server2: ip link set down eth0
server2 卡住,Offline,因为fence,再重启online,但业务已经切换到server1上。
server2:started->recoverable->server1:starting->server1:started
3.给内核传递 c-crash,b-reboot,h-halt(fence)
server1: echo c>/proc/sysrq-trigger
server1:started->recoverable->server2:starting->server2:started
fdisk –l检查是否添加成功
在做lvm集群之前,检查lvm配置文件(不配置,安装集群也会自动配置哦~)
vim /etc/lvm/lvm.conf
455 # Type of locking to use.Defaults to local file-based locking (1).
456 # Turn locking off by setting to0 (dangerous: risks metadata corruption
457 # if LVM2 commands get runconcurrently).
458 # Type 2 uses the external sharedlibrary locking_library.
459 # Type 3 uses built-in clusteredlocking.
460 # Type 4 uses read-only lockingwhich forbids any operations that might
461 # change metadata.
462 locking_type = 3
要使用的锁定类型。 默认为本地基于文件的锁定(1)。
#通过将设置为0(危险:危险元数据损坏)来关闭锁定
#如果LVM2命令同时运行)。
#Type 2使用外部共享库locked_library。
#Type 3使用内置的集群锁定。
#Type 4使用只读锁定,它禁止可能的任何操作
#更改元数据。
可以在源文件更改,也可以使用命令更改锁的类型
lvmconf --enable-cluster
yum install -y scsi-* -y
vim /etc/tgt/targets.conf
<target iqn.2016-02.com.lalala:server.target1>
backing-store /dev/vdb
initiator-address 172.25.88.1
initiator-address 172.25.88.2
</target>
绑定IP模板在
161 # initiator-address 192.168.200.1
162 # initiator-address 192.168.200.5
/etc/init.d/tgtd start
tgt-admin -s 发现设备
-m motion 动作
-t type
-m node -u umount
server1,server2,同时出现/dev/sda即为成功~~
如果出现两个子机器,没有同步一块磁盘,可通过如下方式解决。
1.不能识别共享存储
可能是管理端的scsi服务出错,可以先停止tgtd服务,强行关闭进程(killall -9),再开启
若是lvs没有同步信息,可以同步分区表。
分区:fdisk-cu /dev/sda
别忘记cu !!!!
先确保两台主机获得的分区名相同
/dev/sda1
server1: mkfs.ext4 /dev/clustervg/demo (有一边格式化即可)
mount /dev/clustervg/demo/mnt/
vim /mnt/index.html
server2: mount /dev/clustervg/demo /mnt/
注意:如果此时selinux开着。
ll -Z /var/www/html
chcon -t /dev/clustervg/demo
如果这个时候在server1的mnt:cp /etc/passwd /mnt,server2 看不到,只有卸载后重新挂载才可以。删除同理
ext4 本地文件系统不同步
clusvcadm -d apache 停掉apache集群服务
之后在网页中,添加webdata存储资源,在serverGroup中调整服务启动顺序
ip->存储->服务
server2:clusvcadm -e apache_zoe 激活服务
检验
server2 ip addr show : 172.25.88.100(谁支持服务VIP在谁上)
server1 ip addr show : 无
lost+found:记录文件系统的一些错误信息
cat /proc/partitions 准确查看分区(比fdisk–l 靠谱)
检验迁移
clusvcadm -r apache_zoe -m server1.lalala.com(移动到的点)
在此期间,游览器访问不受影响
移动到那台主机上,哪台主机上的IP就会包含我们的vip
vip:用户访问的外网IP,其实内网有很多集训服务器支持这个IP
在挂载点拉升
lvexted -l +1023 /dev/clustervg/demo
resize2fs /dev/clustervg/demo
删除
lvremove /dev/clustervg/demo
vgremove clustervg
pvremove /dev/sda1
分布式集群(多点)
在浏览器:
先删除服务组的本地存储,再删除资源组对应
server2:
clusvadm -d apache_zoe
server1:
clustat 查看集群名
mkfs.gfs2 -j 3 -p lock_dlm -t miaomiao:mygfs2/dev/clustervg/demo
mkfs.gfs2参数解释
-p 锁的类型
-t 集群名:文件系统名
mount /dev/clustervg/demo /mnt/
从此,server1,server2,可以同时读写数据,并实时更新
也可以在浏览器挂载,如果在集群挂载只能挂载一个读写的点,采用这种方式可以实现多节点同时读写:
server1 or 2 clusvcadm -e apache_zoe
保证 server1,server2: /dev/clustervg/demo挂载在/var/www/html
检验
浏览器:172.25.88.100
是apache界面,因为在gfs2中,没有index.html文件。
gfs2_tool sb /dev/clustervg/demo all 查看
gfs2_tool journals /dev/clustervg/demo 查看日志数量(128*n):j=节点+1
gfs2_jadd -j 3 /dev/clustervg/demo 增加三个日志(节点数)
lvextend -L +2G /dev/clustervg/demo 扩大文件lvm
gfs2_grow /dev/clustervg/demo 扩大文件系统
server1,server2: df -h 同步扩大
本文出自 “12049878” 博客,谢绝转载!
原文地址:http://12059878.blog.51cto.com/12049878/1898254