我需要将运行 Debian 6 的现有存储服务器迁移到 HA 设置,其中包含许多 TB 数据。我不能简单地长时间关闭此服务器(毕竟需要 HA)。
我计划将此服务器迁移到 DRBD 集群。我不能为这个集群购买两台新服务器;出于成本原因,我需要重用现有服务器作为集群的成员。请记住,我一次不能关闭任何东西超过几分钟。
我准备好了一台新服务器,运行 Debian 8 作为“主服务器”。我需要使用这个“主”服务器建立一个“裂脑”集群;将所有数据从现有的旧服务器复制到集群;将现有服务切换到集群;用 Debian 8 重新配置旧服务器,然后将其添加到集群中作为“从属”,重新同步数据,最后进行冗余设置。
我已经在新机器上设置了集群,但是,如何进行?我什至无法启动 drbd 服务,因为另一个“节点”甚至还不存在......
我从以前运行良好的 drbd 配置开始……有两个可用节点。
任何帮助表示赞赏。
您可以在没有对等方且不启动 DRBD 服务的情况下启动 DRBD:
# modprobe drbd
# drbdadm create-md <res>
# drbdadm up <res>
# drbdadm primary <res> --force
-- now you can use /dev/drbdX --
Run Code Online (Sandbox Code Playgroud)
通过在现有存储上安装 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
Run Code Online (Sandbox Code Playgroud)
如果您不使用 LVM,则需要缩小文件系统以为 DRBD 的元数据腾出空间,或者使用外部元数据(在用户指南中进行了描述:https : //www.drbd.org/en/doc/users -guide-84/ch-internals#s-metadata)。
在新服务器上启动 DRBD 后,它应该开始同步您的数据。只需确保新服务器的后备磁盘大小相同或更大。