我需要将我的 CentOS 服务器迁移到另一个具有相同系统分布的服务器上。我还不知道除了内存和GHz之外的硬件有什么不同(发布了关于那个的单独问题)
我一直在我的原始服务器上手动编译很多库,将它们安装到标准位置并且没有记录:)。(没有人为此解雇我 - 我只是在这里浪费时间和金钱并希望 - 学到一些东西)
迁移还将涉及移动用户内容、设置权限、文件 ACL。(这里是关于移动用户帐户的问题,但没有关于 facl 的问题)
世界上有什么东西可以帮助我在新主机上重新创建野兽吗?
是否有任何工具可以以更有序的方式进行此类迁移?(预防性或更积极的工具)
显然我不是系统管理员 - 但我希望了解更多。谢谢。
关于迁移 Windows 服务器有一个类似的问题——在我的例子中是 linux。
SystemRescueCD ( http://www.sysresccd.org ) 现在包括partimage和fsarchiver。其中任何一个都可以进行磁盘到磁盘、分区到分区或磁盘到映像到磁盘的复制(如 Symantec Ghost)。fsarchiver 有点新,并且有一些更好的功能,但只是命令行。partimage 有一个基于 curses 的 gui,有一些缺点,目前似乎没有维护,但仍然运行良好。这基本上允许您将完整的磁盘映像从旧磁盘传输到新磁盘。
如果您想将配置和数据从旧服务器移动到新的干净服务器,您可能需要在 /etc 中编辑的任何内容,从任何数据库获取转储以及任何其他应用程序数据。/etc/passwd、/etc/shadow 和 /etc/group 应该可以轻松转移。用户 homedirs 也应该相对容易地转移。如果您的 ACL 在 ldap 中,我想您应该能够从一台服务器同步到另一台服务器。我不知道facl,我从来没有看过它。
如果您只是使用磁盘映像方法,则需要确保旧机器的内核可以在新机器上运行。您可能需要引导至 livecd(如 sysresccd)以在引导之前对其进行修改和构建。
如果目标磁盘至少与原始磁盘一样大,那么您可以将它们都连接到同一个系统上。然后做
dd /dev/sda /dev/sdb
,假设 sda 是原点,sdb 是目标。如果不是,则将 Live CD 弹出到目标系统中,并将文件系统设置为与它们在源主机上的相同。如果系统在同一个网络上并且您相信没有人会窥探,那么使用 FTP 将每个文件复制到新主机上,否则使用 SFTP 或 SCP。您要检查的一件事是 /etc/fstab 以确保提到的任何磁盘标签都可以被标签引用。
通常我会考虑使用 DD over Netcat 或 Partimage 来成像系统,但您留下评论说您没有对该框的物理访问权限。这会使事情变得复杂,因为您无法在不冒数据不一致的情况下对任何内容进行映像(除非您将所有数据都放在可以卸载的单独分区中)。
一种可能性是尝试将其变成虚拟机。VMWare 转换器将毫无问题地创建正在运行的 Linux 系统的映像(从我将公告板系统转换为 ESXi 系统上的虚拟机时)。转换后我只需要调整网络系统(Ubuntu)。
但是,作为虚拟机,如果您希望在以后使用它做更多事情,您可以在以后复制和重新部署系统方面获得更大的灵活性。
总是有尝试和真正的方法来打包分区,在新盒子上创建分区,从新服务器上的活动磁盘启动,安装分区,scp'ing tarball,并在它们各自的新分区上解压缩它们。或者,如果您真的很幸运,可以直接 tar 到 ssh 并在另一边即时解压缩。
我一直在使用 Clonezilla 对桌面进行映像,但绝对没有什么可以阻止它在任何机器上工作。
诀窍是获得具有足够空间来保存系统映像的附加或网络存储。如果是我,我会使用本地子网上的 NFS 来存储图像。
该过程的工作方式是关闭机器电源,然后插入 Clonezilla Live CD(这是假设您没有 clonezilla 服务器,如果有的话,您可能不会问这个问题)。Clonezilla 启动,然后让您选择是否要映像分区或整个磁盘。您可能想要做整个磁盘,因为源和目标是相同的。它将询问您要将图像存储在哪里,因此选择 NFS 服务器,然后它应该设置网络并询问服务器和目录。给它,它会通过网络将图像复制到 NFS 服务器。
当需要对新服务器进行映像时,只需执行与以前相同的操作,只是告诉 Clonezilla 您要恢复映像,然后按照上述说明进行操作。
将服务器重新映像到新硬件绝对是这里的方法,但在你这样做之前,我还要运行 sys-unconfig。简而言之 - 它是 RHEL 衍生 Linux 发行版的 sysprep。