Назад | Перейти на главную страницу

Преобразование raidz1 в raidz2 через временный диск

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

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

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

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

Обновить

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

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

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

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

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

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

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

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