Изменить ссылки на диски ZFS, чтобы использовать GPTID вместо имени GEOM?

Изменить ссылки на диски ZFS, чтобы использовать GPTID вместо имени GEOM?

Я собрал систему FreeNAS на маленьком симпатичном HP ProLiant MicroServer.

Что касается хранения, я создал пул ZFS из 3 дисков с помощью RAIDZ1. Я начал с 3 небольших дисков, пока знакомился с FreeNAS, но в конечном итоге решил заменить им свой домашний NAS.

Поэтому я купил новые диски на 2 ТБ и заменил каждый диск на диск большего размера, по одному за раз, давая пулу восстановиться после каждой замены.

Исходный пул, созданный через графический интерфейс, использовал ссылки GPTID. zpool statusпокажет что-то похожее на это:

  pool: vol2
 state: ONLINE
  scan: none requested
config:

        NAME                                          STATE     READ WRITE CKSUM
        vol2                                          ONLINE       0     0     0
          gptid/96857d85-6c2f-11e3-9387-78acc0f794bd  ONLINE       0     0     0

Когда я заменил диски в пуле на zpool replace, я в конечном итоге использовал имена GEOM (адаН) вместо этого. Честно говоря, мне так было намного проще и понятнее.

Но, похоже, обращение к дискам с использованием имен GEOM сопряжено с риском перемаркировки дисков после перезагрузки.запутанный ZFSи, возможно, при этом повредятся ваши пулы ZFS.

Я решил, что могу «отключить» каждый из дисков и заменить их на zpool replace, используя их GPTID, что, как я предполагаю, потребует повторного переноса данных, тем самым подвергая свои данные риску во время этого процесса.

Однако я не могу найти никаких GPTID для моих дисков «ada». ls /dev/gptidПросто выводится мой четвертый и в настоящее время неиспользуемый диск. glabel listВозвращает тот же диск/GPTID и различные разделы FreeNAS.

  • Есть ли вообще смысл заменять указанные имена GEOM на GPTID?
  • Почему я не вижу GPTID для новых дисков? Нужно ли что-то делать, прежде чем GPTID будут назначены и glabel listвернут свои имена?
  • Есть ли более безопасный способ сделать это, не требующий повторного серебрения?

Спасибо!

решение1

•Есть ли на самом деле смысл в замене указанных имен GEOM на GPTID?

Имена GEOM генерируются из слотов контроллера, поэтому если вы поменяете разъемы дисков, их имена GEOM также поменяются. Имена GPTID основаны на серийных номерах дисков и везде одинаковы.

•Почему я не вижу GPTID для новых дисков? Нужно ли мне что-то сделать, прежде чем GPTID будут назначены и glabel list вернет их имена?

Когда диск используется одним идентификатором (GEOM в zpool в вашем случае), другие идентификаторы (включая GPTID) блокируются. Поэтому, когда вы отсоединяете диск от zpool или просто переводите его в офлайн - в /dev/gptid появится отсутствующий gptid

•Есть ли более безопасный способ сделать это, не требующий повторного серебрения?

Единственный способ — отсоединить диск и снова присоединить его к пулу под другим именем. Resilvering не так опасен, как вы можете подумать, потому что это всего лишь процесс проверки и синхронизации зеркала. Он копирует только данные, которые не синхронизированы, поэтому вы рискуете только изменениями, внесенными между отсоединением и повторным присоединением диска.

решение2

ZFS была разработана с целью проверки достоверности данных: она не будет предоставлять поврежденные данные, но и не будет предоставлять их, если не сможет предоставить правильные данные (настраиваемое поведение по умолчанию). Перемещение дисков пула не запутает ZFS, если только она сможет их найти. Эта ссылка, (частично на немецком) весьма полезно. Это всего лишь неполная подсказка — считайте это так.

Связанный контент