我们正在 FreeBSD 10 中运行一些 jail,并且已决定退役 FreeBSD 服务器并将所有 jail 迁移到 Linux 环境 Red Hat 6 或 7。
有没有一种直接的方法可以将 BSD jail 迁移到 Linux——作为可以通过 docker 运行的容器
或以任何其他方式将 BSD jail 转换为容器并再次通过 docker 拉取/运行。
还有其他方法吗?我不确定这是否真的可行,因为我试过在谷歌上阅读,但没有遇到过类似的事情。
答案1
根据您当前正在运行的服务,这可能很简单。这两个平台之间有很多工具可用。
备份您的服务器、jail 和所有数据。如果您正在使用文件系统,你可以使用和
zfs snapshot
。如果你没有 ZFS,并且使用标准 FreeBSD 文件系统,你可以使用zfs send
zfs receive
mksnap_ffs
。我希望你有合适的解决方案来备份你的数据,比如巴库拉,第一次使用有点难,但如果你犯了错误它真的很有用!列出 FreeBSD 服务器或 FreeBSD jail 上的所有服务(例如
service -le
),如果您正在使用它,请不要忘记迁移 cronjob(所有 crontabs 都存储在/var/cron/tabs
FreeBSD 上)和job。at
尝试在 RHEL 服务器上找到相同的服务,你可以使用
yum search
,新鲜港和骨。请小心执行此步骤,FreeBSD 具有最新版本的软件,RHEL 冻结其软件包集合,在做错事之前请阅读发行说明并测试配置兼容性。利用所有这些信息制作你的测试平台。
测试您的服务。
阅读日志。如果出现问题,请阅读与问题相关的 FreeBSD 和 RHEL 文档。
我不知道您的平台目前是如何配置的,但是,如果所有数据(客户、后端……)都远程存储在 SAN 或 NAS(例如 NFS、iSCSI……)上,那么迁移起来会非常容易。在这种特殊情况下,只需修改 FreeBSD 和 RHEL 服务器上的配置。
最后的建议:阅读旧日志并尝试找到其中的工作/不工作模式,然后在新的测试平台上重播它。
答案2
恐怕您必须逐个移植应用程序,正如之前提到的那样,Linux 容器和 BSD 监狱是两个完全不同的东西。对于开源应用程序来说,这应该不难,因为您可以匹配版本,然后复制配置和数据。请记住,有些东西需要调整,例如任何引用网络接口等的东西,因为它们必然会有所不同。希望 vimage 不会出现任何奇怪的网络问题,因为这会使事情变得复杂。