我在Softlayer的一个虚拟实例上运行CentOS7。 有一个块存储设备通过multipath / iscsi可用于实例
我已成功将此块设备安装为XFS。 我决定给ZFS一个尝试。 当我手动发出命令来'挂载'这个ZFS卷时,它工作正常。
zpool import -f zfs-data
在CentOS7上,ZFS有两个问题。
我怀疑(a)的解决scheme也可以解决(b)。
让我们先来看看(a) 。
在zfsonlinux CentOs 7的github页面上有这样的讨论。 重启之后不能mount / import池
看来,通过yum安装ZFS时,不会创build/ etc / hostid文件。 所以正如在这个页面上build议我运行以下命令来创build它。
dd if=/dev/urandom of=/etc/hostid bs=4 count=1
然后突然想到,它不能自动挂载,因为在机器启动的时候,ZFS被加载到iSCSI 之前 。
从/var/log/boot.log – 第一列是行号
81 Starting Import ZFS pools by cache file... 147 Starting Open-iSCSI...
如何更改加载顺序?
(b)在重启时挂起
如果我导入池,不写任何东西,我可以重新启动罚款。 然而,一旦在挂载上交换了任何数据,重新启动/closures日志将包含这些行。
Stopping Import network configuration from initramfs... [ 550.096199] end_request: I/O error, dev dm-0, sector 5514152
用不同的数字重复十次。
WARNING: Pool 'zfs-data' has encountered an uncorrectable I/O failure and has been suspended [...] Unmounting /zfs-data... [...] A stop job is running for /zfs-data
这永远不会结束,需要硬重启以重新进入实例。
任何有识之士将不胜感激。
好问题…我不确定我会推荐以这种方式使用ZFS,特别是因为块设备预计会在启动。 但是请记住,有几个与ZFS相关的服务。
zfs-import-cache.service # Import ZFS pools by cache file zfs-mount.service # Mount ZFS filesystems zfs-share.service # ZFS file system shares zfs.target # ZFS startup target
您可以修改时间或相关性以适应您的延迟iSCSI挂载。
[Unit] Description=Import ZFS pools by cache file DefaultDependencies=no Requires=systemd-udev-settle.service After=systemd-udev-settle.service After=cryptsetup.target ConditionPathExists=/etc/zfs/zpool.cache [Service] Type=oneshot RemainAfterExit=yes ExecStartPre=/sbin/modprobe zfs ExecStart=/sbin/zpool import -c /etc/zfs/zpool.cache -aN