Назад | Перейти на главную страницу

Автоматическое пробуждение по локальной сети в Linux при доступе к удаленной файловой системе

У меня есть небольшой сервер, на котором работает Ubuntu, работает веб-сервер и другие вещи, и поэтому он работает круглосуточно и без выходных. Он также служит нашим файловым сервером для большинства часто используемых файлов, обслуживая файлы через самбу.

У меня также есть гораздо больший сервер со значительно большим пространством на жестком диске, который используется для хранения больших видеофайлов, к которым обращаются нечасто (возможно, раз в неделю). Его файлы подключаются к маленькому серверу через самбу, поэтому клиенты фактически проходят через оба сервера, чтобы добраться до больших файлов.

В интересах экономии энергии (и шума!) Я хотел бы настроить большой сервер на переход в спящий режим, когда он не используется. Но тогда, когда люди хотят получить от него файл, им нужно разбудить его или не забыть запустить инструмент пробуждения по локальной сети вручную.

Есть ли способ смонтировать удаленную файловую систему и заставить маленький сервер автоматически активировать большой, когда кто-то пытается получить доступ к файлам на нем? Большому серверу требуется всего несколько секунд, чтобы снова включиться и раскрутить диски, поэтому небольшая задержка приемлема. Я просто хочу, чтобы это произошло, не обучая пользователей чему-то особенному.

Да, вы можете использовать что-то вроде


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

-> preexec в документах самбы

Ты можешь использовать ethtool для включения пробуждения по одноадресным пакетам, а не по волшебным пакетам. Возможно, вам потребуется добавить постоянный arp или если они забудут MAC-адрес сервера, они не смогут отправлять одноадресные пакеты, чтобы попытаться получить к нему доступ и, таким образом, разбудить его.