Монтирование SMB раздела при старте сервера (Ubuntu 20.04)

Довольно часто требуется смонтировать Windows-шару при старте сервера и настраивать ее переподключение при потере связи. В Linux такое решение является не самым стабильным и сейчас мы проведем несколько экспериментов и попробуем проработать несколько костылей которые позволят нам добиться стабильной работы такой связки даже в VPN-сетях.

Монтирование SMB-ресурса в fstab

Запись в fstab для монтирования сетевого ресурса выглядит следующим образом.

//10.212.1.1/data_vol/DATA_STORAGE/ /mnt/data_vol cifs user,rw,credentials=/etc/.smbclient,iocharset=utf8,file_mode=0777,dir_mode=0777,vers=2.0 0 0

Вместо использования file_mode и dir_mode можно принудительно задать группу и пользователя от имени которых будет смонтирован сетевой ресурс. Так-же обратите внимание, что мы используем файл /etc/.smbclient в качестве хранилища авторизации.

username=smb
password=xxxSecretPasswordxxx
domain=BDS

Тестирование авто-монтирования

После проверки ряда методов монтирования сетевых дисков я выяснил, что старая опция _netdev больше не работает и для авто-монтирования сетевого ресурса теперь используется опция x-systemd.automount и она работает. А полностью строка подключения выглядит следующим образом.

//10.212.1.1/data_vol/DATA_STORAGE/ /mnt/data_vol cifs user,rw,x-systemd.automount,credentials=/etc/.smbclient,iocharset=utf8,file_mode=0777,dir_mode=0777,vers=2.0 0 0

В списке смонтированных ресурсов мы можем увидеть необычную запись:

systemd-1 on /mnt/data_vol type autofs (rw,relatime,fd=54,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=19614)

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

# systemctl stop xl2tpd.service

После отключения VPN ресурс не размонтировался и так-же отображается в списке смонтированных, но при этом невозможно получить содержимое каталога (что логично).

# ls /mnt/data_vol
ls: cannot access '/mnt/data_vol': Host is down

Возвращаем VPN-подключение

# systemctl start xl2tpd.service

Сетевой ресурс переподключился

# ls /mnt/data_vol
backup

И именно это то поведение которое нас полностью устраивает.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *