当前位置:   article > 正文

DRBD双主模式自动化安装部署脚本

DRBD双主模式自动化安装部署脚本

DRBD(Distributed Replicated Block Device)是一种分布式存储系统,它允许在网络中的两个或多个节点之间复制数据。在本例中,我们为两个节点(node1和node2)设置DRBD,使其运行在双主模式下。

注意:

  • 确保在运行脚本之前,两个节点都预先安装了DRBD,并且内核模块已经正确加载。
  • 确保两个节点上都具有root权限或具有执行相应命令的权限。
  • 确保两个节点可以通过SSH互相通信,并配置了密钥认证以免脚本执行时需要密码交互。
  • 确保在运行脚本之前,DRBD未在节点上运行,并且存储设备(本示例中假设为/dev/sdb)未被挂载或用作其他目的。

以下是为DRBD设置的两个脚本,一个用于主节点,另一个用于备用节点。

主节点脚本(node1_setup_drbd.sh):
保存为 node1_setup_drbd.sh 并在node1(192.168.41.101)上运行此脚本。

bash

  1. #!/bin/bash
  2. # 设置环境变量
  3. NODE1_IP=192.168.41.101
  4. NODE2_IP=192.168.41.102
  5. DRBD_RESOURCE_NAME=mydrbd
  6. DRIVE=/dev/sdb
  7. # 安装必要的软件包
  8. apt-get update
  9. apt-get install -y drbd-utils
  10. # 创建DRBD资源配置文件
  11. cat <<EOF > /etc/drbd.d/${DRBD_RESOURCE_NAME}.res
  12. resource ${DRBD_RESOURCE_NAME} {
  13. protocol C;
  14. startup {
  15. wfc-timeout 0; # 设为'0'以进行无限期的等待连接。
  16. degr-wfc-timeout 120; # 如果AllPrimary,等待120秒。
  17. }
  18. net {
  19. allow-two-primaries yes; # 允许双主模式
  20. after-sb-0pri discard-zero-changes;
  21. after-sb-1pri discard-secondary;
  22. after-sb-2pri call-pri-lost-after-sb;
  23. }
  24. on node1 {
  25. device /dev/drbd0;
  26. disk ${DRIVE};
  27. address ${NODE1_IP}:7788;
  28. meta-disk internal;
  29. }
  30. on node2 {
  31. device /dev/drbd0;
  32. disk ${DRIVE};
  33. address ${NODE2_IP}:7788;
  34. meta-disk internal;
  35. }
  36. }
  37. EOF
  38. # 创建元数据
  39. drbdadm create-md ${DRBD_RESOURCE_NAME}
  40. # 启动DRBD资源
  41. drbdadm up ${DRBD_RESOURCE_NAME}
  42. # 等待节点同步完成
  43. echo '请在备用节点上运行对应脚本,然后在主节点上运行drbdadm -- --overwrite-data-of-peer primary mydrbd启动主模式'

备用节点脚本(node2_setup_drbd.sh):
保存为 node2_setup_drbd.sh 并在node2(192.168.41.102)上运行此脚本。

bash

  1. #!/bin/bash
  2. # 设置环境变量
  3. NODE1_IP=192.168.41.101
  4. NODE2_IP=192.168.41.102
  5. DRBD_RESOURCE_NAME=mydrbd
  6. DRIVE=/dev/sdb
  7. # 安装必要的软件包
  8. apt-get update
  9. apt-get install -y drbd-utils
  10. # 创建DRBD资源配置文件
  11. cat <<EOF > /etc/drbd.d/${DRBD_RESOURCE_NAME}.res
  12. resource ${DRBD_RESOURCE_NAME} {
  13. protocol C;
  14. startup {
  15. wfc-timeout 0; # 设为'0'以进行无限期的等待连接。
  16. degr-wfc-timeout 120; # 如果AllPrimary,等待120秒。
  17. }
  18. net {
  19. allow-two-primaries yes;
  20. after-sb-0pri discard-zero-changes;
  21. after-sb-1pri discard-secondary;
  22. after-sb-2pri call-pri-lost-after-sb;
  23. }
  24. on node1 {
  25. device /dev/drbd0;
  26. disk ${DRIVE};
  27. address ${NODE1_IP}:7788;
  28. meta-disk internal;
  29. }
  30. on node2 {
  31. device /dev/drbd0;
  32. disk ${DRIVE};
  33. address ${NODE2_IP}:7788;
  34. meta-disk internal;
  35. }
  36. }
  37. EOF
  38. # 创建元数据
  39. drbdadm create-md ${DRBD_RESOURCE_NAME}
  40. # 启动DRBD资源
  41. drbdadm up ${DRBD_RESOURCE_NAME}

保存脚本之后,请将它们分别标记为可执行文件

bash

  1. chmod +x node1_setup_drbd.sh
  2. chmod +x node2_setup_drbd.sh

然后,在Node1先执行第一个脚本(node1_setup_drbd.sh),在Node2执行第二个脚本(node2_setup_drbd.sh)。

在两个节点上创建配置文件和元数据后,您需要在两个节点上分别设置DRBD资源为主模式,可以通过以下命令进行:

bash

drbdadm -- --overwrite-data-of-peer primary mydrbd

请确保在执行以上操作前,您精确理解每一步骤的作用,尤其是在生产环境下使用时。还需要调整防火墙设置,以允许两个节点上的7788端口进行通讯。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/403632
推荐阅读
相关标签
  

闽ICP备14008679号