最近运维同事提出了一个需求:
在上层,我们目前有一个中央配置中心(依托于我们内部的CMDB)用于管理DHCP服务器和PXE相关的的配置和策略(运维平台),以便在需要时可以动态调整;
在下层一个大型数据中心网络中,需要设计一个能够支持十万级节点的DHCP服务器系统,同时还需要兼具PXEServer用于提供PXE启动服务(包括:裸金属装机、无盘启动)。
这个系统需要具备高可用性、可扩展性和负载均衡能力,以确保在高并发环境下能够稳定运行。
在这个量级,传统的单体架构已经无法满足需求,因此需要采用分布式架构来实现dhcp服务的可扩展性和高可用性。
目前,有两类ip分配:纯动态:在地址池中随机分配;纯静态:根据mac地址分配固定ip。
Pxe server:对于特定mac+来自pxe client的请求,我们还需要修改本机的配置文件(grub)用于实现特定配置(如ubuntu,windows,centos)pxe启动,这又涉及到了文件的并发读写。
整体系统实现思路很简单,但要保证一致性还是有一定难度的,下面我将详细描述这个系统的设计思路。