如何从单个 NFS 映像以 PXE 方式启动多台服务器?

如何从单个 NFS 映像以 PXE 方式启动多台服务器?

我需要通过 PXE 启动多台服务器。它们都将运行相同的 ramdisk(即 pxelinux.cfg 目录中的“默认”),然后它们都通过 NFS 挂载根文件系统。然后它们对该 NFS 根映像执行 switch_root 命令。我想将此 NFS 映像设为只读,并对所有服务器使用同一个映像,但这样我的服务器就毫无用处了,因为即使 /tmp 也是只读的。

我正在考虑将 /tmp、/home 和其他需要持久唯一存储的目录从 NFS 映像中移除,而是从本地硬盘安装它们。这样可行吗?如果可行,我该如何在 init 脚本中执行此操作?

业界是如何做到这一点的?我确信有很多机架和机架的服务器都需要从单一来源进行管理和更新。我不可能是唯一一个想这样做的人,对吧?我希望所有特定于单个服务器的“用户”数据都位于本地硬盘上,并且所有操作系统文件(需要定期更新等)都来自 PXE 启动和 NFS 映像。

关于此类服务器管理的大量文档的链接将会很棒。

答案1

你想要的是某种联合文件系统,其中 NFS 导出用作只读基础,读写覆盖表示增量。增量可以存储在任何其他文件系统中,无论是磁盘、USB 棒、易失性存储器还是可写的 NFS 导出。

Linux 支持几种联合文件系统实现:

看来 aufs3 现在更受青睐。

Linux Live CD 采用类似的策略;您可以研究它们的初始化脚本是如何工作的。一个更好的例子是固定资产投资,通过 PXE 启动到由只读 NFS 共享和 tmpfs 映像组成的 aufs 根文件系统。

相关内容