• 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
    
  • 相关阅读:
    [基础规范]JavaBeans规范
    leetcode 114.Flatten Binary Tree to Linked List (将二叉树转换链表) 解题思路和方法
    sql 分组取每组的前n条或每组的n%(百分之n)的数据
    D3js-API介绍【中】
    微信公众平台开发 一 账号类别与申请
    Apple Swift编程语言新手教程
    iOS中xib与storyboard原理,与Android界面布局的异同
    Scala入门到精通——第十五节 Case Class与模式匹配(二)
    使用IDA破解TraceMe.exe
    21行python代码实现拼写检查器
  • 原文地址:https://www.cnblogs.com/liwanliangblog/p/16423932.html
Copyright © 2020-2023  润新知