自己做了一次crorsync+pacemaker+crmsh,并配置cacti。本文没有配置过程,所有软件均使用yum方式安装,仅仅只是记录搭建过程中遇到的一些问题便于以后查阅

实验环境:

    系统:centos 7

    机器:1台虚拟机、2台实体机

    分配:一台机器配置nfs,二台机器做node,nfs共享内容为mariadb数据文件及cacti文件

    软件版本:mariadb5.5.52,cacti0.8.8b,corosync2.4.0,pacemaker1.1.15,crmsh3.0.0

    实验前准备:所有机器做好时间同步,node1和node2能够基于节点名字互相通讯以及免密码ssh登录。node1和node2修改hostname为基于FQDN格式名称,如node1.a.com。所有机器安装lamp环境,建议安装上开发组件“Development Tools”,"Server Platform Development"。修改系统网卡名称为eth0

    所有软件均用yum方式安装,过程省略。

    node1和node2安装corosync、pacemaker、crmsh、mariadb、nfs,不要启动数据库,修改/etc/my.cnf中datadir为一个统一路径

    nfs机器上装好mariadb,并做好安全初始化,创建cacti用户并授权。

    crmsh依赖于pssh,且centos 7的yum库中没有此包组,解决方法为进入/etc/yum.repo.d/

    # http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-7/network:ha-clustering:Stable.repo

    # yum repolist

    nfs机器上配置好数据库的数据存放路径并通过nfs共享,cacti也一样。

    cacti配置过程中遇到的问题:

        流量图无数据,流量显示-nan

        手动运行php /var/www/html/cacti/poller.php --force 提示结束时间要早于开始更新时间

        解决方法为删除/cacti/rra下所有文件并重新运行php /src/poller.php --force

        手动运行php /var/www/html/cacti/poller.php --force 提示时区不为UTC

        修改/etc/php.ini文件data.timezone = Asia/Shanghai,重启php

    corosync配置文件:/etc/corosync/corosync.cnf修改如下

        bindnetaddr: 192.168.3.0 (实验中的机器都是192.168.3.0网段的机器)

        mcastaddr:239.212.31.11 (广播地址可随意,只要不是默认的地址即可)

        secauth:on

        最后添加

        service {

        ver:    0

        name:    pacemaker

        use_mgmtd:yes

        }

        aisexec  {

        user:   root

        group:   root

        }

        quorum {

                   provider: corosync_votequorum

                   expected_votes: 2

                   two_node: 1

               }

        corosync-keygen  产生密钥文件,作为node1与node2通信凭证

        scp -p authkey corosync.conf  node2:/etc/corosync 将配置文件、密钥复制一份到node2

     crmsh配置集群

        crm config

        property no-quorum-policy=ignore修改法定票数设定

        property stonith-enabled=false关闭仲裁设备

        primitive webip ocf:heartbeat:IPaddr parmas ip=192.168.3.131 nic=eth0 cidr_netmask=16 op monitor interval=10s(verify会产生告警,可忽略)配置VIP

        primitive httpd service:httpd op monitor interval=10s timeout=20s op start timeout=20s op stop timeout=20s  配置httpd服务资源

        primitive mariadb systemd:mariadb op monitor interval=10s timeout=20s op start timeout=20s op stop timeout=20s  配置mariadb服务资源

        primitive nfshttpd ocf:heartbeat:Filesystem params device="192.168.3.124:/var/www/html/cacti" directory="/var/www/html/cacti" fstype="nfs" op monitor interval=20s timeout=20s op start timeout=20s op stop timeout=20s 配置cacti资源

        primitive nfsmariadb ocf:heartbeat:Filesystem params device="192.168.3.124:/data/mydata" directory="/data/mydata" fstype="nfs" op monitor interval=20s timeout=20s op start timeout=20s op stop timeout=20s 配置mariadb数据存放资源

        group cacti webip nfshttpd nfsmariadb mariadb httpd  配置组资源,可无须定义排列约束

        location cacti_on_node1 cacti 50:  node1.a.com 定义资源组倾向node1

        verify

        commit

    crmsh中遇到的问题:

        所有资源在node1运行正常,node2上mariadb无法启动。通过systemctl status mariadb查看到一条报错Failed to start Cluster Controlled mariadb。其原因是由于最初定义mariadb服务资源时使用的是service:mariadb,更换成systemd:mariadb后恢复。