Bộ dữ liệu ZFS biến mất khi khởi động lại


13


Tôi đã cài đặt ZFS (0.6.5) trong Centos 7 của mình và tôi cũng đã tạo một zpool, mọi thứ đều hoạt động tốt ngoài thực tế là các bộ dữ liệu của tôi biến mất khi khởi động lại.
Tôi đã cố gắng gỡ lỗi vấn đề này với sự trợ giúp của các nguồn tài nguyên và blog trực tuyến khác nhau nhưng không thể có được kết quả mong muốn.
Sau khi khởi động lại, khi tôi phát zfs listlệnh tôi nhận được "không có bộ dữ liệu"zpool listđưa ra "không có sẵn nhóm" Sau khi thực hiện nhiều nghiên cứu trực tuyến, tôi có thể làm cho nó hoạt động bằng cách nhập thủ công tệp bộ đệm bằng cách sử dụng bộ đệm ẩn zpool nhập -c , nhưng Tuy nhiên, tôi vẫn phải chạy zpool set cacheefile = / etc / zfs / zpool.cache Pool trước khi khởi động lại để nhập nó sau này sau khi khởi động lại.

Đây là những gìsystemctl status zfs-import-cache giống như,

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"

Tôi không chắc đây có phải là vấn đề đã biết không, nếu có, có cách giải quyết nào cho việc này không? có lẽ là một cách dễ dàng để bảo vệ bộ dữ liệu của tôi sau khi khởi động lại và tốt nhất là không cần tập tin bộ đệm.


tình trạng zpool -v và nhập zpool nói gì?
Ostendali

Xin chào, zpool status -v zpool status -v no pools availableVà, zpool importđưa tôi cái nàypool: zfsPool id: 10064980395446559551 state: ONLINE action: The pool can be imported using its name or numeric identifier. config: zfsPool ONLINE sda4 ONLINE
Vishnu Nair

Nhập zfs là cách tôi có thể làm cho nó hoạt động, bằng cách thiết lập bộ đệm ẩn ban đầu bằng cách sử dụng lệnh bộ đệm ẩn
Vishnu Nair

bạn đã bỏ lỡ /etc/init/zpool-import.conf, bạn có thể đăng nội dung của tệp đó không?
Ostendali

1
Là mục tiêu ZFS được kích hoạt? systemctl status zfs.target
Michael Hampton

Câu trả lời:


6

Vui lòng đảm bảo dịch vụ zfs (đích) được bật. Đó là những gì xử lý nhập / xuất nhóm khi khởi động / tắt máy.

zfs.target loaded active active ZFS startup target

Bạn không bao giờ phải đấu tranh với điều này. Nếu bạn có cơ hội, hãy chạy một bản cập nhật trên bản phân phối zfs của bạn, vì tôi biết các dịch vụ khởi nghiệp đã được cải thiện trong vài bản phát hành gần đây:

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

Xin chào, tôi đã thử nghiệm 0.6.5.3 cũng là bản phát hành mới nhất mà tôi tin, nhưng vẫn gặp phải vấn đề này, với. 6.5.5 tôi thậm chí phải chạy modprobe zfsmỗi khi tôi khởi động lại để tải các mô-đun. Btw, Target không được bật, vui lòng kiểm tra đầu ra trong các bình luận ở trên (trả lời Michael). Tôi có thể biết làm thế nào để thiết lập một? cảm ơn.
Vishnu Nair

Tất cả những gì bạn cần làm có lẽ là một cái gì đó như:systemctl enable zfs.target
ewwhite

5

ok, vì vậy pool nằm ở đó, điều đó có nghĩa là vấn đề xảy ra với zfs.cache của bạn, nó không tồn tại lâu và đó là lý do tại sao nó mất cấu hình khi khởi động lại. những gì tôi muốn làm là chạy:

      zpool import zfsPool 
      zpool list 

Và kiểm tra nếu nó có sẵn. Khởi động lại máy chủ và xem nếu nó quay trở lại, nếu nó không thực hiện các bước tương tự và chạy:

      zpool scrub

Chỉ để đảm bảo mọi thứ đều ổn với hồ bơi của bạn, v.v.

Xin cũng đăng nội dung của:

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

Ngoài ra, nếu bạn đang tìm cách giải quyết vấn đề này, bạn có thể đặt nó tất nhiên như sau.

Thay đổi giá trị từ 1 thành 0:

    /etc/init/zpool-import.conf

và thêm phần sau vào /etc/rc.local:

    zfs mount -a

Điều đó sẽ làm các thủ thuật.


Tôi đã chạy zfs import zfsPoolmà như mong đợi đã nhập hồ bơi của tôi, sau đó tôi đã khởi động lại, chạy zfs listmà đã cho tôi no datasets. Tôi lặp lại các bước một lần nữa và chạy zfs scrubmà không cho tôi bất kỳ đầu ra nào, tôi đã thực hiện khởi động lại một lần nữa và các bộ dữ liệu vẫn không được bảo tồn
Vishnu Nair

trong trường hợp bạn chưa thấy yêu cầu của tôi, tôi sẽ đăng lại "bạn cũng có thể đăng những gì trong / etc / default / zfs không?"
Ostendali

4

Tôi cũng đã có vấn đề zfs biến mất sau khi khởi động lại. Chạy CentOS 7.3 và ZFS 0.6.5.9 Reimporting đã mang nó trở lại (zpool nhập zfspool) chỉ cho đến lần khởi động lại tiếp theo.

Đây là lệnh làm việc cho tôi (để duy trì nó thông qua khởi động lại):

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

(Tìm thấy cái này tại: https://github.com/zfsonlinux/zfs/wiki/RHEL-%26-CentOS )


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.