我有一台小型服务器,它运行 Ubuntu,运行网络服务器和其他程序,因此全天候运行。它还充当我们大多数常用文件的文件服务器,通过 samba 提供文件服务。
我还有一个更大的服务器,硬盘空间也大得多,用于存储不经常访问(可能一周一次)的大型视频文件。它的文件通过 samba 安装到小型服务器上,因此客户端实际上要通过两个服务器才能访问大型文件。
为了节省电力(和噪音!)我想将大型服务器设置为在不使用时进入睡眠状态。但是当人们偶尔想要从服务器获取文件时,他们需要将其唤醒,或者记得手动运行局域网唤醒工具。
有没有办法安装远程文件系统,并让小型服务器在有人尝试访问大型服务器上的文件时自动唤醒大型服务器?大型服务器只需几秒钟即可唤醒并启动其驱动器,因此短暂的延迟是可以接受的。我只是想实现这一点,而不必培训用户做任何特别的事情。
答案1
是的,你可以使用类似
[videos]
comment = big files
path = /mnt/bigserver/videos
...
preexec = /usr/local/bin/my_wake-on-lan_and_mount_script
答案2
您可以使用ethtool
单播数据包而不是魔术数据包来启用唤醒。您可能需要arp
向客户端添加永久条目,否则如果它们忘记了服务器的 MAC 地址,它们将无法发送单播数据包来尝试访问它,从而无法唤醒它。