我需要通过PXE启动引导多个服务器。 他们都将运行相同的ramdisk(即pxelinux.cfg目录中的“default”),然后它们都通过NFS挂载根文件系统。 然后他们对该NFS根映像执行switch_root命令。 我想使这个NFS映像只读,并为所有的服务器使用相同的,但是,然后我的服务器是非常没有价值,因为即使/ tmp是只读的。
我正在考虑将离开/ tmp,/ home以及其他任何需要永久性唯一存储的映像从NFS映像中删除,而将其从本地硬盘挂载。 这会工作吗? 如果是这样,我将如何在init脚本中做到这一点?
这在行业中是如何完成的? 我确信有机架和机架的服务器需要从单一来源进行pipe理和更新。 我不能是唯一一个想要这样做的人,对吧? 我希望单个服务器独有的所有“用户”数据位于本地硬盘上,而所有OS文件(需要定期更新等)来自PXE引导和NFS映像。
链接到这种types的服务器pipe理充足的文档将是美好的。
你想要的是某种联合文件系统 ,其中NFS导出用作只读基础,而读写覆盖表示增量。 增量可以存储在任何其他文件系统中,无论是磁盘,USB存储棒,易失性存储器还是可写的NFS导出。
Linux支持几个联合文件系统实现:
现在看来,aufs3是最好的。
Linux live CD采用类似的策略; 你可以学习他们的init脚本是如何工作的。 一个更好的例子是FAI ,PXE引导到由只读NFS共享和tmpfs映像组成的aufs根文件系统。