要在 Ubuntu 22.04 上部署 Keepalived 和 DRBD 实现双机热备,您可以按照以下步骤进行:

步骤 1: 安装必要的软件包

在两台服务器(ServerA 和 ServerB)上安装 DRBD 和 Keepalived。首先,更新包列表并安装所需的软件包:

1
2
sudo apt update
sudo apt install -y drbd-utils drbd-kernel keepalived

步骤 2: 磁盘分区

对于要使用的磁盘(例如 /dev/sdb),执行分区但不需要格式化:

1
sudo fdisk /dev/sdb

在分区完成后,使用 partprobe 更新内核分区表缓存。

步骤 3: 配置 DRBD

创建 DRBD 配置文件,通常位于 /etc/drbd.d/ 目录下。例如,创建名为 drbd.res 的文件:

1
sudo vi /etc/drbd.d/drbd.res

内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
resource r1 { #这个r1是定义资源的名字
protocol C;
on ServerA { #on开头,后面是主机名称
device /dev/drbd0; #drbd设备名称
disk /dev/sdb1; #drbd0使用的磁盘分区为sdb1
address 192.168.1.240:7789; #设置drbd监听地址与端口
meta-disk internal;
}
on ServerB { #on开头,后面是主机名称
device /dev/drbd0; #drbd设备名称
disk /dev/sdb1; #drbd0使用的磁盘分区为sdb1
address 192.168.1.241:7789; #设置drbd监听地址与端口
meta-disk internal;
}
}

步骤 4: 初始化 DRBD 资源

在两台服务器上初始化 DRBD 资源:

1
sudo drbdadm create-md r1

启动 DRBD 服务,并设置开机启动:

1
2
sudo systemctl start drbd
sudo systemctl enable drbd

检查 DRBD 是否正在监听端口:

1
sudo netstat -anput | grep 7789

步骤 5: 设置主备角色

默认情况下,两个 DRBD 节点都会处于 Secondary 状态。在主节点上设置为主节点:

1
sudo drbdadm primary --force r1

检查状态:

1
sudo drbdadm status r1

步骤 6: 格式化并挂载 DRBD 设备

格式化 DRBD 设备(可以选择适合的文件系统如 ext4 或 xfs):

1
sudo mkfs.ext4 /dev/drbd0

创建挂载点并挂载设备:

1
2
sudo mkdir /data
sudo mount /dev/drbd0 /data/

步骤 7: 配置 Keepalived

编辑 Keepalived 配置文件 /etc/keepalived/keepalived.conf。以下是示例配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
vrrp_instance VI_1 {
state MASTER # 在主节点设置为 MASTER,在备节点设置为 BACKUP
interface ens33 # 接口名
virtual_router_id 51
priority 100 # 在主节点设置为 100,在备节点设置小于 100
advert_int 1
authentication {
auth_type PASS
auth_pass your_password
}
virtual_ipaddress {
192.168.1.239 # 虚拟IP地址
}
}

步骤 8: 启动 Keepalived

启动 Keepalived 服务并设置开机启动:

1
2
sudo systemctl start keepalived
sudo systemctl enable keepalived

步骤 9: 测试主备切换

测试主备切换功能。在主节点上模拟故障,观察备节点是否接管虚拟IP。恢复主节点后,观察是否能自动切换回主节点。

以上步骤提供了在 Ubuntu 22.04 上部署 Keepalived 和 DRBD 实现双机热备的基本流程。请根据实际需求调整配置,并参考官方文档获取更多细节和技术支持。