![Linux 磁盘克隆:tar 与特殊克隆实用程序](https://linux22.com/image/500373/Linux%20%E7%A3%81%E7%9B%98%E5%85%8B%E9%9A%86%EF%BC%9Atar%20%E4%B8%8E%E7%89%B9%E6%AE%8A%E5%85%8B%E9%9A%86%E5%AE%9E%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
我的情况如下。我在一台主机上安装了 Debian Lenny,包括 Apache、MySQL 等。现在我希望能够反复执行相同的安装。
我能看到两个解决方案:
- 从主机创建一个大的 tar 文件并将其解压到从属机器上。
- 为此,使用一些专门的软件,例如 Clonezilla。
使用第一种方法有什么缺点吗?
PS 我想在机器上设置软件 RAID 1。我认为 Clonezilla 很难将映像复制到软件 RAID 分区,所以这意味着 tar 方法加一分。
答案1
第三个选择是放弃克隆,转而使用适当的系统配置管理工具,如 Puppet 或 Chef。对于需要长期维护的系统,克隆是一个非常糟糕的主意,因为您需要将更改应用于当前现场的所有机器,以及重新启动所有克隆主机。但是,如果您使用适当的管理工具,您只需描述您希望系统处于的状态,然后该工具会确保系统处于该状态 - 无论是“出厂全新”,还是已经投入生产多年,只需要调整配置文件。
基本上,您的新机器流程应该是:
- 使用操作系统的本机自动安装程序(di 预置效果非常好)来获得最低基础值安装的系统能够运行您的自动化工具(仅此而已);
- 运行自动化工具来根据您的喜好配置系统。
答案2
tar 不会保留某些内容 - 例如 posix ACL [尽管我怀疑你会使用它们]。看一下Debian 预植入来组织大规模的安装。
答案3
还有很多替代方案...您也可以考虑固定资产投资或者Unix 版 Ghost(G4U)例如。
你的问题是“什么是最好的?”
这个问题不太容易回答,因为这实际上取决于你需要什么或者你最喜欢什么。
使用 netinstall + 代理可以快速完成新安装。可以通过自定义打包和/或自定义脚本进行快速个性化。
有时 tar 或 rsync 副本就足够了(并且非常快),可以复制(或移动)整台机器。
无论是个人生活还是工作,我都曾经实践过这三种方法。
我建议使用:
- 安装新物理服务器(分区、RAID)时进行 FAI 或 Debian 预置/快速启动
- 使用 rsync 和/或 tar 复制或移动旧的、经过大量调整的服务器
- 创建自己的包和脚本进行定制