关于ZFS—其四,开机自动挂载之systemd服务

  • A+
所属分类:系统运维

前言

起子最近都在研究ZFS,由于最后终于添加了cache 设备,可用度总算是大有提升了,同时,限制zfs缓存使用内存量也有了效果可以拥有更好的系统性能。
然而。直到最近之前,开机挂载zfs分区的需求任然没有实现成功,直到我在知乎上提问,豁然开朗。
可以看这里https://www.zhihu.com/question/55993173

大神解答

从FreeBSD 安全长官兼发布工程师大神李鑫的回答上来看
ZFS on FreeBSD中的自动挂载是依靠zpool.cache来做的。加载了zfs内核模块的话,内核会知道其中列出的pool会存在并进行相应的处理(通过检查存储设备前后的ZFS label,参见vdev.c/vdev_geom.c以及spa.c)对用户来说:启动时加载了zfs.ko(内核模块)且/etc/rc.conf中有 zfs_enable="YES"的设置,引导过程中会由rc执行zfs mount -a来挂载文件系统。

起子得到的启发

同时,由于ZFS on linux中大多已经从init 切换到 systemd方式进行服务的管理,我们也可以看一下zol 中的服务。

  1. [root@joshua ~]# systemctl status zfs
  2. zfs-import-cache.service zfs-import-scan.service zfs-mount.service zfs-share.service zfs.target zfs-zed.service

zfs-import-cache.service zfs-import-scan.service zfs-mount.service zfs-share.service zfs.target zfs-zed.service

其中 zfs.target是 zfs-*系列系统服务的依赖基础,需要先行添加到multi-user.target的want中,在系统中先enable之,之后保证其关联了zfs-mount.service的want

最后确保一下的扫描和缓存服务的关联,如下

  1. [joshua@joshua ~]$ ll /etc/systemd/system/zfs-mount.service.wants/
  2. 总用量 0
  3. lrwxrwxrwx 1 root root 48 2月 19 16:03 zfs-import-cache.service -> /usr/lib/systemd/system/zfs-import-cache.service
  4. lrwxrwxrwx 1 root root 47 2月 6 08:12 zfs-import-scan.service -> /usr/lib/systemd/system/zfs-import-scan.service

开机时在加载了zfs内核模块后 (见于本博客中关于开机加载模块的文章),系统先让使用zfs-import-scan扫描储存池,之后再在zfs-import-cache.service中读取挂载相关配置,最后 zfs-mount这样zfs的开机自动挂载就能实现了,而做export和import也是为了更新配置cache吧

 

weinxin
我的微信公众号
我的微信公众号扫一扫

发表评论

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen: