服务器装机(三)带外网络和服务器配置

云计算分享者 2024-02-24 02:14:02

我是一名云平台IAAS层的运维开发工程师.在本系列文章中,我会介绍典型数据中心服务器装机的方方面面,欢迎大家关注.

本系列已经发布的文章,欢迎大家阅读

0x00 装机系统典型带外网络配置

在前面的两篇文章中介绍了服务器装机系统整体架构和带内装机网络及其dhcp服务器配置.

下图为典型数据中心服务器带外网络架构.带外网络同样需要接入交换机和汇集交换机.一般带外网络流量较小,可以使用低配甚至傻瓜交换机.带外接入交换机和带外汇集交换机一般直接透传VLAN即可,网关配置在带外汇集交换机上.

如果有多组带外接入交换机,可以让所有汇集交换机和接入交换机都透传同一个VLAN,这样带外网络直接被拉成一个扁平二层网络,所有服务器带外均在同一个二层可达网络中,不用进行dhcp relay.

带外汇集交换机只需要进行网关配置,需要的核心配置如下

interface Vlan-interface4 #带外使用的VLAN ip address 192.168.20.1 255.255.255.0 #带外使用的网关和掩码0x01 带外dhcp服务器failover关键配置

对于服务器带外,如果我们只使用一个不带有高可用的dhcp服务器,当这个dhcp服务器宕机了,所有服务器的带外IP在租约过期之后不能成功续约,会导致服务器带外就没有IP地址.所以需要给带外dhcp服务器配置上failover高可用.

对于服务器带内,一般使用静态IP+主机名注册DNS的方式来管理,dhcp服务器只在装机时使用,可以不配置failover高可用.

dhcpd failover可以让几台dhcp服务器相互协作,共同管理一个ip池,当任何一个dhcp服务器宕机之后,其分配出去的IP可以被另外一个dhcp服务器接管.整个接管过程对client无感.

dhcpd failover大部的配置可以从如下dhcpd官方文档中相关部分找到.

https://kb.isc.org/docs/isc-dhcp-41-manual-pages-dhcpdconf#dhcp-failover

dhcp failover区分架构dhcp服务器区分为primary和secondary,只能有一个primary,可以有多个secondary,对于大部分场景,一个primary和一个secondary就可以了.

对于primary,其需要的配置如下(图中的带外装机服务器1).相比于不带failover的配置,多了failover peer字段,里面配置了自己的角色以及自己和对端的连接地址和端口,这样primary和secondary才能正常连接到对方进行协作.

ping-check true; #分配ip之前使用ping检测ip是否被占用ping-timeout 3;default-lease-time 7200; #租约时间2小时max-lease-time 7200;# 在primary和secondary都需要定义一个failover peer,并作用到相同的pool上failover peer "foo" { primary;# 设置两个服务器直接维持连接的端口,这样两个dhcp服务器才知道对方是否活着 address 192.168.20.2; port 600; peer address 192.168.20.3; peer port 600; max-response-delay 60; max-unacked-updates 10; mclt 3600;# 两个server均分的pool split 128; load balance max seconds 3;}# subnet的配置和正常的相同,pool上需要配置使用的failover peersubnet 192.168.20.0 netmask 255.255.252.0 { option routers 192.168.20.1; option subnet-mask 255.255.252.0; pool { failover peer "foo"; range 192.168.20.8 192.168.20.254; }}

在secondary(图中的带外装机服务器2)上,配置和primary类似. 角色需要配置为secondary,如果错误配置成两个primary或者两个secondary,那么无法正常工作. failover配置部分,address,peer addresss配置和primary相反. 最主要的,subnet部分配置完全相同,这样primary和secondary就能同时管理这个地址段了.

ping-check true;ping-timeout 3;default-lease-time 7200;max-lease-time 7200;failover peer "foo" { secondary; address 192.168.20.3; port 600; peer address 192.168.20.2; peer port 600; max-response-delay 60; max-unacked-updates 10; mclt 3600;}subnet 192.168.20.0 netmask 255.255.252.0 { option routers 192.168.20.1; option subnet-mask 255.255.252.0; pool { failover peer "foo"; range 192.168.20.8 192.168.20.254; }}0x02 使用ipmitool命令快速找到机器的带外IP

使用dhcp方式配置服务器带外,那么服务器的带外地址可能会变化,引入一个问题是如果快速通过服务器SN得到其当前使用的带外地址.

我们可以使用ipmitool命令的fru print子命令来处理这个问题.

ipmitool命令的fru print子命令可以输出服务器主板上的fru信息,其中Product Serial就是服务器SN. 其基本命令格式为

ipmitool -I lanplus -H 服务器带外IP -U 服务器带外账号 -P 服务器带外密码 fru print 0x00|grep 'Product Serial'

那么我们怎么知道服务器的带外IP呢? 服务器的带外IP是通过dhcp服务器分配出去的,dhcp服务器会把自己分配的IP信息记录到/var/lib/dhcpd/dhcpd.lease文件中,从中可以过滤出分配的IP地址.

然后使用xargs并发对分配出去的IP使用ipmitool命令进行扫描,就能很快得到服务器的SN和带外IP对应关系.其中-P选项是xargs执行的并发数,可以根据服务器规模进行调整.

user=服务器带外账号passwd=服务器带外密码cat /var/lib/dhcpd/dhcpd.leases | grep ^lease | sort | uniq | awk '{print $2}' > dhcp_lease_ipxargs -a dhcp_lease_ip -P 50 -I _ bash -c " sn=\$(ipmitool -I lanplus -H _ -U $user -P $passwd fru print 0x00|grep 'Product Serial'|awk '{print \$NF}' ); echo \$sn _; exit 0"

如果对上面对xargs命令的使用感到疑惑,可以参考

0xff 总结

数据中心服务器的带外网络相对于带内网络更加简单,通常只需要做成一个大二层网络即可.不过因为带外一般使用dhcp配置,为了保证dhcp服务器可用性,需要进行dhcp failover配置,保证高可用.服务器带外使用dhcp导致SN和IP对应关系不固定,可用使用xargs+ipmitool快速得到对应关系.

后续还有更多关于数据中心服务器装机的干货,欢迎持续关注.

0 阅读:0

云计算分享者

简介:感谢大家的关注