
Я собрал систему 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, если только она сможет их найти. Эта ссылка, (частично на немецком) весьма полезно. Это всего лишь неполная подсказка — считайте это так.