制作母盘



极简安装

wKiom1ikXCTwkfpmAABct8qb7Vk317.png

 

wKioL1ikXCSgPHYXAAAg91ID6FY351.png

 


wKiom1ikXCWAGtHOAABWuh0aTxc382.png


wKiom1ikXCXQrBm2AAA0zcKv9D8790.png


 


1.ip

多用 ip addr show
DEVICE="eth0"
BOOTPROTO="dhcp"
ONBOOT="yes"

 


2.firewall
chkconfig --list iptables   查看防火墙开机自启状态
chkconfig iptables off      永久关闭防火墙
iptables -L                 查看防火墙当前状态


wKioL1ikXCXg4j4jAAAzQGg-RPw026.png


wKiom1ikXCaRJHhMAACAno-rAa4582.png


 



启动服务


/etc/init.d/iptables start
service iptables start

wKioL1ikXCbRuAjIAABfZN7oZUU564.png


3.yum
真机 /iso/rhel6
yum install openssh-clients -y


wKioL1ikXCfTVFMRAAAv5Z1giXk684.png


wKiom1ikXCfQzgkfAABPQNDaqmE366.png

 

4.selinux
vim /etc/sysconfig/selinux
disabled

5.udev
rm -rf /etc/udev/rules.d/70-persistent-net.rules
删除动态绑定,因为快照的虚拟机群,有不同的mac地址
只留下60-raw.rules


wKiom1ikXCijjbaVAACSza991QU288.png



6.清缓存
rm -rf /tmp/*
rm -rf /var/cache
清完后poweroff,因为系统重启又会产生缓存


wKioL1ikXCjwfKccAAAYu-gRoWU224.png


7.主机名
hostname server.lalala.com  临时修改
vim /etc/sysconfig/network  永久修改

wKiom1ikXCjTEvL9AAAlW0-bsE4061.png


8.ssh
rm -rf /etc/ssh/ssh_host_* 
删除公钥,已保证每一个快照的的机器ssh时,使用不同的公钥,连接

注意: 重启服务会自动生成公钥


wKioL1ikXCmje9TjAACU0ospLys934.png


9.分区

wKioL1ikXCnBe6SIAAAxUUyveu0445.png



使用一整块硬盘分区自动分区:

/boot : 不能使用lvmlvm是在启动之后才加载的动态可变分区。
 lvm :    lv_root                  根挂载在lv_root
                swap
   

wKiom1ikXCrjTFF3AAC-bXObjyk276.png



快照


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


wKiom1ikXCqgUweIAAChE_rZgjs977.png




qemu-img        info  vm1                    查看虚拟机名称

 


wKioL1ikXCvhQEXnAADXR9SKKlY041.png

 



wKioL1ikXCzjmdt3AAB3i3uligk266.png


wKiom1ikXC2yBDtTAACx2Xh0Yr0488.png


 







在开始实验前对三台虚拟机进行如下设置:

 

wKiom1ikXC3DXMrYAAB9x6tFgwo822.png


wKioL1ikXC2A7_lAAABCE0ioWdY300.png


wKiom1ikXC6QazkMAACHl1qf8JY931.png


wKioL1ikXC7RwSjUAABGzELq3Ns763.png


wKioL1ikXC-CbfheAADANCnB3ds531.png


wKiom1ikXC-CjolNAABGNbXRvww889.png


wKiom1ikXDCRzVw0AACMcMo8mJg318.png


 

企业级



HA 高可用架构   high access
RHCS+LB         集群套件+负载均衡


冷备:手动切换
热备:自动切换 

 

wKioL1ikXDCxgH70AAFchn9YmtY644.png

 

HA


三台机器:

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

 

wKioL1ikXDGCMnbIAAIMH2IVQhM621.png

 

wKiom1ikXDLx4U02AAEEt_08N3w380.png

 


三台机器+真机

vim /etc/hosts
172.25.88.1    server1.lalala.com
172.25.88.2    server2.lalala.com
172.25.88.3    server3.lalala.com

wKioL1ikXDLi7MSWAABIB3MYKSs121.png

HA:server1server2

yum install ricci -y    管理组件(web),和集群工作没关系(同luci

passwd ricci    改完密码要重启服务
chkconfig ricci on  开机自启
 


 

wKioL1ikXDOgJfRmAABSNhyb8EA274.png


管理:server3


yum install luci -y
yum install httpd -y
/etc/init.d/luci strat
/etc/init.d/httpd start

wKiom1ikXDLB8OQ_AADydw4tEOQ572.png


luci ricci  管理机制
clvmd       集群lvm  
cman        集群管理器  corosync:发送心跳(多波),心跳通讯程序
fence       电源交换机。”断电“:防止异常机器写入危险数据
            因为(异步存储)async:内存——>磁盘
            内部,外部 fense
rgmanager   资源组管理器

??????年停机数:99999999999999s

检验


在宿主浏览器   https://server3.lalala.com:8084
登陆    server3root

create NEW Cluster                   创建新的集群


wKioL1ikXpngncsMAAErvps0Qqo047.png

 

wKioL1ikXpmz8-nEAAD-2gCptgA061.png

 



创建集群的时候,在安装一堆软件


wKiom1ikXpri***WAAEkJ1pxoh4837.png


 

wKioL1ikXpqhwB_8AAA4ao4SGtU205.png




检验

浏览器


wKiom1ikXpuzUx_eAACOqRzVrBM289.png

 

在集群服务器   
clustat

wKiom1ikXpuyEHi9AABoPQCXJyU043.png


 

wKioL1ikXpyxPy1tAABnn85wXno149.png

 

配置文件

 

wKioL1ikXpzR_tNbAACRxaBzOYw614.png


异常处理



wKiom1ikXpzDJ4hAAACf5zLjn30803.png


wKioL1ikXp3Bxd11AACzchgH-XE362.png

 

 

 


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

wKiom1ikXp2xubc0AABIEmzdEW4593.png


配置fence:
fence_virtd        –c


Interface [virbr0]: br0

wKioL1ikXp6gzPREAAB4GLMsppQ812.png

 

wKiom1ikXp6CM7YSAABL5y0wzRI958.png


制作钥匙


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/

wKiom1ikXp-QqaxAAAFJMJyDLLE460.png


systemctl start fence

浏览器配置:

server1:(server2server1配置相同)


wKioL1ikXqCAWL9eAADgcI3O_Ss453.png

 

查看sever1UUID

 

wKiom1ikXqHjZXW5AAB75BbUbB8856.png

 

使用UUID和主机名进行绑定

 

wKioL1ikXqGwak7_AABPe-7NUv4325.png


检验

 

wKiom1ikXqLSKsdUAADggiUmYe0788.png


server1
fence_node server2.lalala.com

 

server2被断电然后重启。

 

server1server2可以互相断电。

 

wKioL1ikXqKDdW0VAAC3U6qalwg725.png

 

 

 

 

 

 

 

 

添加service Group 先选ip再选httpdip下面那个)


server1server2:
yum install httpd -y
vim /var/www/html/index.html
server1
server2

不启动服务,服务由集群启动
clustat

浏览器

1.添加错误域(Failover

Priorizxed 优先级(越小越高)
Restricted  限制哪些结点可用错误域
Failback    回切(性能相同不用,性能差异大用,有损失)
 


wKiom1ikXqOjmIKwAABbGpCbAyw636.png



2.添加资源域(Resource)

IPScript(服务,适用源码安装)
 

wKioL1ikXqPyW7SmAABK2BMCJSQ937.png


wKiom1ikXqOgYjbZAAAwANwtsZo569.png

 


 

wKioL1ikXqSzs2sbAAA3nuGrbqs730.png


3.添加服务组(Service Groups)

全选
Reloted
exclusive:运行独占(某个服务)
添加service Group 先选ip再选httpdip下面那个)
 



wKiom1ikXqSzJORWAABr_c2O9hE589.png


添加顺序即启动顺序:ip       服务

 

wKioL1ikXqWRdujTAABvlVsHVAc280.png


检验
clustat:    多了rgmanager
 

wKioL1ikXqWAfEEgAACNhOanToc624.png

在浏览器中访问添加的IP  172.25.88.100
server1
 

wKiom1ikXqWBCU3mAAAb1awZqn4610.png

注意:server1并没有开启apache服务,集群负责开启


模拟故障

1.
停掉服务

server1:
/etc/init.d/httpd stop

server1:started->recoverable->server2:starting->server2:started


wKioL1ikXqaixWtYAADVSulsCUY622.png


2.网络接口downfence

server2: ip link set down eth0
server2 卡住,Offline,因为fence,再重启online,但业务已经切换到server1上。


 

wKioL1ikXqjwm9uWAAArORlRHpw925.png


server2:started->recoverable->server1:starting->server1:started
 


 

wKiom1ikXqbTCLlpAAEWJTvbqQ4008.png

3.给内核传递  c-crashb-rebooth-haltfence
 

server1:   echo c>/proc/sysrq-trigger



server1:started->recoverable->server2:starting->server2:started


wKiom1ikXqfwtwfRAAAWzBsHQpA580.png





lvm集群





本地集群
server3:
添加一块硬盘8G

wKiom1ikYsKz8P8sAACjwecQDb4696.png


 

fdisk         –l检查是否添加成功

 

wKioL1ikYsPjD4OvAACACjvqgsQ991.png

在做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


wKiom1ikYsOja7r5AACi3fRPss0101.png

 

 

集群的结点的lvm锁的类型为3!!!!!!(安装后自动)


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>


wKioL1ikYsSwAcU4AABCZ2pRWIw997.png


绑定IP模板在
161 #    initiator-address 192.168.200.1
162 #    initiator-address 192.168.200.5


/etc/init.d/tgtd start

tgt-admin -s    发现设备

wKiom1ikYsTjGGpnAABD2SwcD34124.png

server1,server2:

yum install iscsi* -y

iscsiadm -m discovery -t st -p 172.25.33.3
iscsiadm -m node -l
 

-m motion  动作
-t  type
-m node -u       umount
 

wKioL1ikYsaQwkwgAAClmdAAlgw850.png

 

server1server2,同时出现/dev/sda即为成功~~

 

wKiom1ikYsfylaudAAB1-cj1zqs166.png

异常处理

如果出现两个子机器,没有同步一块磁盘,可通过如下方式解决。

 

1.不能识别共享存储

 

1)可能是管理端的scsi服务出错,可以先停止tgtd服务,强行关闭进程(killall-9),再重启服务。



wKiom1ikYsfTPjJnAAB0s5B123M382.png

 

若是lvs没有同步信息,可以同步分区表。

 

wKioL1ikYsiToS4zAAFIabMyHv0044.png


3)如果是因为配置文件没有一次写对,导致磁盘识别异常:

iscsi –m node –u

iscsi –m node –o delete



wKiom1inDgmRXuNtAAEbx_QNTYY574.png



wKioL1inDl6jJXYKAAFaovamlX8225.png



分区:fdisk-cu /dev/sda

别忘记cu       !!!!


wKioL1ikYsnBkMLcAACwYgm2Gl0804.png

先确保两台主机获得的分区名相同
/dev/sda1

server1,server2:
/etc/init.d/clvmd start

vim /etc/lvm/lvm.conf
   locking_type = 3

确保        /etc/init.d/clvmd status  开启
        
server1 :   fdisk -cu /dev/sda        
             pvcreate /dev/sda1
            vgcreate clustervg /dev/sda1
            lvcreate -L 4G -n democlustervg   

server2     pvs
已同步
            vgs
已同步
            lvs
已同步
           
 

wKiom1ikYsrgiRciAABpyws-rp8167.png


 

wKioL1ikYsqBa1vRAABMQ6a6nLs735.png


server1   mkfs.ext4 /dev/clustervg/demo        (有一边格式化即可)
            mount /dev/clustervg/demo/mnt/
            vim /mnt/index.html

server2   mount /dev/clustervg/demo /mnt/

wKiom1ikYsuTJSOKAAFQag_0RZs328.png

 

注意:如果此时selinux开着。
ll -Z /var/www/html
chcon -t /dev/clustervg/demo

如果这个时候在server1mntcp /etc/passwd /mnt,server2 看不到,只有卸载后重新挂载才可以。删除同理
 

ext4    本地文件系统不同步

clusvcadm -d apache     停掉apache集群服务
 

wKiom1ikYsyDXvHnAAC4MuD8U-A894.png

之后在网页中,添加webdata存储资源,serverGroup中调整服务启动顺序
ip->存储->服务


wKioL1inDtHSQRpYAACiyTW2tE8925.png


server2clusvcadm -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(移动到的点)

在此期间,游览器访问不受影响

wKioL1ikYsyC_5PzAAHwIuJoXKc669.png

 

移动到那台主机上,哪台主机上的IP就会包含我们的vip

vip:用户访问的外网IP,其实内网有很多集训服务器支持这个IP
 

wKiom1ikYs2B7wqGAADYrRHtotQ158.png

在挂载点拉升
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
 

wKioL1ikYs6izZdcAAF_z864lLA707.png

 

mkfs.gfs2参数解释

 

-p 锁的类型

-t  集群名:文件系统名

 

wKiom1ikYs_wt3oJAACZRC3VnjM839.png

 

wKioL1ikYs_ywKrFAACZ1RFR8DE937.png

server1,server2:
 

mount /dev/clustervg/demo /mnt/

从此,server1server2,可以同时读写数据,并实时更新

wKioL1ikYtCgGR8iAABMXn5yNvc549.png

开机挂载
server1,server2:
vim /etc/fstab
/dev/clustervg/demo    /var/www/html   gfs2    _netdev 0 0
 

wKiom1ikYtDTLbLOAAA5Suviwl4776.png


也可以在浏览器挂载,如果在集群挂载只能挂载一个读写的点,采用这种方式可以实现多节点同时读写:


server1 or  2   clusvcadm -e apache_zoe

wKiom1ikYtHioX91AABfNOCMobY199.png


保证 server1server2:          /dev/clustervg/demo挂载在/var/www/html


检验
浏览器:172.25.88.100
apache界面,因为在gfs2中,没有index.html文件。
 

wKioL1ikZOSDFpHtAAFd6_zf5TU086.png

gfs2_tool sb /dev/clustervg/demo all        查看

gfs2_tool journals /dev/clustervg/demo     查看日志数量(128*n)j=节点+1

gfs2_jadd -j 3 /dev/clustervg/demo         增加三个日志(节点数)
 

 

 

wKioL1ikZOSx7xK_AADBCBTigRs777.png


 

wKiom1ikZOXzV8mXAAGhBq-MdbM162.png


lvextend -L +2G /dev/clustervg/demo        扩大文件lvm

gfs2_grow /dev/clustervg/demo              扩大文件系统

server1,server2:    df -h       同步扩大
 

wKiom1inDzSwKUhoAAFf2KVSrIM781.png