ZFS — слон в посудной лавке

ZFS — слон в посудной лавке

Если вы некоторое время пользовались ZFS, а затем решили от неё отказаться, то эта заметка для вас.

ZFS - слон в посудной лавкеКогда я первый раз строил NAS, то наслушавшись советчиков выбрал файловую систему ZFS и сделал рейд из 3х дисков. Спустя некоторое время у меня появилась возможность увеличить вместимость NAS путём замены дисков на более ёмкие. И тогда, уже некоторое время попользовавшись ZFS и составив о ней своё мнение, я решил что, а) на моём железt ZFS ворочается довольно медленно и б) она для меня избыточна.

Поизгалявшись с перегоном данных на свободные носители переразбил диски под ext4, настроил RAID1 на паре из них и один оставил как файлопомойку.

Прошло много времени, диск с файлопомойкой был заменён на другой более ёмкий и продолжал использоваться, а ещё спустя некоторое время решил заменить диски в RAID1 и переделать структуру дисковой системы отказавшись от зеркалирования в пользу бэкапа данных на разные носители. Одновременно решил обновить используемую версию openmediavault, а поскольку за несколько лет издевательств над системой в ней накопились ошибки решил поставить и настроить новую версию с нуля, а не заниматься выискиванием ошибок мешающих обновлению и их устранением. После обновления системы планировалось сделать копию данных с RAID1 на новые диски и настроить rsync для важных данных.

В идеале после обновления openmediavault должен был увидеть существующий RAID, останется только смонтировать файловую систему и заниматься переносом данных, но не тут то было… Openmediavault увидел RAID, но в упор не видел на нём файловой системы. Ещё одна причина делать бэкапы перед внесением изменений в работающую систему.

Путём долгих поисков проблемы я стал замечать сообщения на форумах типа «А небыло ли у вас до этого на дисках ZFS?». Покопавшись в интернете выяснил, что даже после удаления разделов и создания новых, форматирования, на диске могут остаться следы ZFS (не все йогурты утилиты разметки дисков одинаково полезны).

Затем наткнулся на сообщение от ananas на форуме openmediavault и решил проверить свои диски по описанной методике. Для этого коннектимся к серверу по SSH под root’ом и далее выполняем следующие команды

  1. Если у вас диски не в RAID blkid — отобразит ваши диски с их UUID типами FS и прочее. Но эта команда не показывает md raid.
  2. По этому если у вас есть диски в RAID выполняем lsblk — отобразит все диски, их размер, точку монтирования и т.д.
  3. Смотрим номер после md (у меня это md127) и выполняем следующую команду wipefs -n /dev/md127. Если делаете процедуру для отдельных дисков, то wipefs -n /dev/sdX где X буква диска к которому применяется операция.
  4. на выходе получим примерно следующее
    offset                           type
    —————————————————————-
    0x82fcbbefc00            zfs_member   [filesystem] LABEL: pool1 UUID: 17414797601597129307
    0x438                           ext4 [filesystem] LABEL: data1 UUID: 870cef82-b75f-4c78-a111-213389d87c3f
    Видим что присутствуют заголовок ZFS и нам нужно избавится от него оставив ext4 с нашими данными. В дальнейшем нам понадобится значение offset (у вас оно будет отличатся, по этому команду ниже перестраиваем под себя)
  5. Для очистки ZFS мусора вбиваем команду wipefs -b -o 0x82fcbbefc00 -t noext4 /dev/md127 не забыв поменять 0x82fcbbefc00 на своё значение, так же меняем md127 на свой диск если проводим операцию не над массивом.
  6. Повторяем пункты 3-5 пока не увидим что следов ZFS больше нет
    offset           type
    —————————————————————-
    0x200          gpt [partition table]
  7. Идём в «Хранилище — Файловые системы» и проверяем, должна появится наша потерянная файловая система.

Может понадобится довольно большое количество повторений пунктов 3-5, у меня для двух дисков это было порядка 70 правок.

Комментарии

Ваш email адрес не будет опубликован.Обязательные поля отмечены *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Lost Password