我使用以下systemd单元挂载/dev/vdb1到/media/esdata :
该单元位于/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可用?
您将需要“启用”这个单位,这意味着它开始启动。 你可以通过cloud-config或者使用sudo systemctl enable media-esdata.mount手动sudo systemctl enable media-esdata.mount
我的工作是systemctl enable docker.service ,然后创build一个/etc/systemd/system/docker.service.wants并将media-esdata.mount符号链接到该文件夹中。 docker.service愿意在启动时启动docker.service ,并使用该文件夹来强制驱动器被挂载。
现在我运行了docker.socket没有SSH,运行docker (默认情况下,只有在docker.socket依赖关系被触发时才启动,另外,在任何容器访问文件系统之前,我都会装载该驱动器。前进,但它可靠地工作,似乎并没有远离挨打path。
您可以在media-esdata.mount中添加[Install]字段, systemctl enable将为您创build链接:
[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.