我已经在我的Centos 7中安装了ZFS(0.6.5),而且我也创build了一个zpool,除了重启后我的数据集消失之外,一切正常。
我一直试图在各种在线资源和博客的帮助下debugging这个问题,但无法得到预期的结果。
在重新启动后,当我发出zfs list命令时,我得到“没有可用的数据集” ,而zpool list给出了“没有可用的池”在做了大量的在线研究之后,我可以通过使用zpool import手动导入caching文件来使其工作, c cachefile ,但仍然必须在重新启动之前运行zpool set cachefile = / etc / zfs / zpool.cache Pool ,以便稍后在重新启动后导入。
这就是systemctl status zfs-import-cache样子,
zfs-import-cache.service - Import ZFS pools by cache file Loaded: loaded (/usr/lib/systemd/system/zfs-import-cache.service; static) Active: inactive (dead)
cat /etc/sysconfig/zfs
# ZoL userland configuration. # Run `zfs mount -a` during system start? ZFS_MOUNT='yes' # Run `zfs unmount -a` during system stop? ZFS_UNMOUNT='yes' # Run `zfs share -a` during system start? # nb: The shareiscsi, sharenfs, and sharesmb dataset properties. ZFS_SHARE='yes' # Run `zfs unshare -a` during system stop? ZFS_UNSHARE='yes' # Specify specific path(s) to look for device nodes and/or links for the # pool import(s). See zpool(8) for more information about this variable. # It supersedes the old USE_DISK_BY_ID which indicated that it would only # try '/dev/disk/by-id'. # The old variable will still work in the code, but is deprecated. #ZPOOL_IMPORT_PATH="/dev/disk/by-vdev:/dev/disk/by-id" # Should the datasets be mounted verbosely? # A mount counter will be used when mounting if set to 'yes'. VERBOSE_MOUNT='no' # Should we allow overlay mounts? # This is standard in Linux, but not ZFS which comes from Solaris where this # is not allowed). DO_OVERLAY_MOUNTS='no' # Any additional option to the 'zfs mount' command line? # Include '-o' for each option wanted. MOUNT_EXTRA_OPTIONS="" # Build kernel modules with the --enable-debug switch? # Only applicable for Debian GNU/Linux {dkms,initramfs}. ZFS_DKMS_ENABLE_DEBUG='no' # Build kernel modules with the --enable-debug-dmu-tx switch? # Only applicable for Debian GNU/Linux {dkms,initramfs}. ZFS_DKMS_ENABLE_DEBUG_DMU_TX='no' # Keep debugging symbols in kernel modules? # Only applicable for Debian GNU/Linux {dkms,initramfs}. ZFS_DKMS_DISABLE_STRIP='no' # Wait for this many seconds in the initrd pre_mountroot? # This delays startup and should be '0' on most systems. # Only applicable for Debian GNU/Linux {dkms,initramfs}. ZFS_INITRD_PRE_MOUNTROOT_SLEEP='0' # Wait for this many seconds in the initrd mountroot? # This delays startup and should be '0' on most systems. This might help on # systems which have their ZFS root on a USB disk that takes just a little # longer to be available # Only applicable for Debian GNU/Linux {dkms,initramfs}. ZFS_INITRD_POST_MODPROBE_SLEEP='0' # List of additional datasets to mount after the root dataset is mounted? # # The init script will use the mountpoint specified in the 'mountpoint' # property value in the dataset to determine where it should be mounted. # # This is a space separated list, and will be mounted in the order specified, # so if one filesystem depends on a previous mountpoint, make sure to put # them in the right order. # # It is not necessary to add filesystems below the root fs here. It is # taken care of by the initrd script automatically. These are only for # additional filesystems needed. Such as /opt, /usr/local which is not # located under the root fs. # Example: If root FS is 'rpool/ROOT/rootfs', this would make sense. #ZFS_INITRD_ADDITIONAL_DATASETS="rpool/ROOT/usr rpool/ROOT/var" # List of pools that should NOT be imported at boot? # This is a space separated list. #ZFS_POOL_EXCEPTIONS="test2" # Optional arguments for the ZFS Event Daemon (ZED). # See zed(8) for more information on available options. #ZED_ARGS="-M"
我不确定这是不是一个已知的问题,如果是的话,有没有解决方法? 也许一个简单的方法来保存我的数据集重新启动后,最好没有caching文件的开销。
请确保zfs服务(目标)已启用。 这就是在启动/closures时处理池导入/导出。
zfs.target loaded active active ZFS startup target
你不应该为此而挣扎。 如果您有机会,请对您的zfs发行版进行更新,因为我知道在过去的几个发行版中,创业公司的服务已经得到了改进:
[root@zfs2 ~]# rpm -qi zfs Name : zfs Version : 0.6.5.2 Release : 1.el7.centos
我也有重启后zfs消失的问题。 运行CentOS 7.3和ZFS 0.6.5.9重新导入(zpool import zfspool)直到下一次重新启动。
这是我工作的命令(通过重新启动使其保持):
systemctl preset zfs-import-cache zfs-import-scan zfs-mount zfs-share zfs-zed zfs.target
(发现这个: https : //github.com/zfsonlinux/zfs/wiki/RHEL-%26-CentOS )
好吧,所以池在那里,这意味着问题是你的zfs.cache,它不是持久的,这就是为什么当你重新启动时,它丢失了它的configuration。 我build议要做的是运行:
zpool import zfsPool zpool list
并检查是否可用。 重新启动服务器,看看它是否回来,如果没有,然后执行相同的步骤,并运行:
zpool scrub
只是为了确保你的游泳池一切正常
请同时发布以下内容:
/etc/default/zfs.conf /etc/init/zpool-import.conf
或者,如果您正在寻找解决此问题的方法,您可以将其设置为如下。
将值从1更改为0:
/etc/init/zpool-import.conf
并将以下内容添加到您的/etc/rc.local中:
zfs mount -a
这将有诀窍。