È possibile modificare la dimensione del settore di una partizione per il pool raidz zfs in linux?


9

Ho migrato un pool raidz di zfs su linux su nuovi dischi tramite dispositivi virtuali che erano file sparsi. Ho usato le partizioni sui dischi poiché i dischi hanno dimensioni diverse di 1,9 T ciascuno. L'ultimo disco da aggiungere è un disco da 4 TB e l'ho partizionato come gli altri con una partizione 1.9T da aggiungere al pool. Sta usando una tabella delle partizioni GPT. Quando provo a sostituire l'ultimo file con la partizione 1.9T sul disco 4T ottengo quanto segue

zpool replace -f zfs_raid /zfs_jbod/zfs_raid/zfs.2 /dev/sdd1 
cannot replace /zfs_jbod/zfs_raid/zfs.2 with /dev/sdd1: devices have different sector alignment

Come posso modificare la dimensione del settore della partizione in 512 come gli altri, o in caso contrario è possibile cambiare gli altri dispositivi del pool in 4024? Apparentemente le dimensioni del settore logico sono tutte 512

cat /sys/block/sdd/queue/hw_sector_size
Disk /dev/sdd: 4000.8 GB, 4000787030016 bytes, 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Dato che ho ripartizionato il disco che conteneva il 4 ° dispositivo basato su file originale che sto cercando di sostituire ma non ha funzionato, ho ricreato il file del dispositivo in modo che al momento lo stia rinnovando.

output dello stato di zpool:

NAME                            STATE     READ WRITE CKSUM
zfs_raid                        DEGRADED     0     0     0
  raidz1-0                      DEGRADED     0     0     0
    sda3                        ONLINE       0     0     0
    sdc2                        ONLINE       0     0     0
    sdb1                        ONLINE       0     0     0
    replacing-3                 OFFLINE      0     0     0
      /zfs_jbod/zfs_raid/zfs.2  OFFLINE      0     0     0
      /mnt/butter2/zfs.4        ONLINE       0     0     0  (resilvering)

Non puoi fare invece zfs attach zfs_raid <file> <device> e dopo aver sincronizzato zfs stacca zfs_raid <file>
BitsOfNix

collegare un quinto dispositivo non espanderebbe l'array in modo irreversibile? o forse vuoi dire qualcosa come aggiungere un ricambio?
Barrymac,

Non aggiungendo un disco di riserva o aggiungendo un nuovo disco, facendo zpool attach pool old_device new_device, questo rispecchierà old_device su new_device, quindi rimuoverai old_device dal tuo mirror dopo il resilver: docs.oracle.com/cd/E26502_01/html/E29007/ gayrd.html # scrolltoc <- informazioni su attach / detach e le differenze tra add e attach.
BitsOfNix,

Sembrava promettente, purtroppo, ha restituito un "impossibile associare / dev / sdd1 a /zfs_jbod/zfs_raid/zfs.2: può collegarsi solo a mirror e dischi di livello superiore"
barrymac,

Potresti mettere il tuo attuale stato zpool output zfs_raid, per vedere il layout del raid?
BitsOfNix,

Risposte:


4

Ho trovato l'opzione necessaria! il pool sta attualmente ripristinando la nuova partizione dopo aver emesso il comando seguente:

 zpool replace  -o ashift=9 zfs_raid <virtual device> /dev/sdd1

Sebbene ciò sia possibile, non è consigliabile perché si ottengono prestazioni terribili costringendo un'unità di tipo 4k a essere scritta come 512b. Ho imparato nel modo più duro che si dovrebbe aggiungere

-o ashift=12 

durante la creazione del pool per evitare di doverlo ricreare in un secondo momento poiché attualmente non è possibile "migrare" alla dimensione del settore 4K.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.