如何在 ESXi 上迁移超大的加密服务器

Whi*_*nis 5 debian vmware-esxi live-migration

所以,我让自己陷入了一个特殊的困境,并看到了一些解决我的问题的方法,但我错过了两者之间的一些部分。

我的问题的基础是我有一个旧的 ESXi 托管服务器,其中包含一些关键的 debian 虚拟机和一个新的 ESXi 服务器,我想托管这些虚拟机。服务器位于不同的数据中心,虽然 VM 的实际使用大小仅为几 Gbs,但它们每个都设置为加密的 LVM,因此 ESXi 将它们视为完全填充的 3tb 驱动器。理想情况下,我想创建这些 VM 的非关键部分的副本,然后在某个时间点宣布停机并冻结它们并转移关键部分。如果光盘没有加密,我可以只缩小驱动器,但我的理解是,要缩小它们,我需要关闭不太理想的服务器。因此,这是我看到的我可以走的路。

  1. 手动传输每个 3tb VMDK 文件(非常慢)
  2. 有停机时间并调整大小以使传输更好(停机时间不理想)
  3. 使用 DD、sfdisk、LVM 工具和转储的某种组合将内容转移到新的 VM

我很想使用 3,但老实说,我不确定我将如何执行此操作或执行此操作的最佳方式,以保留 LVM 和加密设置。

Whi*_*nis 1

所以,这是P2V失败后最好的场景。

  1. 使用有效的 LVM 加密在目标上创建副本 VM。
  2. 创建第二个VM并将加密的LVM挂载到/mnt

    Important so that the server itself is not running
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在 root 用户的服务器之间复制密钥以防止访问问题
  4. 运行以下命令

    rsync -aHxvK --numeric-ids --progress --exclude=/etc/fstab --exclude=/etc/crypttab --exclude=/etc/initramfs-tools/conf.d/* --exclude=/etc/network/* --exclude=/mnt/* --exclude=/dev/* --exclude=/proc/* --exclude=/sys/* --exclude=/tmp/* --exclude=/boot/* --exclude=/root/*   root@1.2.3.4:/* /mnt/
    
    Run Code Online (Sandbox Code Playgroud)

这将复制大部分未更改的文件,并为您提供服务器的功能“副本”。大多数 rsync 都在一些在线指南中显示,但我发现加密卷需要 /etc/crypttab,或者它无法启动并且需要 initramfs,或者您在启动时控制台垃圾邮件

完成此操作后,您可以安排短暂的停机时间并关闭数据库和 Web 服务器等主要服务,并在启动端点并将其传输到新服务器之前对这些目录进行最终传输。