Date: Thu, 28 Nov 2024 09:45:08 -0500 From: Dennis Clarke <dclarke@blastwave.org> To: Alan Somers <asomers@freebsd.org> Cc: Current FreeBSD <freebsd-current@freebsd.org> Subject: Re: zpools no longer exist after boot Message-ID: <22187e59-b6e9-4f2e-ba9b-f43944d1a37b@blastwave.org> In-Reply-To: <CAOtMX2hKCYrx92SBLQOtekKiBWMgBy_n93ZGQ_NVLq=6puRhOg@mail.gmail.com> References: <5798b0db-bc73-476a-908a-dd1f071bfe43@blastwave.org> <CAOtMX2hKCYrx92SBLQOtekKiBWMgBy_n93ZGQ_NVLq=6puRhOg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 11/28/24 08:52, Alan Somers wrote: > On Thu, Nov 28, 2024, 7:06 AM Dennis Clarke <dclarke@blastwave.org> wrote: > >> >> This is a baffling problem wherein two zpools no longer exist after >> boot. This is : . . . > Do you have zfs_enable="YES" set in /etc/rc.conf? If not then nothing will > get imported. > > Regarding the cachefile property, it's expected that "zpool import" will > change it, unless you do "zpool import -O cachefile=whatever". > The rc script seems to do something slightly different with zpool import -c $FOOBAR thus : titan# cat /etc/rc.d/zpool #!/bin/sh # # # PROVIDE: zpool # REQUIRE: hostid disks # BEFORE: mountcritlocal # KEYWORD: nojail . /etc/rc.subr name="zpool" desc="Import ZPOOLs" rcvar="zfs_enable" start_cmd="zpool_start" required_modules="zfs" zpool_start() { local cachefile for cachefile in /etc/zfs/zpool.cache /boot/zfs/zpool.cache; do if [ -r $cachefile ]; then zpool import -c $cachefile -a -N if [ $? -ne 0 ]; then echo "Import of zpool cache ${cachefile} failed," \ "will retry after root mount hold release" root_hold_wait zpool import -c $cachefile -a -N fi break fi done } load_rc_config $name run_rc_command "$1" titan# I may as well nuke the pre-existing cache file and start over : titan# ls -l /etc/zfs/zpool.cache /boot/zfs/zpool.cache -rw-r--r-- 1 root wheel 1424 Jan 16 2024 /boot/zfs/zpool.cache -rw-r--r-- 1 root wheel 4960 Nov 28 14:15 /etc/zfs/zpool.cache titan# titan# titan# rm /boot/zfs/zpool.cache titan# zpool set cachefile="/boot/zfs/zpool.cache" t0 titan# titan# ls -l /boot/zfs/zpool.cache -rw-r--r-- 1 root wheel 1456 Nov 28 14:27 /boot/zfs/zpool.cache titan# titan# zpool set cachefile="/boot/zfs/zpool.cache" leaf titan# titan# ls -l /boot/zfs/zpool.cache -rw-r--r-- 1 root wheel 3536 Nov 28 14:28 /boot/zfs/zpool.cache titan# titan# zpool set cachefile="/boot/zfs/zpool.cache" proteus titan# titan# ls -l /boot/zfs/zpool.cache -rw-r--r-- 1 root wheel 4960 Nov 28 14:28 /boot/zfs/zpool.cache titan# titan# zpool get cachefile t0 NAME PROPERTY VALUE SOURCE t0 cachefile /boot/zfs/zpool.cache local titan# titan# zpool get cachefile leaf NAME PROPERTY VALUE SOURCE leaf cachefile /boot/zfs/zpool.cache local titan# titan# zpool get cachefile proteus NAME PROPERTY VALUE SOURCE proteus cachefile /boot/zfs/zpool.cache local titan# titan# titan# reboot Nov 28 14:34:05 Waiting (max 60 seconds) for system process `vnlru' to stop... done Waiting (max 60 seconds) for system process `syncer' to stop... Syncing disks, vnodes remaining... 0 0 0 0 0 0 done All buffers synced. Uptime: 2h38m57s GEOM_MIRROR: Device swap: provider destroyed. GEOM_MIRROR: Device swap destroyed. uhub5: detached uhub1: detached uhub4: detached uhub2: detached uhub3: detached uhub6: detached uhub0: detached ix0: link state changed to DOWN . . . Starting iscsid. Starting iscsictl. Clearing /tmp. Updating /var/run/os-release done. Updating motd:. Creating and/or trimming log files. Starting syslogd. No core dumps found. Starting local daemons:failed to open cache file: No such file or directory . Starting ntpd. Starting powerd. Mounting late filesystems:. Starting cron. Performing sanity check on sshd configuration. Starting sshd. Starting background file system FreeBSD/amd64 (titan) (ttyu0) login: root Password: Nov 28 14:36:29 titan login[4162]: ROOT LOGIN (root) ON ttyu0 Last login: Thu Nov 28 14:33:45 on ttyu0 FreeBSD 15.0-CURRENT (GENERIC-NODEBUG) #1 main-n273749-4b65481ac68a-dirty: Wed Nov 20 15:08:52 GMT 2024 Welcome to FreeBSD! Release Notes, Errata: https://www.FreeBSD.org/releases/ Security Advisories: https://www.FreeBSD.org/security/ FreeBSD Handbook: https://www.FreeBSD.org/handbook/ FreeBSD FAQ: https://www.FreeBSD.org/faq/ Questions List: https://www.FreeBSD.org/lists/questions/ FreeBSD Forums: https://forums.FreeBSD.org/ Documents installed with the system are in the /usr/local/share/doc/freebsd/ directory, or can be installed later with: pkg install en-freebsd-doc For other languages, replace "en" with a language code like de or fr. Show the version of FreeBSD installed: freebsd-version ; uname -a Please include that output and any error messages when posting questions. Introduction to manual pages: man man FreeBSD directory layout: man hier To change this login announcement, see motd(5). You have new mail. titan# titan# zpool list NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT leaf 18.2T 984K 18.2T - - 0% 0% 1.00x ONLINE - proteus 1.98T 361G 1.63T - - 1% 17% 1.00x ONLINE - t0 444G 91.2G 353G - - 27% 20% 1.00x ONLINE - titan# This is progress ... however the cachefile property is wiped out again : titan# zpool get cachefile t0 NAME PROPERTY VALUE SOURCE t0 cachefile - default titan# zpool get cachefile leaf NAME PROPERTY VALUE SOURCE leaf cachefile - default titan# zpool get cachefile proteus NAME PROPERTY VALUE SOURCE proteus cachefile - default titan# Also, strangely, none of the filesystem in proteus are mounted : titan# titan# zfs list -o name,exec,checksum,canmount,mounted,mountpoint -r proteus NAME EXEC CHECKSUM CANMOUNT MOUNTED MOUNTPOINT proteus on sha512 on no none proteus/bhyve off sha512 on no /bhyve proteus/bhyve/disk off sha512 on no /bhyve/disk proteus/bhyve/isos off sha512 on no /bhyve/isos proteus/obj on sha512 on no /usr/obj proteus/src on sha512 on no /usr/src titan# If I reboot again without doing anything will the zpools re-appear ? titan# titan# Nov 28 14:37:08 titan su[4199]: admsys to root on /dev/pts/0 titan# reboot Nov 28 14:40:29 Waiting (max 60 seconds) for system process `vnlru' to stop... done Waiting (max 60 seconds) for system process `syncer' to stop... Syncing disks, vnodes remaining... 0 0 0 0 0 done All buffers synced. Uptime: 4m50s GEOM_MIRROR: Device swap: provider destroyed. GEOM_MIRROR: Device swap destroyed. uhub4: detached uhub1: detached uhub5: detached uhub0: detached uhub3: detached uhub6: detached uhub2: detached ix0: link state changed to DOWN . . . Starting iscsid. Starting iscsictl. Clearing /tmp. Updating /var/run/os-release done. Updating motd:. Creating and/or trimming log files. Starting syslogd. No core dumps found. Starting local daemons:failed to open cache file: No such file or directory . Starting ntpd. Starting powerd. Mounting late filesystems:. Starting cron. Performing sanity check on sshd configuration. Starting sshd. Starting background file system FreeBSD/amd64 (titan) (ttyu0) login: root Password: Nov 28 14:43:01 titan login[4146]: ROOT LOGIN (root) ON ttyu0 Last login: Thu Nov 28 14:36:29 on ttyu0 FreeBSD 15.0-CURRENT (GENERIC-NODEBUG) #1 main-n273749-4b65481ac68a-dirty: Wed Nov 20 15:08:52 GMT 2024 Welcome to FreeBSD! Release Notes, Errata: https://www.FreeBSD.org/releases/ Security Advisories: https://www.FreeBSD.org/security/ FreeBSD Handbook: https://www.FreeBSD.org/handbook/ FreeBSD FAQ: https://www.FreeBSD.org/faq/ Questions List: https://www.FreeBSD.org/lists/questions/ FreeBSD Forums: https://forums.FreeBSD.org/ Documents installed with the system are in the /usr/local/share/doc/freebsd/ directory, or can be installed later with: pkg install en-freebsd-doc For other languages, replace "en" with a language code like de or fr. Show the version of FreeBSD installed: freebsd-version ; uname -a Please include that output and any error messages when posting questions. Introduction to manual pages: man man FreeBSD directory layout: man hier To change this login announcement, see motd(5). You have new mail. titan# titan# zpool list NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT leaf 18.2T 1.01M 18.2T - - 0% 0% 1.00x ONLINE - proteus 1.98T 361G 1.63T - - 1% 17% 1.00x ONLINE - t0 444G 91.2G 353G - - 27% 20% 1.00x ONLINE - titan# titan# zfs list -o name,exec,checksum,canmount,mounted,mountpoint -r proteus NAME EXEC CHECKSUM CANMOUNT MOUNTED MOUNTPOINT proteus on sha512 on no none proteus/bhyve off sha512 on no /bhyve proteus/bhyve/disk off sha512 on no /bhyve/disk proteus/bhyve/isos off sha512 on no /bhyve/isos proteus/obj on sha512 on no /usr/obj proteus/src on sha512 on no /usr/src titan# OKay so the zpools appear to be back in spite of the strange situation with the cachefile property is empty everywhere. My guess is the zpool rc script is bring in information during early boot. Why the zfs filesystems on proteus do not mount? Well that is a strange problem but at least the zpool can be used. -- -- Dennis Clarke RISC-V/SPARC/PPC/ARM/CISC UNIX and Linux spoken
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?22187e59-b6e9-4f2e-ba9b-f43944d1a37b>