zoukankan      html  css  js  c++  java
  • linux RHCS集群 高可用web服务器

    RHCS集群,高可用服务器

    高可用
    红帽集群套件,提供高可用性,高可靠性,负载均衡,快速的从一个节点切换到另一个节点(最多16个节点)
    负载均衡
    通过lvs提供负载均衡,lvs将负载通过负载分配策略,将来自于客户端的请求分配到服务器节点
    当某个服务器节点无法提供服务,节点将被从集群中剔除
    存储集群功能
    rhcs通过gfs文件系统提供存储集群功能
    gfs即global file system,允许多个服务同时读写一个单一的共享文件系统
    通过gfs消除在应用程序间同步数据的麻烦
    通过锁管理机制来协调和管理多个服务节点对同一文件系统的读写操作

    RHCS组件
    核心组件:
    cman:集群管理器
    rgmanger:集群资源管理器
    corosync:集群间通信软件
    rcci:集群远程管理器
    附加组件:
    LVS
    GFS:红帽公司开发,gfs不能孤立存在,需要rhcs底层组支持
    CLVM:集群逻辑卷管理,lvm的扩展,允许集群使用lvm来管理共享存储
    iSCSI:新型存储技术
    GNBD:全局网络模块,gfs的一个补充组件,用于rhcs分配和管理共享存储

    RHCS运行原理
    分布式集群管理器CMAN
    运行在全部节点上提供集群管理任务
    用于管理集群成员,消息和通知
    根据每个节点上的运行状态统计法定节点数作为集群是否存活的依据
    分布式锁管理器DLM
    是rhcs的一个底层基础构建,为集群提供了一个公用的锁运行机制
    运行在每个节点上,gfs通过dlm的锁机制来同步访问文件系统的元数据
    clvm通过dlm来同步更新数据到lvm卷和卷组
    避免了单个节点失败需要整体恢复的性能瓶颈
    栅设备FENCE
    集群中必不可少的一个组成部分,避免因不可预知的情况下造成的脑裂现象
    脑裂指由于节点间不能获知对方信息,都认为自己是主节点,从而出现资源竞争的情况
    主节点异常或宕机时,备机首先调用fence设备,将异常节点重启或从网络上隔离
    fence机制可通过电源fence或存储fence实现


    ——————————————————————————————————————————————————————————————————————


    实例:搭建rhcs服务器
    环境:两个节点参与集群,第三个节点提供共享存储
    服务器:jiedian1
    eth0:192.168.4.1
    eth1:192.168.2.1
    eth2:201.1.1.1(对外提供服务)
    eth3:201.1.2.1
    服务器:jiedian2
    eth0:192.168.4.2
    eth1:192.168.2.2
    eth2:201.1.1.2(对外提供服务)
    eth3:201.1.2.2
    存储节点需要额外的硬盘,不需要配置对外提供服务的ip
    服务器:cunchu
    eth0:192.168.4.3
    eth1:192.168.2.3
    eth3:201.1.2.3
    qemu-img create -f qcow2 /var/lib/libvirt/images/iscsi1.img 20G

    配置yum
    [root@jiedian1 ~]# cat /etc/yum.repos.d/rhel6.repo(把所有的仓库做成yum,并把配置文件拷贝到其它主机的yum配置下)
    [rhel-6]
    name=Linux NSD
    baseurl=file:///root/myiso/
    ... ... ...
    [hig]
    name=Linux NSD
    baseurl=file:///root/myiso/HighAvailability/
    ... ... ...
    [loa]
    name=Linux NSD
    baseurl=file:///root/myiso/LoadBalancer
    ... ... ...
    [res]
    name=Linux NSD
    baseurl=file:///root/myiso/ResilientStorage
    ... ... ...
    [sca]
    name=Linux NSD
    baseurl=file:///root/myiso/ScalableFileSystem
    ... ... ...
    [root@jiedian1 ~]# scp /etc/yum.repos.d/rhel6.repo xxx.xxx.x.x:/etc/yum.repos.d/
    在存储端配置iSCIS
    [root@cunchu ~]# parted /dev/vdb(为存储磁盘分区)
    (parted) mklable gpt
    (parted) mkpart primary ext4 1M -1
    [root@cunchu ~]# yum -y install scsi-target-utils
    [root@cunchu ~]# vim /etc/tgt/targets.conf
    <target iqn.2017-09.org.hydra.hydra007>
    backing-store /dev/vdb1
    initiator-address 192.168.4.1
    initiator-address 192.168.4.2
    initiator-address 192.168.2.1
    initiator-address 192.168.2.2
    </target>
    [root@cunchu ~]# /etc/init.d/tgtd start; chkconfig tgtd on
    [root@cunchu ~]# tgt-admin -s
    ... ...
    LUN: 1(有lun1就可以)
    ... ...
    在两个集群节点配置iSCSI客户端和多路径(两台做相同的操作)
    [root@jiedian1 ~]# yum -y install iscsi-initiator-utils
    [root@jiedian1 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.4.3 --discover
    [root@jiedian1 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.2.3 --discover
    [root@jiedian1 ~]# service iscsi restart
    [root@jiedian1 ~]# lsblk (查看块硬盘)
    sdb 8:16 0 20G 0 disk
    sda 8:0 0 20G 0 disk
    [root@jiedian1 ~]# chkconfig iscsid on
    [root@jiedian1 ~]# yum -y install device-mapper-multipath(安装多路径包)
    [root@jiedian1 ~]# mpathconf --user_friendly_names n(生成配置文件)
    [root@jiedian2 ~]# scsi_id --whitelisted --device=/dev/sda(获取wwid信息)
    1IET 00010001
    [root@jiedian1 ~]# vim /etc/multipath.conf
    defaults {
    user_friendly_names no
    getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
    }
    ... ...
    multipaths {
    multipath {
    wwid "1IET 00010001"(填写wwid-硬件信息)
    alias mpatha(别名)
    }
    }
    [root@jiedian1 ~]# /etc/init.d/multipathd start;chkconfig multipathd on
    如果集群节点上安装着NetworkManager服务则需要关闭NetworkManager服务
    为三台服务器都配置名称解析
    [root@jiedian1 ~]# vim /etc/hosts
    201.1.1.1 jiedian1.public.hydra.cn
    201.1.2.1 jiedian1.private.hydra.cn jiedian1
    201.1.1.2 jiedian2.public.hydra.cn
    201.1.2.2 jiedian2.private.hydra.cn jiedian2
    201.1.2.3 jiedian3.private.hydra.cn jiedian3
    201.1.2.254 host.private.hydra.cn host
    在两台集群节点上安装ricci(在两台节点都做相同的操作)
    [root@jiedian1 ~]# yum -y install ricci
    [root@jiedian1 ~]# echo 'redhat' | passwd --stdin ricci(ricci是链接集群的工具,设置密码比较安全)
    [root@jiedian1 ~]# /etc/init.d/ricci start;chkconfig ricci on
    安装luci(随便在哪一台装都可以,最好不要安装到集群节点上)
    [root@cunchu ~]# yum -y install luci
    [root@cunchu ~]# /etc/init.d/luci start;chkconfig luci on
    web browser to https://cunchu:8084(启动后会给一个url地址,在哪台装的主机名就是哪台,访问web页面输入ip就可以)
    [root@cunchu ~]# firefox https://201.1.2.3:8084
    页面出来后,输入此台服务器的root及密码
    点击manage cl usters》create》
    集群发生的错误
    Authentication failed 身份验证错误,ricci密码有问题
    ssl connection 连接错误,检查ricci服务是否运行,防火墙,selinux
    安装完毕后,有些节点异常,显示红色,把cman和rgmanager设置为开机自启后reboot
    安装完毕后,web页面中无任何显示,在web页面中add
    在物理机配置fence,并生成配置文件后启动服务
    fence-virtd fence-virtd-libvirt fence-virtd-multicast
    [root@room1pc01 ~]# yum -y install fence-virtd fence-virtd-libvirt fence-virtd-multicast
    [root@room1pc01 ~]# fence_virtd -c
    ...
    Interface [none]: public2(改为public2)
    Backend module [checkpoint]: libvirt(改为libvirt)
    ...
    [root@room1pc01 ~]# mkdir /etc/cluster(创建密钥文件)
    [root@room1pc01 ~]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=4k count=1(创建密钥文件随机码)
    [root@room1pc01 ~]# scp /etc/cluster/fence_xvm.key 201.1.2.1:/etc/cluster/
    [root@room1pc01 ~]# scp /etc/cluster/fence_xvm.key 201.1.2.2:/etc/cluster/
    [root@room1pc01 ~]# /etc/init.d/fence_virtd start; chkconfig fence_virtd on
    在web页面配置
    [root@cunchu ~]# firefox https://201.1.2.3:8084
    点击 fence devices》add》下拉列表选择自己的fence
    点击 nodes》选择主机》add fence method》创建好后点击add fence instnce
    Domain这里要填全名rh6_node01
    点击 failover domains

    搭建高可用web集群
    资源:apache,只需要安装即可 不要启动,共享存储 使用iSCSI提供的共享存储,ip地址 对外提供服务 201.1.1.100

    安装apache(两台节点做相同的操作,分区格式化在单独一台做即可,它会共享出去)
    [root@jiedian1 ~]# yum -y install httpd
    [root@jiedian1 ~]# parted /dev/mapper/mpatha
    (parted) mklabel gpt
    (parted) mkpart primary ext4 1M 1024M
    [root@jiedian1 ~]# partprobe(加载分区)
    [root@jiedian1 ~]# mkfs.ext4 /dev/mapper/mpathap1
    [root@jiedian1 ~]# mount /dev/mapper/mpathap1 /var/www/html/
    [root@jiedian1 ~]# vim /var/www/html/index.html
    hydra
    [root@jiedian1 ~]# umount /var/www/html/(写上页面后要卸载,谁挂载由集群决定)
    在web页面配置
    [root@cunchu ~]# firefox https://201.1.2.3:8084
    点击resources》add》apache》naem随便写,其他的都删除,最后一行写3
    点击resources》add》ip addres》netmask必须写24
    点击resources》add》filesystem
    点击service groups》add》
    firefo http://201.1.1.100/(测试验证)
    ——————————————————————————————————————————————————————————————————————————————————————————

  • 相关阅读:
    SimpleAdapter的用法
    ListView中加载大量的图片
    用PreferenceActivity做一个标准的设置界面
    用代码构造PreferenceScreen
    工具类之Condition
    工具类之Mutex
    Linux初探之如何查看帮助文档自学命令[网址]
    linux基础之帮助文档---常用的命令[转载]
    Linux 下常见的四款chm查看器比较[转载+亲测可用]
    Linux(Ubuntu)下MySQL的安装与配置[转载+亲测]
  • 原文地址:https://www.cnblogs.com/Hydraxx/p/7576312.html
Copyright © 2011-2022 走看看