访问远程文件系统时在Linux中自动唤醒LAN

我有一个运行Ubuntu的小型服务器,运行web服务器和其他东西,因此是24/7。 它也可以作为大多数常用文件的文件服务器,通过samba提供文件。

我还有一个更大的服务器,硬盘空间更大,用来存储很less访问的大型video文件(可能每周一次)。 它的文件通过samba挂载到小型服务器上,所以客户端通过两台服务器来访问大文件。

为了节省电力(和噪音),我想设置大型服务器在不使用时进入睡眠状态。 但是奇怪的时候,人们需要一个文件,他们需要把它唤醒,或者记得手动运行一个唤醒工具。

有没有办法挂载远程文件系统,并让有人试图访问文件时,小型服务器自动唤醒大型的文件系统? 大型服务器只需要几秒钟的时间就可以唤醒并驱动它的驱动器,所以小的延迟是可以接受的。 我只想做到这一点,而不必培训用户做任何特别的事情。

是的,你可以使用类似的东西

[videos] comment = big files path = /mnt/bigserver/videos ... preexec = /usr/local/bin/my_wake-on-lan_and_mount_script 

– >桑巴文档中的preexec

您可以使用ethtool启用单播数据包的唤醒而不是魔术数据包。 您可能需要向客户端添加一个永久的arp条目,或者如果他们忘记了服务器的MAC地址,他们将无法发送单播数据包来尝试访问它,从而将其唤醒。