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

#!/bin/bash# 设置环境变量
NODE1_IP=192.168.41.101
NODE2_IP=192.168.41.102
DRBD_RESOURCE_NAME=mydrbd
DRIVE=/dev/sdb# 安装必要的软件包
apt-get update
apt-get install -y drbd-utils# 创建DRBD资源配置文件
cat <<EOF > /etc/drbd.d/${DRBD_RESOURCE_NAME}.res
resource ${DRBD_RESOURCE_NAME} {protocol C;startup {wfc-timeout 0;    # 设为'0'以进行无限期的等待连接。degr-wfc-timeout 120;  # 如果AllPrimary,等待120秒。}net {allow-two-primaries yes;  # 允许双主模式after-sb-0pri discard-zero-changes;after-sb-1pri discard-secondary;after-sb-2pri call-pri-lost-after-sb;}on node1 {device /dev/drbd0;disk ${DRIVE};address ${NODE1_IP}:7788;meta-disk internal;}on node2 {device /dev/drbd0;disk ${DRIVE};address ${NODE2_IP}:7788;meta-disk internal;}
}
EOF# 创建元数据
drbdadm create-md ${DRBD_RESOURCE_NAME}# 启动DRBD资源
drbdadm up ${DRBD_RESOURCE_NAME}# 等待节点同步完成
echo '请在备用节点上运行对应脚本,然后在主节点上运行drbdadm -- --overwrite-data-of-peer primary mydrbd启动主模式'

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

bash

#!/bin/bash# 设置环境变量
NODE1_IP=192.168.41.101
NODE2_IP=192.168.41.102
DRBD_RESOURCE_NAME=mydrbd
DRIVE=/dev/sdb# 安装必要的软件包
apt-get update
apt-get install -y drbd-utils# 创建DRBD资源配置文件
cat <<EOF > /etc/drbd.d/${DRBD_RESOURCE_NAME}.res
resource ${DRBD_RESOURCE_NAME} {protocol C;startup {wfc-timeout 0;    # 设为'0'以进行无限期的等待连接。degr-wfc-timeout 120;  # 如果AllPrimary,等待120秒。}net {allow-two-primaries yes;after-sb-0pri discard-zero-changes;after-sb-1pri discard-secondary;after-sb-2pri call-pri-lost-after-sb;}on node1 {device /dev/drbd0;disk ${DRIVE};address ${NODE1_IP}:7788;meta-disk internal;}on node2 {device /dev/drbd0;disk ${DRIVE};address ${NODE2_IP}:7788;meta-disk internal;}
}
EOF# 创建元数据
drbdadm create-md ${DRBD_RESOURCE_NAME}# 启动DRBD资源
drbdadm up ${DRBD_RESOURCE_NAME}

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

bash

chmod +x node1_setup_drbd.sh
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端口进行通讯。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/803721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用API有效率地管理Dynadot域名,确认域名转移流程状态

关于Dynadot Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮…

虚拟网络设备与网络安全:深入分析与实践应用

在数字化时代&#x1f4f2;&#xff0c;网络安全&#x1f512;成为了企业和个人防御体系中不可或缺的一部分。随着网络攻击的日益复杂和频繁&#x1f525;&#xff0c;传统的物理网络安全措施已经无法满足快速发展的需求。虚拟网络设备&#x1f5a7;&#xff0c;作为网络架构中…

k8s集群部署elasticsearch集群和elasticsearch集群设置用户密码

目录 一、背景&#xff1a; 二、部署elasticsearch集群&#xff1a; 1、部署elasticsearch集群&#xff1a; 2、验证elasticsearch集群是否正常&#xff1a; 三、部署elasticsearch集群并设置用户密码 1、生产elastic集群所需的证书&#xff1a; 2、重新建构elasticsearc…

计算机网络——39密钥分发和证书

密钥分发和证书 可信赖中介 对称密钥问题 相互通信的实体如何分享对称密式的密钥&#xff1f; 解决办法 trusted key distribution center(KDC) 在实体之间扮演可信赖中介的角色 公共密钥问题 当Alice获得Bob的公钥(from web site,e-mail,diskette)&#xff0c;她如何知…

16、普通数组-除自身以外的数组乘积

思路 通过辅助数组的方式 第一个从左向右的辅助数组乘积第二次从右向左的辅助数组乘积对于0<i<N-1 他的数组乘积就是左边的数组乘积*右边数组乘积然后再分类讨论i0 就是右边1-N-1的数组乘积iN-1就是左边从N-2到0的数组乘积 代码如下&#xff1a; class Solution {pub…

C# 优雅的处理 TCP 数据

前言 Tcp是一个面向连接的流数据传输协议&#xff0c;用人话说就是传输是一个已经建立好连接的管道&#xff0c;数据都在管道里像流水一样流淌到对端。 那么数据必然存在几个问题&#xff0c;比如数据如何持续的读取&#xff0c;数据包的边界等。 Nagles算法 Nagle 算法的核…

电商技术揭秘十五:数据挖掘与用户行为分析

相关系列文章 电商技术揭秘一&#xff1a;电商架构设计与核心技术 电商技术揭秘二&#xff1a;电商平台推荐系统的实现与优化 电商技术揭秘三&#xff1a;电商平台的支付与结算系统 电商技术揭秘四&#xff1a;电商平台的物流管理系统 电商技术揭秘五&#xff1a;电商平台…

vue2 使用vue-org-tree demo

1.安装 npm i vue2-org-tree npm install -D less-loader less安装 less-loader出错解决办法&#xff0c;直接在package.json》devDependencies下面加入less和less-loader版本&#xff0c;然后执行npm i &#xff0c;我用的nodejs版本是 16.18.0&#xff0c;“webpack”: “^4…

ubuntu 18.04 安装 OpenSSL libssl.so.1.1

在 Ubuntu 18.04 上安装 OpenSSL 的 libssl.so.1.1 库&#xff0c;通常意味着您需要安装 OpenSSL 1.1.x 版本或更高版本&#xff0c;因为 libssl.so.1.1 是 OpenSSL 1.1.x 系列的一部分。以下是安装 OpenSSL 1.1.x 并确保 libssl.so.1.1 可用的步骤&#xff1a; 1. 更新软件包…

群集服务器与主机托管区别

1、首先什么群集服务器? 通俗的来说,它是指很多台服务器把它们集中在一起来进行同一种服务&#xff0c;而在我们在客户端看&#xff0c;却只能看见一个服务器;集群服务器也可以由很多个的计算机并行去计算&#xff0c;这样可以获得非常高的计算速度;同时也可以用很多个计算机来…

Tomcat SSL/TLS Configuration

see https://tomcat.apache.org/tomcat-9.0-doc/ssl-howto.html//1:use jdk keytool A:Generate Keystore 01: C:\Users\User>keytool -genkey -alias tomcat -keyalg RSA -keystore d:/ks/tomcatKeyStore //也可参考:keytool -genkeypair -alias "tomcat" -k…

maven的settings.xml、pom.xml配置文件

1、配置文件 maven的配置文件主要有 settings.xml 和pom.xml 两个文件。 其中在maven安装目录下的settings.xml&#xff0c;如&#xff1a;D:\Program Files\apache-maven-3.6.3\conf\settings.xml 是全局配置文件 用户目录的.m2子目录下的settings.xml&#xff0c;如&#…

【Livox激光MID-360】调试记录

官方git安装Livox-SDK2和ROS Driver 2。 修改驱动的雷达ip 打开ROS Driver2工程&#xff0c;修改livox_ros_driver2/config/MID360_config.json文件内的参数中ip部分&#xff0c;cmd_data_ip改为192.168.1.50&#xff0c;下面的ip改为雷达的ip&#xff0c;192.168.1.1** 最后…

微服务12要素

"微服务12要素"是一组指导原则&#xff0c;旨在帮助组织设计、构建和部署微服务架构。这些原则由Martin Fowler和James Lewis在他们的文章中提出&#xff0c;以帮助开发人员更好地理解和应用微服务架构。 以下是这12个要素的简要概述&#xff1a; 基于业务能力组织…

番茄 abogus rpc调用

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章…

如何将h5网页打包成iOS苹果IPA文件

哈喽&#xff0c;大家好呀&#xff0c;淼淼又来和大家见面啦&#xff0c;最近有很多小伙伴都被难住了&#xff0c;是什么问题给他们都难住了呢&#xff0c;许多小伙伴都说想要把h5网页打包成iOS苹果IPA文件&#xff0c;但是却不知道具体怎么操作&#xff0c;是怎么样的一个流程…

探秘大模型:《提示工程:技巧、方法与行业应用》背后的故事

提示工程是一种新兴的利用人工智能的技术&#xff0c;它通过设计提示引导生成式 AI 模型产生预期的输出&#xff0c;来提升人与 AI 的互动质量&#xff0c;激发 AI 模型的潜力&#xff0c;提升AI的应用水平。 为了让每一个人都拥有驱动大模型的能力&#xff0c;以微软全球副总裁…

题目 2915: 接水问题

题目描述: 学校里有一个水房&#xff0c;水房里一共装有 m 个龙头可供同学们打开水&#xff0c;每个龙头每秒钟的供水量相等&#xff0c;均为 1。 现在有 n 名同学准备接水&#xff0c;他们的初始接水顺序已经确定。将这些同学按接水顺序从 1 到 n 编号&#xff0c;i号同学的…

练习题(2024/4/9)

1 下一个排列 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如&#xff0c;arr [1,2,3] &#xff0c;以下这些都可以视作 arr 的排列&#xff1a;[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更…

2.Go的基本语法-指针、结构体、Map

1.指针 1.1.常规定义 func test24() {var a int 10var b *intb &afmt.Printf("a 的 值%d\n", a)fmt.Printf("a 的 指针地址%x\n", &a)fmt.Printf("b 的 值%d\n", *b)fmt.Printf("b 的 指针地址%x\n", b)打印var c *string…