仅使用一个节点设置 DRBD

仅使用一个节点设置 DRBD

我需要将现有的运行 Debian 6 的存储服务器(包含许多 TB 的数据)迁移到 HA 设置。我不能长时间关闭此服务器(毕竟需要 HA)。

我计划将此服务器迁移到 DRBD 集群。我无法为该集群购买两台新服务器;出于成本原因,我需要重新使用现有服务器作为集群的成员。请记住,我不能一次关闭任何服务器超过几分钟。

我已经准备好了一台新服务器,运行 Debian 8 作为“主服务器”。我需要使用这个“主”服务器设置一个“裂脑”集群;将所有数据从现有的旧服务器复制到集群;将现有服务切换到集群;使用 Debian 8 重新配置旧服务器,然后将其作为“从服务器”添加到集群,重新同步数据,最后进行冗余设置。

我已经在新机器上设置了集群,但是,该怎么做呢?我甚至无法启动 drbd 服务,因为另一个“节点”甚至还不存在……

我从以前运行良好的 drbd 配置启动...有两个可用节点。

任何帮助均感激不尽。

答案1

您可以在没有同伴的情况下启动 DRBD,也无需启动 DRBD 服务:

# modprobe drbd
# drbdadm create-md <res>
# drbdadm up <res> 
# drbdadm primary <res> --force
-- now you can use /dev/drbdX --

您可以通过在现有存储上安装 DRBD,使用 DRBD 从现有服务器复制到新服务器。

如果您的数据当前位于 LVM 上,您可以卸载逻辑卷,扩大逻辑卷(不要扩大文件系统)以便在设备末端为 DRBD 的元数据腾出空间,将diskDRBD 配置中的选项设置为逻辑卷,创建 DRBD 的元数据,然后强制它成为主节点(有或没有对等节点)。DRBD 需要多少空间来存储元数据的经验法则是每 1TB 数据需要 32MB。它看起来像这样(假设 1TB LV):

# umount /dev/vg_name/lv_name
# lvextend -L +32M /dev/vg_name/lv_name
# drbdadm create-md <res>
-- will warn you if it finds existing data at the end of the device --
# drbdadm up <res> 
# drbdadm primary <res> --force

如果您不使用 LVM,则需要缩小文件系统以便为 DRBD 的元数据腾出空间,或者使用外部元数据(用户指南中描述:https://www.drbd.org/en/doc/users-guide-84/ch-internals#s-metadata)。

在新服务器上启动 DRBD 后,它应该会开始同步数据。只需确保新服务器的备份磁盘大小相等或更大即可。

答案2

编辑:如果您使用的是 Proxmox,则这些命令适用于您。如果没有,则仍使用类似的过程。

您无法创建单节点集群并从另一台计算机迁移所有数据,因为没有其他计算机可以迁移到。需要至少有 2 个节点与 DRBD 连接才能迁移数据。

您可以使用命令创建集群pvecm create <clustername>。在要将服务器移动到的新计算机上执行此操作。然后,您必须将带有现有服务器的旧计算机添加到集群中。为此,在创建集群的旧计算机上,键入pvecm add <nodename>。现在您将在集群中拥有两个节点。

设置 DRBD 的其余部分,您将能够迁移服务器。

此外,了解您使用的发行版也会很有帮助:)

为了澄清起见,我在你的问题的每个段落后面都添加了一些评论。请让我知道这是否有帮助!

我需要通过添加另一台机器将现有服务器迁移到 DRBD。

我需要使用 DRBD 将现有服务器迁移到另一台机器

因此,我需要在新系统上创建一个“单节点” drbd 集群,将所有现有数据迁移到“集群”,然后将旧服务器重新配置为集群的成员。

因此,我需要在新机器上创建一个集群,将旧机器添加到集群中,并在两台机器之间配置 DRBD。(出于学习目的,您可以在旧机器或新机器上创建集群。集群没有“主机”信息)

我已经在新机器上设置了集群,但是,该怎么做呢?我甚至无法启动 drbd 服务,因为另一个“节点”甚至还不存在……

pvecm add <ip address of new machine >通过在旧机器上运行将旧机器添加到集群。如果您收到有关 ssh 密钥的错误,请发表评论。我有办法解决这个问题。

我从以前运行良好的 drbd 配置启动...有两个可用节点。

任何帮助均感激不尽。

(不太确定你这里需要什么)

相关内容