13:20 

Забавный фокус

Дано. Поднятый непойми кем и непойми когда сервер freenas на 7.4-p7.
Через iscsi раздается 600+ гигов для бэкапа. Физически раздается не блочное устройство, а файл.
Раздается, работает - но есть нюанс! Из 600+ раздающихся гигов реально используется несколько меньше, а место таки трэба. Т.е. надо бы экспортировать через iscsi мнэээ... "динамически увеличивающийся" носитель.
Вопрос? Нивапрос, гуглим в сторону sparse files, которые таки поддерживаются в UFS2.
dd if=/dev/zero of=/mnt/sparse.img bs=1G count=1 seek=619 conv=sparse
"Проматываем" 619 гиговых блоков от начала файла, дальше пишем гиг нулей (Реально можно было и точнее подогнать, но считать лениво), указываем, что создаем "разряженный" файл, при этом реально запись "нулей" не производится.
Делам ls -lah - уупс! Видим размер 620G. Гм. Делаем на всякий случай du -hd 1 /mnt - ууупс-2, занято полтора гига. Т.е. ls со sparse-файлами просто работать не умеет (Ну или там ключик какой специяльный нужОн, не разбирался). Дальше экспортим через iscsi, форматируем, пишем, проверяем. Работает.
Если вдруг нужно на standalone-машине повошкаться (Ну-там jail'ы покрутить или еще чего) можно воспользоваться loop-устройствами, о чем я вроде даже и писал:
mdconfig -a -t vnode -f /путь -u номер
gpart create -s mbr /dev/mdномер
gpart add -t freebsd /dev/mdномер
newfs //dev/mdномерs1
mount /dev/mdномерs1 /путь
Работаем!

P.S. Из замеченных косяков - зверская фрагментация при работе "на запись" с большим количеством sparse-файлов, возможность отстрелить себе ногу с помощью overcommit'a так же ничем не ограничена. А вообще - работает и работает хорошо.

@темы: FreeBSD, Работа

URL
   

Танец-с-саблями на граблях

главная