Конвертировать raidz1 в raidz2 через временный привод

Я установил новый NAS-сервер несколько месяцев назад и установил его как RaidZ. Я переосмысливаю это решение и хотел бы получить дополнительный диск и перейти на RaidZ2. Прежде чем все ответят, что это невозможно с ZFS, я хотел бы отметить, что я знаю, что это невозможно напрямую. Я искал документы в течение нескольких дней, но, похоже, нет набора инструкций, как сделать это вручную. Я считаю, что мне нужно:

  1. Переместите весь пул на диск, достаточно большой, чтобы вместить использованное пространство
  2. снести существующий пул.
  3. создать новый пул, используя дополнительный диск в raidz2
  4. Переместите данные обратно в пул.

Не кажется слишком сложным, но я не достаточно знаком с ZFS или FreeBSD, чтобы поверить, что я успешно выполнил шаг 1. Я тоже не совсем уверен в шаге 4, но это можно повторить, хотя испортить первый шаг не будет будь веселым. Мое чтение предполагает, что rsync - это способ эффективно клонировать диск, но я хочу быть уверен, что то, что я копирую, точно такое же, как и исходный, включая системные / скрытые файлы, символические ссылки, тюрьмы и т. Д., И т. Д. ОС запуск с зеркальных флешек, которые не будут меняться, и в идеале они даже не заметят, что что-то изменилось при следующей загрузке (например, все джейлы запускаются как раньше) Копирует / клонирует ли пул / диски также информацию о разделах? Будет ли FreeNAS воссоздавать их или мне нужно будет манипулировать ими вручную.

Я использую FreeNAS 9.3 и имею жесткий диск 3x3 ТБ в одном пуле raidz. Я хотел бы закончить с 4x3TB в raidz2. Текущий пул использует 1,3 ТБ пространства, и у меня есть внешний диск 2 ТБ для временного хранения. Это не важно, если данные будут потеряны.

Обновить

Актуальный вопрос: как мне скопировать пул на временный диск, при этом гарантируя, что он является достаточно полной копией, чтобы перенести ее в воссозданный z pool. Также, как мне отодвинуть его назад, если это не просто обратная сторона оригинальной копии.

2 ответа

Вот как я бы подошел к этому, используя только графический интерфейс FreeNAS:

  • Настройте периодическую задачу моментального снимка для рекурсивного снимка из вашего корневого набора данных (например, том x)
  • Используйте временный диск для создания простого тома с 1 диском, скажем, тома y.
  • Установите репликацию на этот диск, от x до y.
  • Подождите, пока не будет выполнена репликация.
  • Настройте периодическую задачу снимка для рекурсивного снимка y.
  • Уничтожить и воссоздать х.
  • Настройте репликацию обратно с y на x.
  • Подождите, пока не будет выполнена репликация.
  • Уничтожь

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

Ты можешь использовать zfs send... таким образом, вы легко "сохраните" все, что находится в файловой системе. Включая, но не ограничиваясь, скрытые файлы, атрибуты файлов, расширенные атрибуты, zvols, снимки и т. Д.

На самом деле вы можете создать "реплику" файловой системы на вашем запасном диске, смонтировать ее или даже загрузить, чтобы увидеть, что она завершена, работоспособна и загружаема, а затем приступить к уничтожению старого пула.

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

Просто скрестите пальцы, чтобы ваш запасной диск не умер во время этой работы.

Другие вопросы по тегам