Zestawy danych ZFS znikają po ponownym uruchomieniu

13


Zainstalowałem ZFS (0.6.5) na moim Centos 7 i utworzyłem również zpool, wszystko działa dobrze oprócz tego, że moje zestawy danych znikają po ponownym uruchomieniu.
Próbowałem rozwiązać ten problem przy pomocy różnych zasobów internetowych i blogów, ale nie mogłem uzyskać pożądanego rezultatu.
Po ponownym uruchomieniu, gdy wydam zfs listpolecenie, otrzymuję „brak dostępnych zestawów danych” i zpool listdaje „brak dostępnych pul”. Po przeprowadzeniu wielu badań online, mogłem go uruchomić ręcznie importując plik pamięci podręcznej za pomocą zpool import -c plik pamięci podręcznej , ale wciąż musiałem uruchomić zestaw cachefile = / etc / zfs / zpool.cache zpool Pool przed ponownym uruchomieniem, aby zaimportować go później po ponownym uruchomieniu.

Co to jestsystemctl status zfs-import-cache wygląda jak,

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"

Nie jestem pewien, czy jest to znany problem ... jeśli tak, czy istnieje jakieś obejście tego problemu? być może jest to łatwy sposób na zachowanie moich zestawów danych po ponownym uruchomieniu komputera i najlepiej bez obciążenia pliku pamięci podręcznej.

Wisznu Nair
źródło
co mówi status zpool -v i import zpool?
ostendali
Cześć, zpool status -v zpool status -v no pools availableI zpool importdaje mi topool: zfsPool id: 10064980395446559551 state: ONLINE action: The pool can be imported using its name or numeric identifier. config: zfsPool ONLINE sda4 ONLINE
Wisznu Nair
import zfs to sposób, w jaki mogę sprawić, by działał, ustawiając plik cachefile na początku za pomocą polecenia set cachefile
Vishnu Nair
brakowało /etc/init/zpool-import.conf, czy możesz również opublikować zawartość tego pliku?
ostendali
1
Czy cel ZFS jest włączony? systemctl status zfs.target
Michael Hampton

Odpowiedzi:

6

Upewnij się, że usługa ZFS (cel) jest włączona. Właśnie to obsługuje import / eksport puli podczas rozruchu / zamykania systemu.

zfs.target loaded active active ZFS startup target

Nigdy nie powinieneś się z tym borykać. Jeśli masz szansę, uruchom aktualizację swojej dystrybucji ZFS, ponieważ wiem, że usługi startowe poprawiły się w ciągu ostatnich kilku wydań:

[root@zfs2 ~]# rpm -qi zfs
Name        : zfs
Version     : 0.6.5.2
Release     : 1.el7.centos
ewwhite
źródło
Cześć, testowałem również wersję 0.6.5.3, która, jak sądzę, jest najnowszą wersją, ale nadal napotykałem ten problem, z wersją .6.5.3 musiałem nawet uruchamiać się modprobe zfsza każdym razem, gdy restartowałem, aby załadować moduły. Przy okazji, cel nie jest włączony, sprawdź wyniki w komentarzach powyżej (odpowiedz Michael). Czy mogę wiedzieć, jak ustawić? dzięki.
Wisznu Nair
Wszystko, co musisz zrobić, to prawdopodobnie coś w stylu:systemctl enable zfs.target
ewwhite
5

ok, więc pula tam jest, co oznacza, że ​​problem jest z twoją pamięcią podręczną zfs.cache, nie jest trwały i dlatego traci konfigurację po ponownym uruchomieniu. sugeruję, aby uruchomić:

      zpool import zfsPool 
      zpool list 

I sprawdź, czy jest dostępny. Uruchom ponownie serwer i sprawdź, czy wróci, jeśli nie, wykonaj te same czynności i uruchom:

      zpool scrub

Aby upewnić się, że wszystko jest w porządku z basenem itp.

Pls publikują również treść:

      /etc/default/zfs.conf
      /etc/init/zpool-import.conf

Ewentualnie, jeśli szukasz rozwiązania tego problemu, możesz ustawić go w następujący sposób.

Zmień wartość z 1 na 0:

    /etc/init/zpool-import.conf

i dodaj następujące informacje do pliku /etc/rc.local:

    zfs mount -a

To załatwi sprawę.

ostendali
źródło
Uruchomiłem, zfs import zfsPoolco zgodnie z oczekiwaniami zaimportowało moją pulę, a następnie uruchomiłem ponownie, uruchomiłem, zfs listco dało mi no datasets. Powtórzyłem kroki ponownie i pobiegłem, zfs scrubco nie dało mi żadnych wyników, ponownie uruchomiłem komputer, a zbiory danych nadal nie są zachowane
Wisznu Nair
w przypadku, gdy nie widziałeś mojej prośby, opublikuję ponownie „czy możesz także opublikować zawartość / etc / default / zfs?”
ostendali
4

Miałem też problem zniknięcia ZF po ponownym uruchomieniu. Uruchamianie CentOS 7.3 i ZFS 0.6.5.9 Ponowne importowanie przywróciło go (zpool import zfspool) tylko do następnego ponownego uruchomienia.

Oto polecenie, które działało dla mnie (aby utrzymało się przez ponowne uruchomienie):

systemctl preset zfs-import-cache zfs-import-scan zfs-mount zfs-share zfs-zed zfs.target

(Znaleziono to na: https://github.com/zfsonlinux/zfs/wiki/RHEL-%26-CentOS )

Jeff
źródło
Znalazłem go tutaj na wiki: github.com/openzfs/zfs/wiki/FAQ#the-etczfszpoolcache-file
Daniel S. Sterling