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... :)
- 383 megtekintés
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?
- A hozzászóláshoz be kell jelentkezni
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).
- A hozzászóláshoz be kell jelentkezni
# 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"...
- A hozzászóláshoz be kell jelentkezni
zpool import -a
zpool status
Ezek mit írnak?
- A hozzászóláshoz be kell jelentkezni
# zpool import -a
no pools available to import
# zpool status
no pools available.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
# zpool import -a -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
- A hozzászóláshoz be kell jelentkezni
# 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!
- A hozzászóláshoz be kell jelentkezni
"pool was previously in use from another system."
Valahogy sejtettem. Elmaradt az export.
Csak akkor szólok hozzá egy témához, ha értelmét látom.
- A hozzászóláshoz be kell jelentkezni
Ú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
- A hozzászóláshoz be kell jelentkezni
Mi szállt el? Nincs ennek szárnya. Semmi nem működött hibásan, egy így BAU. Amíg a zpool egy más hostID-hez tartozik muszáj neki megmondani ha téved. A zpool-al semmi baj nem volt se előtte se utána. Csak egyszerűen nem ismered.
- A hozzászóláshoz be kell jelentkezni
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?
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
A /etc/hostid-t nezd meg, hogy reboot utan ugyanaz marad-e. Illetve érdemes megnézni, hogy md/lvm nem rántotta be maga alá a diszkeket. pvs ill cat /proc/mdstat.
- A hozzászóláshoz be kell jelentkezni
Ezt miért tenné? Ha nincs rajta superblock vagy signature?
- A hozzászóláshoz be kell jelentkezni
Honnan tudod, hogy mi volt az a disk előző életében?
https://github.com/openzfs/zfs/issues/634
Mindenesetre ezt 1 perc alatt érdemes kizárni, ezért írtam a kollégának egyből a parancsokat.
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
Elvileg igen, de én SSD-nél blkdiscard-ot szoktam használ, az tényleg lepucol mindent.
- A hozzászóláshoz be kell jelentkezni
Egyelőre úgy tűnik, Neked köszönhető a helyes megoldás.
Eddig 6-ból 6 újraindítás után is mindig összeállt a pool.
Köszönöm, hogy segítettél!
- A hozzászóláshoz be kell jelentkezni
Az első kérdésre, nem tudom miért nem látod a zpool-okat, ezt neked kell kitalálni, sztem van ott hibaüzenet
Második, mitől várod hogy importálja? Benne van a zpool cache be? (zpool get cachefile) vagy engedélyezve van a device scan?
- A hozzászóláshoz be kell jelentkezni
Amikor némelyik újraindítás után elérhető a ZFS pool, akkor ki/mi teszi bele a zpool cache be, ill. ki/mi engedélyezi a device scan-t?
- A hozzászóláshoz be kell jelentkezni
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)
- A hozzászóláshoz be kell jelentkezni
# 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.
- A hozzászóláshoz be kell jelentkezni
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ó
- A hozzászóláshoz be kell jelentkezni
OK, és most kell tennem valamit? Mit állapítottál meg a parancs kimenetéből?
by-id szerint hoztam létre anno a zpoolt
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
# 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?
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
Hát még én! :D
Köszi Neked is a sok idődet és az ötleteket!
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
.
- A hozzászóláshoz be kell jelentkezni
a zfs-initramfs biztos hogy kell.
- A hozzászóláshoz be kell jelentkezni