Чи можна змінити розмір сектору розділу для zfs raidz пулу в Linux?


9

Я мігрував zfs raidz пул на Linux на нові диски через віртуальні пристрої, які мали розріджені файли. Я використовував розділи на дисках, оскільки диски різного розміру по 1,9T кожен. Останній доданий диск - це 4 Тб диск, і я розділив його, як інші, з розділом 1.9T, який потрібно додати до пулу. Він використовує таблицю розділів GPT. Коли я намагаюся замінити останній файл розділом 1.9T на диску 4T, я отримую наступне

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

Як я можу змінити розмір сектору розділів на 512, як інші, або не вдалося змінити інші пристрої пулу на 4024? Мабуть, всі розміри логічного сектора 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

Оскільки я перерозподілив диск, який містив оригінальний пристрій на основі файлів на 4-му файлі, який я намагаюся замінити, але він не спрацював, я відтворив файл пристрою, і він наразі перезастосував це.

вихід статусу 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)

Чи не можете ви замість цього zfs приєднати zfs_raid <file> <device> і після синхронізації zfs відірвати zfs_raid <file>
BitsOfNix,

не приєднав би 5-й пристрій безповоротно розширити масив? а може, ви маєте на увазі щось на кшталт додавання запасного?
barrymac

Не додаючи запасний або додайте новий диск, зробивши zpool приєднати пул old_device new_device, це відобразить old_device до new_device, потім ви від'єднаєте old_device від дзеркала після resilver: docs.oracle.com/cd/E26502_01/html/E29007/ gayrd.html # scrolltoc <- інформація про вкладення / відключення та відмінності між додаванням та вкладенням.
BitsOfNix

Це виглядало багатообіцяюче, на жаль повернувшись "не вдається приєднати / dev / sdd1 до /zfs_jbod/zfs_raid/zfs.2: можна приєднувати лише до дзеркал та дисків верхнього рівня"
barrymac

Чи можете ви поставити свій поточний статус zpool zfs_raid, щоб побачити макет рейду?
BitsOfNix

Відповіді:


4

Я знайшов потрібний варіант! На даний момент пул переносить новий розділ після видачі наступної команди:

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

Хоча це можливо, це не доцільно, оскільки ви отримуєте жахливу продуктивність, змушуючи привід типу 4k записуватись як 512b. Я навчився важкого шляху, який слід додати

-o ashift=12 

під час створення пулу, щоб уникнути необхідності його відтворення пізніше, оскільки наразі неможливо «перейти» до розміру сектора 4k.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.