• pacemaker配置mariadb和nfs高可用


    本篇博客最新更新时间:2022年06月19日

    1. 概述

    本篇博客内容简述在centos7系统通过pacemaker实现mariadb高可用的部署过程。

    大致过程主要分为以下几部分:

    • 虚拟机准备。虚拟磁盘准备及挂载。
    • 双节点互信配置。磁盘格式化。
    • pacemaker已经mariadb安装
    • pacemaker的资源配置,mariadb的启动
    • 功能测试及故障模拟

    需要注意的问题总结:

    1. 共享磁盘的文件格式,必须跟操作系统一致,否则会有问题。比如centos7默认的xfs文件格式
    2. 创建虚拟IP时,比如指定用于心跳的网卡nic,否则在集群启动以后,会有Unkown error

    2. 环境准备

    1. 创建虚拟机,配置ssh互信

    在一台部署了kvm的物理机上,创建一个虚拟机。我使用了克隆模板的方式,直接获取到了2个虚拟机:node17和node18

    配置节点互信,基本操作:

    #node17执行操作
    ssh-keygen #生成密钥对
    ssh-copy-id -i .ssh/id_rsa.pub root@node18: #拷贝到节点node18
    #node18执行曹组
    ssh-keygen #生成密钥对
    ssh-copy-id -i .ssh/id_rsa.pub root@node17: #拷贝到节点node18
    

    因为我用了模板,模板里面已经生成了密钥对,并且把id_rsa.pub写入了authorized_keys,因此node17和node18已经互通

    2. 创建共享虚拟磁盘

    物理机上,通过qemu-img创建一块共享磁盘,用作数据库存储:qemu-img create -f raw mariadb-data.img 10G

    挂载虚拟磁盘到虚拟机:virsh edit node17,在<devices>标签下添加以下内容保存退出。

    对虚拟机node18做同样的操作。如果是在debian系发行版操作时,需要添加标签

    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/data/kvm/vdisks/mariadb-data.img'/>
      <target dev='vdb' bus='virtio'/>
      <shareable/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x07' function='0x0'/>
    </disk>
    

    在node17,对整个磁盘格式化:mkfs.xfs -f /dev/vdb

    注意:因为centos7默认为xfs文件系统,所以在格式化共享磁盘时也需要把磁盘设备格式化为xfs,否则会有问题

    3. 部署过程

    3.1 配置集群

    在node17和node18节点进行以下操作

    yum -y install pcs pacemaker fence-agents-all

    passwd hacluster,输入密码:liwanliang

    systemctl start pcsd && systemctl enable pcsd

    pcs cluster status,查看当前集群状态,暂无节点

    然后在在node17进行以下操作:

    pcs cluster auth node17 node18,把node17,node18添加到集群

    pcs cluster setup --start --name my_cluster node17 node18,启动集群

    3.2 配置资源

    yum -y install mariadb mariadb-server

    pcs resource create db_vip ocf:heartbeat:IPaddr2 nic=eth0 ip=192.168.80.188 cidr_netmask=32 op monitor interval=30s

    注意要配置nic,否则集群运行一段时间会报错

    pcs resource create db_data ocf:heartbeat:Filesystem device=/dev/vdb directory=/var/lib/mysql/ fstype=xfs op monitor interval=30s

    注意fstype要与操作系统一致,否则会配置失败

    pcs resource create db_srv systemd:mariadb op monitor interval=30s

    pcs resource group add db_group db_data db_vip db_srv

    pcs property set stonith-enabled=false

    4.配置nfs

    node17和node18添加虚拟磁盘的过程同上。

    pcs resource create nfs_disk ocf:heartbeat:Filesystem device=/dev/vdc directory=/opt/hpc fstype=xfs --group nfs_group
    pcs resource create nfs_server ocf:heartbeat:nfsserver nfs_shared_infodir=/opt/hpc/nfsinfo --group nfs_group
    pcs resource create nfs_exportfs ocf:heartbeat:exportfs clientspec="192.168.80.0/24" options=rw,sync,no_root_squash,no_all_squash directory=/opt/hpc fsid=0 --group nfs_group
    pcs resource create nfs_vip ocf:heartbeat:IPaddr2 nic=eth0 ip=192.168.80.187 cidr_netmask=24 --group nfs_group
    
  • 相关阅读:
    技术管理之路三、团队建设:怎么带队伍?
    技术管理之路五、管理沟通:管理的必修课!
    职场工作方法论:计划安排,时间管理的“四象限法则”
    职场工作方法论:目标管理SMART原则
    激励方法论1、马斯洛需求模型
    mybatis PageHelper 分页组件优化
    async 和 await
    spring cloud 负载均衡 平滑上下线
    vue 重新渲染组件
    spring cloud 超时整理
  • 原文地址:https://www.cnblogs.com/liwanliangblog/p/16423932.html
Copyright © 2020-2023  润新知