[Megoldva] Debian 11 + Proxmox VE 7 + ZFS: no pools available

Fórumok

Debian 11 + Proxmox VE 7
Szerver újraindítás után nem mindig jön fel a zfs pool. Ilyenkor (néha többször is) újraindítom és megint használható a zfs pool.

# zpool list
no pools availabl
# fdisk -l #(részlet)
Disk /dev/nvme3n1: 1,75 TiB, 1920383410176 bytes, 3750748848 sectors
Disk model: SAMSUNG MZQL21T9HCJR-00A07              
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 131072 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: B00FD358-9035-144C-BFDB-B4CCD7CFE81C

Eszköz              Start       Vége  Szektorok  Size Típus
/dev/nvme3n1p1       2048 3750731775 3750729728  1,7T Solaris /usr & Apple ZFS
/dev/nvme3n1p9 3750731776 3750748159      16384    8M Solaris reserved 1


Disk /dev/nvme2n1: 1,75 TiB, 1920383410176 bytes, 3750748848 sectors
Disk model: SAMSUNG MZQL21T9HCJR-00A07              
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 131072 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: 68339494-26D3-354D-A8B8-C8D39E3A6290

Eszköz              Start       Vége  Szektorok  Size Típus
/dev/nvme2n1p1       2048 3750731775 3750729728  1,7T Solaris /usr & Apple ZFS
/dev/nvme2n1p9 3750731776 3750748159      16384    8M Solaris reserved 1
# apt install -y zfsutils-linux

paranccsal telepítettem a ZFS-t. Csak a zfsutils-linux csomagot tettem fel a szerverre, Kell esetleg a zfs-dkms, a zfs-dracut, vagy a zfs-initramfs, esetleg bármi más?

1. Mit tegyek, hogy normálisan működjön minden újraindítás után?

2. Amikor nem áll helyre a pool, hogyan tudom importálni, vagy életre kelteni? A partíciók látszólag rendben megvannak.

Megoldás itt arra, ha exportálás nélkül újratelepítés után nem áll helyre a pool.
Köszönet @hunti

Megoldás
Köszönet @sibike

Köszönöm szépen mindenkinek a rengeteg hasznos infót és az ötleteket. Ma is sokat tanultam... :)

Hozzászólások

Mi a teendő, ha a

# zpool list
no pools available

a válasz?
2 db NVMe SSD, a partíciók látszólag rendben vannak.

Hogyan keltsem életre a ZFS-t?

Szerkesztve: 2021. 12. 22., sze – 12:19

Egészen pontosan mi a hibaüzenet bootnál vagy zpool import-nál? Véletlenül nincs másik lemez a gépben, amin korábban azonos nevű zfs pool volt? Nálam okozott már ilyen gondot, bár olyankor fixen nem bootolt be a proxmox, bootnál manuálisan kellett importálni UUID alapján a megfelelő poolt (hibaüzenet: more than one matching pool).

# zpool import backup
cannot import 'backup': no such pool available

4 NVMe van a gépben.
A 0. és az 1. software RAID1-ben van ext4-el, ezen van a Proxmox.
A 2. és 3. ZFS mirror, ami vagy feljön automatikusan boot után, vagy nem.
Nem volt másik ilyen nevű pool, legalábbis úgy tudom, hogy új a gép, más még nem használta előttem.
Importálni sem tudom, mert "no pools available"...

zpool import -a -d /dev/nvme3n1 -d /dev/nvme2n1

Esetleg -F opció?

-F      Recovery mode for a non-importable pool.  Attempt to return the pool to an importable state by
                     discarding the last few transactions.  Not all damaged pools can be recovered by using this op‐
                     tion.  If successful, the data from the discarded transactions is irretrievably lost.  This op‐
                     tion is ignored if the pool is importable or already imported.

# zpool import -a -F -d /dev/nvme2n1p1 -d /dev/nvme3n1p1
cannot import 'backup': pool was previously in use from another system.
Last accessed by ... (hostid=xxx) at Tue Dec 21 11:31:08 2021
The pool can be imported, use 'zpool import -f' to import the pool.
# zpool import -a -f -d /dev/nvme2n1p1 -d /dev/nvme3n1p1

Sikerült!
Köszönöm!

Újratelepítettem a szervert, előtte valóban nem exportáltam a poolt.
Egyébként sima újraindítás előtt is exportálni, majd indulás után importálni kellene? Az asztali gépemen sosem exportáltam még, mégsem szállt el egyszer sem újraindítás miatt a ZFS.

Szerk.:

Csak egy tipp. Nálam a ZFS export-import-nál volt gond hasonló esetben.

Csak azt nem írtad, hogy mi volt a gond és mi a megoldás. Ez sajnos nem sokat segített... :D

Az tény, hogy nem ismerem eléggé.
És ebben az esetben valóban az volt a baj, hogy újratelepítettem a gépet export/import nélkül.

DE a többi esetben csak sima újraindítás volt, mégsem állt össze a pool. Arra mi a magyarázat, ill. mi ellene a teendőm?

Pl. próbából most is újraindítottam a gépet és nincs ZFS.
# zpool list
no pools available

# zpool import -a
no pools available to impor

# zpool import -a -F -d /dev/nvme2n1p1 -d /dev/nvme3n1p1
no pools available to import
# zpool import -a -F -d /dev/nvme2n1 -d /dev/nvme3n1   
no pools available to import
# zpool import -a -f -d /dev/nvme2n1 -d /dev/nvme3n1  
no pools available to import
# zpool import -a -f -d /dev/nvme2n1p1 -d /dev/nvme3n1p1
no pools available to import

Nincs szárnya, de mégis eltűnt.... :D

Szerk.: Újraindítottam még egyszer és van ZFS "magától", automatikusan...

Szerk. 2:
# zpool export backup
# reboot
# zpool import backup   
cannot import 'backup': no such pool available

# zpool import -a -F -d /dev/nvme2n1p1 -d /dev/nvme3n1p1
Újra elérhető a backup pool

Lehet, hogy megvan a nyertes:

# cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 nvme1n1p2[1] nvme0n1p2[0]
      523264 blocks super 1.2 [2/2] [UU]
      
md2 : active raid1 nvme1n1p3[1] nvme0n1p3[0]
      934936896 blocks super 1.2 [2/2] [UU]
      bitmap: 1/7 pages [4KB], 65536KB chunk

md0 : inactive nvme2n1p1[2](S) nvme3n1p1[3](S)
      8378368 blocks super 1.2

Ez megoldja a problémát, vagy kell még tennem valamit:

# zpool destroy backup # Nincs rajta semmi fontos
# mdadm --zero-superblock /dev/nvme2n1p1
# mdadm --zero-superblock /dev/nvme3n1p1
# update-initramfs -u
# zpool create backup mirror nvme-SAMSUNG_...56 nvme-SAMSUNG_...80

 

Lekérdezted amit kértem? Nem látom az eredményét (zpool get cachefile), cserében te teszed fel a kérdésed. Hogy érthető legyen, ezt te állítod be a poolnak. Ha nincs deklarálva vagy a /etc/zfs/zpool.cache broken, vagy nem aktív a cache-en alapuló import akkor nem fogja semmi mountolni. 

A rendszerbetöltő (jelen esetben a systemd) részére az openzfs a zpool-import-cache és a zpool-impor-scan szervizeket telepíti, azt hiszem defaultban a zpool-import-cache engedélyezve is szokott lenni, ettől még nem fogja felmountolni.  Ha cache file alapján akarod akkor

mv /etc/zfs/zpool.cache /etc/zfs/zpool.cache.back 

zpool set cachefile=none ZPOOL

zpool set cachefile=/etc/zfs/zpool.cache

zpool status zpool-import-cache 

 

ha nem akarod hasznalni a cache-t  és scannelni akarsz minden bootnál:

zpool status zpool-import-scan

zpool enable zpool-import-scan 

 

illetve nézd meg hogy valami más elviheti e a diszkeket (ahogy fentebb kérdezték, lvm, mdadm)

# zpool get cachefile
NAME    PROPERTY   VALUE      SOURCE
backup  cachefile  -          default

 

Bocs, eddig a hwid-t néztem meg és annak néztem utána, hogy az mdadm is elviheti a lemezeket.

Köszi, hogy segítesz, nem kioktatsz. :)

Szerk.: Nem tudom, hogy akarpm-e használni a cache-t, vagy a scan is jó-e. Nem tudom még, mi a különbség a két megoldás közt.

Első megoldásnál oda kell figyelned mit raksz be a gépbe és hogy, a stabil konfigoknál rendben van, ha tudod mit csinálsz. (cache, ilyenkor az is fontos, hogy a cacheben lévő azonosítóval legyenek meg a vdev-ek, mert ha változik, akkor szart sem ér itt érts, ugyanannak az eszköznek lehet több neve is (sdc) /dev/sdc vagy nvme- /dev/disk/by-id/* vagy...) 

A második akkor érdemes, ha változó vdev-ek (path-ek) vannak a rendszerben, de lassítja a bootot és nem akart problémát is okozhat bizonyos esetekben ezért nem is szokták használni, csak ha tudják, hogy így jó

Nincs értéke, látod te is kövesd amit a cache file-hoz leirtam

mv /etc/zfs/zpool.cache /etc/zfs/zpool.cache.back 

zpool set cachefile=none ZPOOL

zpool set cachefile=/etc/zfs/zpool.cache

zpool status zpool-import-cache 

 

ls -al /etc/zfs/zpool.cache 

Ha nem létezik (létre kell jönnie újra) akkor engedélyezd  a

systemctl enable zpool-import-scan 

# zpool get cachefile
NAME    PROPERTY   VALUE      SOURCE
backup  cachefile  -          default

# ls -al /etc/zfs/zpool.cache 
-rw-r--r-- 1 root root 2256 dec   22 19.44 /etc/zfs/zpool.cache

# systemctl status zfs-import-cache.service 
● zfs-import-cache.service - Import ZFS pools by cache file
     Loaded: loaded (/lib/systemd/system/zfs-import-cache.service; enabled; vendor preset: enabled)
     Active: active (exited) since Wed 2021-12-22 19:44:07 CET; 8min ago
       Docs: man:zpool(8)
    Process: 811 ExecStart=/sbin/zpool import -c /etc/zfs/zpool.cache -aN $ZPOOL_IMPORT_OPTS (code=exited, status=0/SUCCESS)
   Main PID: 811 (code=exited, status=0/SUCCESS)
        CPU: 14ms

dec 22 19:44:07 ... systemd[1]: Starting Import ZFS pools by cache file...
dec 22 19:44:07 ... systemd[1]: Finished Import ZFS pools by cache file.

Ennek ellenére megcsináljam amiket javasoltál?

Ha jó a zpool.cache és ez alapján importálja akkor ne. Csak figyelj oda, hogy ez a feltétele hogy importálva legyen, és mostmár tudod hogy állítsd helyre ha kell.

Örülök, hogy meglett mi lopta el tőled a vdev-et. Nem volt köze a ZFS-hez

Ugyan ez. Újraindítás/indítás után néha nem volt elérhető a zpool. Ha jól rémlik, egy hibásan megírt systemd (mi más) bigyó volt az ok (ubuntu).

Mivel amúgy se voltam megelégedve a ZFS-el, így átálltam másra. Szóval nálam már nem releváns a hiba.

Csak akkor szólok hozzá egy témához, ha értelmét látom.

Szerkesztve: 2021. 12. 22., sze – 13:58

.

a zfs-initramfs biztos hogy kell.