凝望长空 发表于 2011-12-11 21:55

Bond 模式下远程安装 Linux 系统

Bond 模式下远程安装 Linux 系统















注:bond 是一种 linux 下将多块物理网卡虚拟成一块网卡的技术。
                        
引言                        
文件服务器是企业网络中的核心服务器。如何确保其安全、稳定及高速访问,是管理员最重要的工作之一。运用 Bond 技术,可以有效解决服务器网络压力过大,以及单个网卡失效导致的网络服务中断等的问题。从而确保文件服务器的安全、稳定及高速访问运行。                        
本文就是从一位管理员的角度,教您怎样利用 PXE 服务器远程安装拥有网卡绑定技术的实现了负载均衡和失效保护功能的服务器。

Bond 技术介绍                        
Bond 技术原理                        
Bond 就是将多块网卡虚拟成为一块网卡的技术,通过 bond 技术让多块网卡看起来是一个单独的以太网接口设备并具有相同的 IP 地址。                        
Bond 的原理是网卡在混杂 (promisc) 模式下运行;在这种模式下,网卡不像在通常情况下,只接收目的硬件地址是自身 Mac 的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担;而是接收网络上所有的数据帧,而且修改了驱动程序中的 mac 地址,将两块网卡的 Mac 地址改成相同,可以接收特定 mac 的数据帧,然后把相应的数据帧传送给 bond 驱动程序处理。                        
Bond 网卡的工作模式                        
网卡 bond 后的工作模式有两种:主备的工作方式和负载均衡方式。                     


在主备模式下 , 只有主网卡 eth0 工作,eth1 作为备份网卡是不工作的,只有当一个网络接口失效时 ( 例如主交换机掉电等 ),为了不会出现网络中断,系统会按照配置指定的网卡顺序启动工作,保证机器仍能对外服务,起到了失效保护的功能。                        
在负载均衡工作模式下,由于两块网卡都正常工作,它能提供两倍的带宽,在这种情况下出现一块网卡失效,仅仅会是服务器出口带宽下降,也不会影响网络使用。                        
Linux下通过网卡邦定技术既增加了服务器的可靠性,又增加了可用网络带宽,为用户提供不间断的网络服务。
                        
Bond 模式下远程安装 Linux 的难点                        
为了实现多块网卡的协同工作,Bond 模式将自己的 MAC 地址复制到各个物理网卡上,让所有的网卡共享同一个 MAC 地址。这个方式就要求所有的网卡都要支持 BIOS,这样才能够让操作系统将 MAC 地址写到网卡上;对于不支持 BIOS 读写的网卡而言,重起以后就恢复到网卡上 MAC 地址,PXE 服务器可能无法根据记录的 MAC 地址找到相对应的网卡。                        
对于网卡配置成 Bond 模式的 Linux 而言,在使用 PXE 服务器进行安装的过程中,我们不但需要指定物理网卡的配置信息,还需要指定 Bond 网卡的配置信息,才能够让 PXE 服务器正确找到和识别目标机器的网卡,在目标机器重起后依然能够找到网络,并执行进一步 Linux 的安装。这里我们对 Bond 网卡后面的物理网卡数量做一个进一步讨论:                        
对于单物理网卡的 Bond 网卡而言,Bond 网卡的 MAC 地址和物理网卡的物理地址是一致的;对于多物理网卡的 Bond 网卡而言,其中一块物理网卡会被设置为 Master,其他的网卡都是 Slave,Bond 网卡的 MAC 地址取自标志为 Master 的物理网卡,然后将这个 MAC 地址复制到其他物理网卡上。所以在指定用于安装 Linux 的网卡时,我们需要指定 Bond 网卡,以及 Bond 网卡所对应的标志为 Master 的物理网卡。(如果没有人为干预,一般情况下 Linux 所识别到的第一块网卡会被标志为 Master,也即使 eth0;对于有特殊配置的 Bond 网卡,需要根据具体的 Bond 配置情况来进行指定。)

PXE 服务器的安装与配置                        
PXE 服务器安装                        
安装 SLES 10 做为 PXE 服务器的操作系统,同时必须安装如下的几个服务器包:PXE 服务器包(RPM 包名:pxe)、NFS 服务器包(RPM 包名:nfs-utils)、TFTP 服务器包(RPM 包名:tftp)、DHCP 服务器包(RPM 包名:dhcp-server,dhcp-tools 和 dhcp)。以上安装检查无误后,我们即刻开始 PXE 的安装配置 。                        
DHCP 服务器的配置                        
1)配置 /etc/dhcpd.conf,内容如下 :

01. default-lease-time 14400;

02. ddns-update-style none;

03.

04. # define rules to identify DHCP Requests from PXE and Etherboot clients.

05. class "pxe" {

06.match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";

07. }

08. class "etherboot" {

09.match if substring (option vendor-class-identifier, 0, 9) = "Etherboot";

10. }

11.

12. subnet 192.168.0.0 netmask 255.255.255.0 {

13.pool {

14.    range 192.168.0.191 192.168.0.191;

15.    default-lease-time 14400;

16.    max-lease-time 172800;

17.

18.    option broadcast-address 192.168.0.255;

19.

20.    allow members of "pxe";

21.    allow members of "etherboot"; # allow etherboot, too

22.    deny unknown-clients;

23.}

24.

25.server-name "pxeserver";

26.next-server 192.168.0.191;

27.filename "pxelinux.0";

28.

29.include "/etc/bond_hosts.inc";

30. }
复制代码在配置文件中,根据实际环境修改相应的参数值(subnet,broadcast,IP addresses,next-server)。                        
注意:next-server 的值必须是 PXE 启动服务器的 IP 地址 ,客户端根据这项的值找到 PXE启动服务器的 bootstrap 文件 (pxelinux.0),并将此文件作为安装启动映像;最终此启动映像被网卡 ROM 里的 PXE客户端载入内存并运行 。                        
2)DHCP 服务器使用 192.168.0.0 子网,而且只为在 /etc/bond_hosts.inc 文件里面注册的需要网络启动寻找 PXE DHCP 的机器提供 DHCP 服务,同时忽略所有其他正常的 DHCP 请求,这样就可以避免在企业网络中与其他 DHCP 服务器发生冲突。                        
在 /etc/bond_hosts.inc 文件里记录每个机器的主机名、IP 地址和 MAC 地址。配置内容如下:01. host client1{

02.   fixed-address 192.168.0.159;

03.   hardware ethernet 00:1A:64:98:A3:A6;

04. }
复制代码3)配置 /etc/sysconfig/dhcpd,内容如下 :01. DHCPD_CONF_INCLUDE_FILES="/etc/bond_hosts.inc"
复制代码这将可以保证文件 /etc/bond_hosts.inc 能够被 DHCP 服务器正确的使用。                        
如果 PXE 启动服务器有两个网卡,我们在 /etc/sysconfig/dhcpd 文件里需要指定一块网卡监听 DHCP 请求。配置内容如下:01. DHCPD_INTERFACE="eth0"
复制代码4)重启 DHCP 服务器。01. # rcdhcpd restart
复制代码5)确保 DHCP 服务为启动项。
01. # chkconfig --add dhcpd
复制代码

芯忻相依 发表于 2011-12-21 22:44

谢谢分享希望于楼主多多交流
页: [1]
查看完整版本: Bond 模式下远程安装 Linux 系统