我需要将现有的运行 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 的元数据腾出空间,将disk
DRBD 配置中的选项设置为逻辑卷,创建 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 配置启动...有两个可用节点。
任何帮助均感激不尽。
(不太确定你这里需要什么)