Я поднимаюсь /dev/vdb1
к /media/esdata
используя следующий модуль systemd:
Апартамент находится по адресу /etc/systemd/system/media-esdata.mount
:
[Unit]
Description=Mount cinder volume
Before=docker.service
[Mount]
What=/dev/vdb1
Where=/media/esdata
Options=defaults,noatime,noexec
но это не запускается при перезагрузке. Я тоже не могу включить этот блок:
$ sudo systemctl enable media-esdata.mount
The unit files have no [Install] section. They are not meant to be enabled
using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit's
.wants/ or .requires/ directory.
2) A unit's purpose may be to act as a helper for some other unit which has
a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer,
D-Bus, udev, scripted systemctl call, ...).
Что я могу сделать, чтобы всегда иметь /media/esdata
доступный?
Вы можете добавить поле [Install] в файл media-esdata.mount, systemctl enable
создаст для вас ссылку:
[Unit]
Description=Mount cinder volume
Before=docker.service
[Mount]
What=/dev/vdb1
Where=/media/esdata
Options=defaults,noatime,noexec
[Install]
WantedBy=docker.service
При включении модуля крепления вы должны увидеть следующее сообщение:
$ sudo systemctl enable media-esdata.mount
Created symlink /etc/systemd/system/docer.service.wants/media-esdata.mount → /etc/systemd/system/media-esdata.mount.
Моя работа заключалась в том, чтобы systemctl enable docker.service
а затем создайте /etc/systemd/system/docker.service.wants
и символическая ссылка на media-esdata.mount
в эту папку. Systemd был готов начать docker.service
при загрузке и использовании папки требует, чтобы диск был смонтирован принудительно.
Теперь у меня работает докер без SSH в коробке и я запускаю docker
(который по умолчанию запускается только тогда, когда docker.socket
срабатывает зависимость. Кроме того, я монтирую диск до того, как какой-либо контейнер сможет получить доступ к файловой системе. Не совсем простой, но он работает надежно и, похоже, не далеко от проторенного пути.
Вам нужно будет «включить» это устройство, что означает, что он запускается при загрузке. Вы можете сделать это через cloud-config или вручную с помощью sudo systemctl enable media-esdata.mount