通过Wake-on-LAN唤醒服务器

    Wake-on-LAN 简称WOL或WoL,中文多译为“网络唤醒”、“远端唤醒”技术。WOL 是一种技术同时也是该技术的规范标准,它的功效在于让已经进入休眠状态或关机状态的电脑,透过局域网路(多半为以太网路)的另一端对其发令,使其从休眠状态唤醒、恢复成运作状态,或从关机状态转成开机状态。此外,与 WOL 相关的技术也包括远端下令关机、远端下令重新开机等相关的遥控机制。

   Wake-on-LAN功能需要有主板和网卡的支持,在主板BIOS中的网卡设置中必须有“Wake On LAN”设置(开启:On),并且相应网卡也得支持该功能。因为,在关闭计算机以后,其实网卡仍然通电的,这样你就可以通过发送一段Magic Packet给网卡,让网卡将计算机唤醒。

   Magic Packet是一个广播帧(frame),透过端口7或端口9进行发送,且可以用无连接(Connectionless protocol)的通讯协议(如UDP、IPX)来传递,不过一般而言多是用UDP,原因是Novell公司的Netware网络操作系统的IPX协定已经很少使用。

在Magic Packet内,每次都会先有连续6个"FF"(十六进制,换算成二进制即:11111111)的资料,即:FF FF FF FF FF FF,在连续6个"FF"后则开始带出MAC地址,有时还会带出4字节或6字节的密码,一旦经由网卡侦测、解读、研判(广播)Magic Packet的内容,内容中的MAC地址、密码若与电脑自身的地址、密码吻合,就会启动唤醒、开机的程序。

试验环境还是前面的cobbler环境,在cobbler server上唤醒两台客户机,一台是ubuntu12.04,一台是centos6.3,首先在两台机器上查看网卡是否支持wol,通过ethtool命令查看,例如:

root@ubuntu12:~# ethtool eth0
Settings for eth0:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 1
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: Unknown
	Supports Wake-on: g
	Wake-on: d
	Link detected: yes
   如果wake-on一行值为d,表示禁用wol,值为g,表示启用wol,可以看到网卡默认是禁用wol的,我们通过ethtool来改变:

ethtool -s eth0 wol g

    注意:在每次通过wol唤醒机器后,网卡的wake-on又恢复成d。

在cobbler server(ubuntu12.04)上安装wol脚本,用来唤醒客户机。

apt-get install wakeonlan
如果宿主机是centos系统,则通过以下方法安装:

wget 'http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/wol-0.7.1-2.2.el5.rf.x86_64.rpm'
rpm -ivh wol-0.7.1-2.2.el5.rf.x86_64.rpm

      该命令在ubuntu上为wakeonlan,在centos上wol,其实程序就是一个perl脚本。wol是根据网卡的MAC来确定唤醒哪台客户机,所以在试验唤醒功能前还需要记录客户机的相关MAC地址。

在cobbler server上执行以下命令,唤醒客户端(客户机之前通过IPMI的power off已经关机)

wakenlan -i 10.1.6.2 a4:ba:db:48:cd:ff

在另一个窗口通过IPMI远程抓屏则会看到服务器被唤醒,入下图:

通过Wake-on-LAN唤醒服务器_第1张图片


参考:http://zh.wikipedia.org/wiki/%E7%B6%B2%E8%B7%AF%E5%96%9A%E9%86%92


你可能感兴趣的:(Wake-on-LAN)