LINUX.ORG.RU

MD RAID метаданные в конце устройства


0

0

Здравствуйте,
в утилитах создания файловых систем очень старательно зануляются несколько блоков в конце устройства.
Вот, например комментарий из mkfs.xfs
/*
* Zero out the end of the device, to obliterate any
* old MD RAID (or other) metadata at the end of the device.
* (MD sb is ~64k from the end, take out a wider swath to be sure)
*/

Однако мне надо знать чем грозит НЕ зануление этих метаданных. И вообще используются ли они реально после такого создания ФС.

А то скоро build_xfs собираюсь выпускать для anyfs-tools.sf.net, всё уже сделано, но вот эта вещь мне остаётся не понятной:
занулить просто так их я не могу -- там всё же уже могут быть пользовательские данные. В тоже время даже если я не занулю, то если туда будут ещё какие-то метаданные писаться, то по любому эти пользовательские данные потруться.
А с другой стороны если эта область затем будет использоваться не для файловой системы, то странно, что эти mkfs'ы не помечают их как занятые (или не считают размер файловой системы несколько меньше чем размер устройства)..

★★★★

Re: MD RAID метаданные в конце устройства

Немного поgoogleил, и пришёл к `man md`.
Раздел "MD SUPER BLOCK" там что-то прояснил.. Действительно в конце этого MD RAID отнимается от устройства 64 Кб, так как хранятся там некоторые метаданные..

Ну, надо было что-то как-то испытать и я взялся за это:
$ dd if=/dev/zero of=RAID-1 bs=1024 count=1024K
$ dd if=/dev/zero of=RAID-2 bs=1024 count=1024K
# /sbin/mdadm --create /dev/md0 --level=1 --raid-devices=2 RAID-1 RAID-2
mdadm: Cannot get size of RAID-1: Inappropriate ioctl for device
mdadm: Cannot get size of RAID-2: Inappropriate ioctl for device
mdadm: create aborted

Мда, mdadm нас, конечно, не поддержал в нашем желании создать RAID-массив на файлах, но нас это не остановило:
# /sbin/losetup /dev/loop1 RAID-1
# /sbin/losetup /dev/loop2 RAID-2
# /sbin/mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/loop1 /dev/loop2
mdadm: array /dev/md0 started.

Поверка hexdump'ом показало, что размер устройства получился 3fff0000,
Т.е. ровно на 64 Кб меньше чем созданные 1Гб файлы.
Таким образом эти 64 Кб не доступны пользователю, они "откусываются" ядром.
Разумеется и mkfs в эти 64 Кб устройства /dev/md0 писать не может.

А нужно это зануление видимо в том случае когда развяжешь эти RAID-1 и RAID-2, а затем создашь на них две отдельные ФС.
Видимо это нужно чисто в гигиенических целях -- чтоб затем mdadm не врал, что они -- часть RAID-массива. Ибо какая уж тут часть, когда на нём новая ФС создана.

Вот, так. Поправьте, если что наврал.

unDEFER ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.