Yeniden başlatma sırasında ZFS Veri Kümeleri kayboluyor


13


Centos 7'ye ZFS (0.6.5) yükledim ve ayrıca bir zpool oluşturdum, veri kümelerimin yeniden başlatıldığında kaybolması dışında her şey iyi çalışıyor.
Çeşitli çevrimiçi kaynaklar ve bloglar yardımıyla bu sorunu ayıklamaya çalışıyorum, ancak istenen sonucu alamadım.
Yeniden başlattıktan sonra, ben kesilirken zfs listkomutu alıyorum "hiçbir veri kümeleri" ve zpool listverir "hayır havuzları mevcut" çevrimiçi çok araştırma yaptıktan sonra, ben elle kullanarak önbellek dosyası içe aktararak işe yapabiliriz zpool ithalat -c CacheFile ama yine de daha sonra yeniden başlattıktan sonra almak için yeniden başlatmadan önce zpool set cachefile = / etc / zfs / zpool.cache Havuzu çalıştırmak zorunda kaldı .

Bu nedirsystemctl status zfs-import-cache gibi görünüyor,

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"

Bunun bilinen bir sorun olup olmadığından emin değilim, eğer evet ise, bunun için bir çözüm var mı? veri kümelerimi yeniden başlattıktan sonra ve tercihen bir önbellek dosyasının yükü olmadan korumanın kolay bir yolu olabilir.


ne zpool durumu -v ve zpool içe aktarma diyor?
ostendali

Merhaba, zpool status -v zpool status -v no pools availableVe, zpool importbana bunu verirpool: zfsPool id: 10064980395446559551 state: ONLINE action: The pool can be imported using its name or numeric identifier. config: zfsPool ONLINE sda4 ONLINE
Vishnu Nair

zfs import, başlangıçta set cachefile komutunu kullanarak önbellek dosyasını ayarlayarak bunu nasıl çalıştırabileceğimdir
Vishnu Nair

/etc/init/zpool-import.conf dosyasını kaçırdınız, o dosyanın içeriğini de gönderebilir misiniz?
ostendali

1
ZFS hedefi etkin mi? systemctl status zfs.target
Michael Hampton

Yanıtlar:


6

Lütfen zfs hizmetinin (hedef) etkin olduğundan emin olun. Önyükleme / kapatma sırasında havuz içe / dışa aktarmayı işleyen budur.

zfs.target loaded active active ZFS startup target

Bununla asla mücadele etmek zorunda kalmamalısınız. Şansınız varsa, başlangıç ​​hizmetlerinin son birkaç sürümde geliştiğini bildiğim için zfs dağıtımınızda bir güncelleme çalıştırın:

[root@zfs2 ~]# rpm -qi zfs
Name        : zfs
Version     : 0.6.5.2
Release     : 1.el7.centos

Merhaba, 0.6.5.3'ü de test ettim, bu da inandığım en son sürüm oldu, ancak yine de bu sorunla karşı karşıya kaldım modprobe zfs. Btw, Hedef etkin değil, lütfen yukarıdaki yorumlardaki çıktıyı kontrol edin (Michael'a yanıt verin). Nasıl ayarlanacağını öğrenebilir miyim? Teşekkürler.
Vishnu Nair

Tek yapmanız gereken muhtemelen şöyle bir şey:systemctl enable zfs.target
ewwhite

5

Tamam, bu yüzden havuz var, bu da sorun zfs.cache ile olduğu anlamına gelir, kalıcı değildir ve bu yüzden yeniden başlattığınızda yapılandırmasını kaybeder. ne yapmayı öneririm koşmak:

      zpool import zfsPool 
      zpool list 

Ve mevcut olup olmadığını kontrol edin. Sunucuyu yeniden başlatın ve geri gelip gelmediğine bakın, eğer aynı adımları gerçekleştirmezse ve çalıştırın:

      zpool scrub

Sadece havuz vb.İle her şeyin yolunda olduğundan emin olmak için.

Pls ayrıca içeriğini yayınlamak:

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

Alternatif olarak, bu soruna geçici bir çözüm arıyorsanız, elbette aşağıdaki gibi ayarlayabilirsiniz.

Değeri 1'den 0'a değiştirin:

    /etc/init/zpool-import.conf

ve /etc/rc.local dosyanıza aşağıdakileri ekleyin:

    zfs mount -a

Hile yapacak.


Koştum zfs import zfsPoolbeklenen ithal havuzuma olarak, o zaman yeniden başlatma, ran yaptım zfs listbana verdi no datasets. Adımları tekrarladım ve zfs scrubbana herhangi bir çıktı vermedi, yine yeniden başlattım ve hala veri setleri korunmadı
Vishnu Nair

isteğimi görmediyseniz, "/ etc / default / zfs'de ne olduğunu da gönderebilir misiniz?"
ostendali

4

Ayrıca bir yeniden başlatmadan sonra kaybolan zfs sorunu vardı. CentOS 7.3 ve ZFS'yi çalıştırmak 0.6.5.9 Yeniden içe aktarma, onu bir sonraki yeniden başlatmaya kadar geri getirdi (zpool import zfspool).

İşte benim için çalışan komut (yeniden başlatmalarla devam etmesini sağlamak için):

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

(Bunu şu adreste bulabilirsiniz: https://github.com/zfsonlinux/zfs/wiki/RHEL-%26-CentOS )


Şimdi burada wiki'de
Daniel S. Sterling
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.