Конвертировать raidz1 в raidz2 через временный привод
Я установил новый NAS-сервер несколько месяцев назад и установил его как RaidZ. Я переосмысливаю это решение и хотел бы получить дополнительный диск и перейти на RaidZ2. Прежде чем все ответят, что это невозможно с ZFS, я хотел бы отметить, что я знаю, что это невозможно напрямую. Я искал документы в течение нескольких дней, но, похоже, нет набора инструкций, как сделать это вручную. Я считаю, что мне нужно:
- Переместите весь пул на диск, достаточно большой, чтобы вместить использованное пространство
- снести существующий пул.
- создать новый пул, используя дополнительный диск в raidz2
- Переместите данные обратно в пул.
Не кажется слишком сложным, но я не достаточно знаком с 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 в файл в нем. Вы не можете установить это, чтобы проверить, но имхо говорят, что это немного безопаснее.
Просто скрестите пальцы, чтобы ваш запасной диск не умер во время этой работы.