Il 24/04/24 16:29, Paride Desimone ha scritto:
Buongiorno.

Ciao, non so se hai già risolto ma premetto che non sono ferrato su ZFS (lo uso da poco) ne tantomeno su VSphere/ESXi e company (non li uso da un bel po) quindi se dico qualche capp---ata, perdonatemi e correggetemi.

Ho una vm con due dischi che erano parte di un pool zfs.
Ora dopo che la macchina ha avuto varie problematiche (a seguito aggiornamento vmware non partiva più),  ho la necessità di rimontare questi due dischi sulla stessa vm, che inutile dirlo non riesco a montare.

Prima di tutto, scusa se te lo chiedo: ma hai/avete fatto qualche test prima di aggiornare tutto? Dalla mia esperienza con ESXi ad ogni aggiornamento era una menata, non oso immaginare migrare tra major release.

Spero tu abbia un backup dei dati sul pool.



dando: zpool list
NAME     SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
ncdata      -      -      -      -      -  FAULTED  -

ho la situazione precedente.
provo allora a fare uno "zpool status -x" ed ottengo

   pool: ncdata
  state: UNAVAIL
status: One or more devices could not be opened.  There are insufficient
     replicas for the pool to continue functioning.
action: Attach the missing device and online it using 'zpool online'.
    see: http://www.sun.com/msg/ZFS-8000-3C
  scrub: none requested
Aborted (core dumped)



Da quello che mi sembra di capire non vede i device. Infatti lui ti consiglia di metterli online con:

"action: Attach the missing device and online it using 'zpool online'."


Se non dovesse funzionare...da quello che ho capito sono dischi virtuali giusto? Questi dischi sono accessibili al sistema nel senso che il sistema li vede? Puoi maneggiarli? Le partition table di dei dischi per zfs è rimasta uguale?

Può essere che durante l'aggiornamento c'è stata anche una modifica al formato delle immagini dei dischi e le stesse sono state modificate (aggiornate al nuovo formato) e zfs non riconosce più i suoi devices?

> Se gli do zpool import ncdata
> ottengo
> cannot import 'ncdata': a pool with that name is already created/imported,
> and no additional pools with that name were found
>

Potresti provare ad esportare il pool e poi re-importarlo ma non so che succede se è in uno stato UNAVAIL

Prova ad importare specificando almeno un device (non sono responsabile di quello che succederà), tipo:

        # zpool import -d /dev/sdb1 ncdata


se gli do zpool add ncdata /dev/sdb1 /dev/sdc1
ottengo
cannot open 'ncdata': pool is unavailable

Ora, non sono proprio ferrato in zfs. Qualcuno saprebbe darmi una mano a capire come montare questi dischi per poter accedere i dati?

La butto li, fare un destroy del pool e recuperarlo?
https://docs.oracle.com/cd/E19253-01/819-5461/6n7ht6r0o/index.html

Magari fa qualche prova su un'altra VM con immagini di piccole dimensione e con qualche dato dentro e vedi se un export, un destroy non ti distrugge i dati e ti permette veramente di recuperare il pool.

Al momento non mi viene altro in mente se non ricrea il pool e fai il restore del backup.

Qualche nota su ZFS:

1. per esperienza personale devi sempre usare i nomi persistenti dei dischi con ZFS (tipo /dev/disk/by-id/.....). Qualche tempo fa ho usato i nomi canonici e la scheda madre li invertiva ad ogni reboot cosi ZED mi rompeva ad ogni avvio dicendo che c'èrano problemi e mi lanciava un resilvering.

2. Mi hanno sempre sconsigliato di utilizzare ZFS su dischi virtuali in quanto ZFS deve accedere direttamente ai device. Inoltre se le immagini virtuali sono COW mettere un filesystem COW su immagini COW rallenta le performance, ma di usare i device fisici, montarli e dire all'hypervisor di usare quel mountpoint come risorsa. Se proprio non ne puoi fare a meno e sei costretto ad usare come dischi delle immagini che siano almeno in formato RAW. Non ho esperienza di questo ma sembra sensato.

Fammi sapere come va, che sono interessato.

Un saluto.

Rispondere a