我正在研究如何改变服务器集群的网络启动部署方式。我担心的是网络传输,因为并非所有盒子都靠近启动服务器,而且网络可能会很慢。
机器有普通磁盘等,我们在它们本地存储数据(数据库内容等)。
是否存在某种机制可以避免在没有必要的情况下复制完整的图像,例如本地缓存文件并仅验证校验和等?
任何指点或想法都值得赞赏!
答案1
我们假设您使用 PXE 启动 Linux 系统来加载内核/initrd 并使用 NFS 挂载文件系统。
您可以将 PXE 文件(配置、映像、内核、initrd)缓存在靠近通过 PXE 启动的机器的其他 tftp 服务器上。这样,当发生任何变化时,您只需要 rsync 即可。
对于 NFS 文件系统,您可以不时将它们 rsync 到本地存储,并使用 aufs 将本地和远程文件系统合并为一个。
答案2
我的观点是,PXE 是网卡固件的一部分,因此它对磁盘、文件系统等一无所知。因此无法在本地缓存启动文件。
如果您有多个网卡并且担心网络响应缓慢,您可以使用额外网络进行启动,使用并行网络进行计算。但我认为,启动文件对于普通网络来说并不大,因此传输启动所需的文件不会有问题。