• CentOS7搭建keepalived+DRBD+NFS高可用共享存储


    centos7.9镜像      2台主机

    1、关闭防火墙,禁用SELinux(2台)

    1. systemctl stop firewalld
    2. setenforce 0

    2、配置hosts文件(2台)

    1. vim /etc/hosts
    2. 192.168.164.130 node1
    3. 192.168.164.140 node2

    配置2台服务器之间的免密

    1. 配置root用户免密:
    2. 主服务器
    3. ssh-keygen -f ~/.ssh/id_rsa -P '' -q
    4. ssh-copy-id node2
    5. 备服务器
    6. ssh-keygen -f ~/.ssh/id_rsa -P '' -q
    7. ssh-copy-id node1

    3、安装软件 (如果没有yum源,则需要先配置yum源)

    导入yum源

    1. rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    2. yum localinstall -y https://mirrors.tuna.tsinghua.edu.cn/elrepo/elrepo/el7/x86_64/RPMS/elrepo-release-7.0-6.el7.elrepo.noarch.rpm
    3. wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

    安装DRBD软件包

    yum install -y drbd90-utils kmod-drbd90

    启动内核模块

    1. modprobe drbd
    2. echo drbd > /etc/modules-load.d/drbd.conf

    查看

    lsmod | grep drbd

    4、配置DRBD    

    1. [root@node1 drbd.d]# egrep -v "#|^$" /etc/drbd.d/global_common.conf
    2. global {
    3. usage-count no;
    4. }
    5. common {
    6. protocol C;
    7. handlers {
    8. pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
    9. pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
    10. local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
    11. }
    12. startup {
    13. }
    14. options {
    15. }
    16. disk {
    17. on-io-error detach;
    18. }
    19. net {
    20. }
    21. }

     

    1. [root@node1 drbd.d]# cat nfs.res
    2. resource nfs {
    3. disk /dev/sdb;
    4. device /dev/drbd0;
    5. meta-disk internal;
    6. on node1 {
    7. address 192.168.164.130:7789;
    8. }
    9. on node2 {
    10. address 192.168.164.140:7789;
    11. }
    12. }

    将配置传送到node2

    scp * node2:$PWD

    5、启用DRBD

    1. 创建设备元数据
    2. [root@node1 ~]# drbdadm create-md nfs
    3. [root@node1 ~]# ssh node2 drbdadm create-md nfs
    4. 启用资源
    5. [root@node1 ~]# drbdadm up nfs
    6. [root@node1 ~]# ssh node2 drbdadm up nfs
    7. 初始设备同步
    8. [root@node1 ~]# drbdadm primary --force nfs --- 只在node1上操作

    等待一段时间进行检查同步情况

    drbdadm status nfs

    6、验证

    2个节点创建挂载点目录:mkdir /data

    主节点:mkfs.xfs /dev/drbd0
                  mount /dev/drbd0 /data

    创建测试文件

    touch /data/file{1..3}

    卸载文件系统并切换为备节点

    umount /data
    drbdadm secondary nfs  

     在从上执行以下命令确认文件

            drbdadm primary nfs
            mount /dev/drbd0 /data
            ls -l  /data
            total 0
            -rw-r--r--. 1 root root 0 Jun 10 09:43 file1
            -rw-r--r--. 1 root root 0 Jun 10 09:43 file2
            -rw-r--r--. 1 root root 0 Jun 10 09:43 file3

     启用服务
    systemctl start drbd
    systemctl enable drbd

  • 相关阅读:
    洛谷 P3128 最大流Max Flow
    DeepSpeed: 大模型训练框架 | 京东云技术团队
    SQL Server 2022 安装步骤——SQL Server设置身份验证教程
    【Swift 60秒】61 - Computed properties
    小白学Go 基础02-了解Go语言的诞生与演进
    CMT2380F32模块开发8-Base Timer例程
    常用的 linux开发的shell脚本
    C语言刷题系列——6.(递归)实现顺序输出整数
    一文入门 HTTP 协议
    [React]为什么写React组件的时候,需要先引入React?
  • 原文地址:https://blog.csdn.net/mantangjojo/article/details/127719819