Czy można zmienić rozmiar sektora partycji dla puli ZFS podniesionych w Linuksie?


9

Migrowałem pulę ZFS z podniesdz na Linuksie na nowe dyski za pośrednictwem urządzeń wirtualnych, które były rzadkimi plikami. Użyłem partycji na dyskach, ponieważ dyski mają różne rozmiary po 1,9 T każda. Ostatnim dyskiem, który należy dodać, jest dysk 4 TB, a ja podzieliłem go na partycje, tak jak pozostałe, z partycją 1,9 T, aby dodać do puli. Korzysta z tablicy partycji GPT. Kiedy próbuję zastąpić ostatni plik partycją 1.9T na dysku 4T, otrzymuję następujące informacje

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

Jak mogę zmienić rozmiar sektora partycji na 512 podobnie jak inne, a jeśli to niemożliwe, można zmienić inne urządzenia puli na 4024? Najwyraźniej logiczne rozmiary sektorów wynoszą 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

Ponieważ partycjonowałem płytę zawierającą oryginalne urządzenie oparte na czwartym pliku, które próbuję wymienić, ale nie działało, odtworzyłem plik urządzenia, więc jest on w tej chwili resilverowany.

Wyjście statusu 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)

Nie możesz zamiast tego zrobić ZFS dołączyć ZFS_raid <plik> <urządzenie> i po zsynchronizowaniu ZFS odłączyć ZFS_raid <plik>
BitsOfNix

czy podłączenie 5. urządzenia nie rozszerzyłoby tablicy nieodwracalnie? a może masz na myśli dodanie czegoś zapasowego?
barrymac

Bez dodawania zapasowego lub dodawania nowego dysku, wykonywanie puli dołączania zpool old_device new_device, spowoduje to odbicie lustrzane old_device do new_device, a następnie odłączenie old_device od mirror po resilver: docs.oracle.com/cd/E26502_01/html/E29007/ gayrd.html # scrolltoc <- informacje o dołączaniu / odłączaniu oraz różnicach między dodawaniem a dołączaniem.
BitsOfNix,

Wygląda to obiecująco, niestety zwrócił „nie można dołączyć / dev / sdd1 do /zfs_jbod/zfs_raid/zfs.2: można podłączyć tylko do mirrorów i dysków najwyższego poziomu”
barrymac 12.12.2013

Czy mógłbyś podać swój aktualny stan wyjścia zfs_raid zpool, aby zobaczyć układ RAID?
BitsOfNix

Odpowiedzi:


4

Znalazłem niezbędną opcję! pula obecnie wykonuje resilver nowej partycji po wydaniu następującego polecenia:

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

Chociaż jest to możliwe, nie jest wskazane, ponieważ osiąga się straszną wydajność, zmuszając dysk typu 4k do zapisu jako 512b. Nauczyłem się na własnej skórze, że należy dodać

-o ashift=12 

podczas tworzenia puli, aby uniknąć konieczności jej późniejszego odtworzenia, ponieważ obecnie nie jest możliwa migracja do rozmiaru sektora 4k.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.