如果您试图通过networking安装同时安装500个Linux系统,瓶颈将是NFS / HTTP / FTP或任何服务器存放安装所需的文件。
国际海事组织,这只能通过添加更多的安装服务器,然后循环它们来解决。
有没有更好的解决这个问题? 像“P2P Linux安装”?
更新:我需要更具体地描述我的情况。 目前我正在使用kickstart + NFS部署RHEL。 当我尝试同时部署500个RHEL时,NFS服务器将有巨大的stream量,并使每个安装过程缓慢。 设置更多的NFS服务器是一个解决scheme,但我不认为这是一个好的。
这通常是组播成像出现的地方。 就像Clonezilla或者ghost一样,它支持发送数据多播,这样可以让你一次把图像推送到所有的500个系统,其速度基本上与将图像推送到1个系统的速度相同。
岩石 Linux集群发行版的雪崩安装程序 ,基于Bittorrent并且很好地缩放。 它也把你从PXE启动到运行系统。 虽然,你被绑在使用岩石(基于CentOS的)和做事的方式。
SystemImager也可以使用bit-torrent来加快大规模部署。
我不会使用多播,因为这使事情变得更加复杂。 首先,尽量减lessNFSstream量,这意味着得到你需要通过HTTP安装的软件包。 如果软件包存储库的Web服务器过载,请使用其中的两个,并通过为每个客户端分配不同的服务器(例如ip address modulo 2)来分配负载。
如果更多的nfsd守护进程将被启动,你的NFS服务器可能会更快。 通常只有8人开始。
我只使用FAI测量了Debian安装的stream量(通过PXE,NFS,HTTP)。 当安装4.2GB的软件时,通过networking发送了1.3GB的HTTP(所有的软件包)和100MB的NFS通信(安装时的nfsroot)。 这是一个安装客户端。 所以我想减lessNFSstream量和分配HTTPstream量会有很大的帮助。
服务器或绑定服务器网卡中的10 GB网卡也有帮助。 而且,我认为不需要同时安装所有的机器,而是在很短的时间内安装所有的机器。
但无论如何,首先你必须分析你的瓶颈是什么。 所以做一些testingunsig 20机器例如
我不知道使用bittorrent或多播的方式,除非您能切换到部署映像而不是执行安装。 如果你不是,这是解决这个问题的一种方法。
让我们更仔细地思考瓶颈。 CPU不是瓶颈; NFS不需要太多的处理能力。 磁盘不是瓶颈; 安装RHEL所需的文件不会超过几个GB,因此它们应该很容易地放在NFS服务器的RAM中。 networking吞吐量绝对是一个瓶颈, 假设正在安装的系统平均每秒要求50兆位,那么您需要至less25千兆位的带宽来支持500次安装。 这是很多网卡,或者一些非常昂贵的网卡。
这并不意味着你不应该在理性的情况下通过投入更多的硬件来提高性能。 在NFS服务器中获取尽可能多的NIC并将其绑定。 如果你能certificate时间和成本,build立更多的NFS服务器。 当然,确保你的NFS服务器调好了 。
无论您是否添加硬件,都可以通过避免networking拥塞和平衡吞吐量中的高峰和低谷来查看性能是否有所提高。 为此,请将安装分成多个批次。 执行一次安装并绘制安装过程中的吞吐量。 查看该图并确定可以同时启动多less次安装,以及何时启动更多批次的最佳时间。
例如,假设您可以从NFS服务器传输4Gb / s。 也许你会发现安装程序正在下载的时候,第一分钟的安装会拷贝100Mb / s,然后在安装程序像分区一样工作的时候,它不复制一分钟的数据,然后复制50Mb / s三分钟,安装程序下载和解压缩包。 知道这一点,你可以计算出你可以开始40次安装,等待一分钟,再开始40次安装,等待5分钟,然后重复这个过程。
关于文件的大规模部署,已经有twitter的基础上的一个解决scheme,基于bittorent: 谋杀 。
如果您正在讨论在您的服务器上安装操作系统,那么显然不能用这个解决scheme。