Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов.
8(977)608-78-62 adm@nixm.ru

Немного о ZFS

Ответить
Аватара пользователя
tupoll
Уважаемый участник
Уважаемый участник
Сообщения: 231
Зарегистрирован: 19 янв 2015, 07:30
Откуда: Vladivostok

Немного о ZFS

Сообщение tupoll »

На dos рассматривать zfs не будем совсем по причине ненужности.
Главное правило для нормальной работы этой ф.с. это правильно создать-импортировать zpool.cache
он вобщем-то и является основой для загрузки файловых сустем пула.Пул -выделенная область на носителе
в которую записываюся файловые системы-количество которых в общем-то ничем не ограничено.Любую ф.с в пуле
можно легко удалить,перенести на другой пул снапшотом,сжать-включить компресию,выбор которой тоже имеется.
На практике используется обычно lz4-как самая шустрая,gzip с выбором степени сжатия 1-9.Можно так же создать
ограничение на размер ф.с -квоту и другие блее-менее полезные функции в мане читаются,расписывать все нет смысла
половина из них для яростных профи.Создание и процедуру записи временных меток описывать не буду-просто можно выключить.
ARC cache отвечает за загрузку и работу файловых систем выгружается в оперативную память,можно подружить с tempfs и zram,при размере
оперативы меньше 8гигов -ограничивается пространство.3-4Г -512 mb-на практике займет 1000.
vm.kmem_size, vm.kmem_size_max – количество памяти выделяемое под использование ядром. Не рекомендуется указывать больше, чем установлено оперативной памяти.
vfs.zfs.prefetch_disable=1 – отключение режима prefetch. Режим, когда система "предсказывает" какие данные будут прочитаны и заранее читает их, соответственно значительно ускоряет работу файловой системы. На amd64 при памяти менее 4ГБ он отключается автоматически.
vfs.zfs.arc_max - количество памяти выделяемое для хранения кэшированных данных пула файловой системы. Точнее (из первоисточника): ARC - ZFS adaptive replacement cache. Там же написано, что по умолчанию ARC пытается получить всю оперативную память, кроме 1ГБ. Но, при приоритетных запросах на выделение памяти приложением/процессом, немедленно высвобождает требуемое количество. Кстати, Oracle, в официальных манах не рекомендует устанавливать чрезмерный размер ARC, дабы уменьшить конкуренцию за выделение памяти в системе между ZFS и приложениями!

Для выделения памяти под использование ядром более 512МБ необходимо пересобрать ядро с options KVA_PAGES=512, или с большим значением . Для выделения большего количества памяти необходимо соответственно увеличить значение KVA_PAGES. Стоит обратить внимание на то, что увеличение vm.kmem_size может привести к неработоспособности некоторых программ, которые используют фиксированную область оперативной памяти.
Удев каше zfs -vfs.zfs.vdev.cache-размеры его min max влияют на скорость работы ф.с.Но мы на линуксе где все работает через жопу-не паримся особо с этим.
Для установки на линукс вообще нам понадобиться (один из вариантов) iso c рабочим модулем zfs,либо поставить линь на флешку и завести на ней поддержку zfs-чрутиться-оттуда.
Все это нужно для "живого" zpool.cache,который копируем в устанавливаемую систему из рабочего варианта-первый более простой.
Если арчлинукс -делаем archiso-ниче сложного нету,gentoo-идем в закрома funtoo и берем там исошник рексд с zfs-удобно.

Для нормальной работы системы подготовим диск:gdisk(буратинам gparted) gpt.

gptfdisk:Part Size Type
---- ---- -------------------------
1 2M BIOS boot partition (ef02)#хватвает 1m
2 512M Ext boot partition (8300)#100M -если grub без рюшечек
3 XXXG Solaris Root (bf00)
такая разбивка подойдет всем дистрам линукса,раздел /boot нужен грубу для нормальной работы с имиджами ядра.
исключение только для продвинутых пользователей-груб в gentoo успешно пропатчен модуль zfs засунут в ядро -клали
на лицензии и линуса-не нужен ext4 -бьем пул сразу на весь диск.
Коротко о пуле и файловых системах.
назвать пул можно как угодно и переименовать тоже-zero- наверно не надо все-таки.zpool create -f dom /dev/sda3 -создан пул dom
Командуем zpool status если онлайн-гут.zpool destroy -f dom -удалить.Если порядок дисков не меняется нормально,в противном случае метим раздел в gptfdisc и
делаем пул по метке,можно по dev-by-id-рэйд например raidz-id диска.
zfs create -p tank/PROSTO -создана ф.с. PROSTO в пуле tank
zfs set atime=off tank/PROSTO -отключим временные метки
zfs set compression=gzip-9 tank/PROSTO -включим компрессию,
zfs set compression=off tank/PROSTO -выключим компрессию
zfs set mountpoint=legacy tank/PROSTO legacy-монтировать будем через /fstab, none-не будем
zfs set mountpoint=/ tank/PROSTO так будет / -корень смонтированный уже в пуле без участия fstab-своими силами файловой системы.
проверим zfs list :NAME USED AVAIL REFER MOUNTPOINT

tank 3,25G 583G 136K none
tank/PROSTO 136K 583G 136K legacy
zfs destroy tank/PROSTO -удалим нафиг
примерно так-можно уложить в одну команду создание монтирование и прочее.
Описаний установок вполне хватает -я добавлять не буду.
Есть ньюансы:основной и самый нехороший-все поставлено правильно-груб показывает дулю-rootfs# не грузится, но подхватывает пул
значит где-то просчитались с копированием zpool.cache. /etc hostid>/etc/hostid демон zfs на установщике не поднялся все это повторяем
и пересобираем ядро.груб рукописный выглядит на примере archlinux так:
menuentry "Arch Linux" {
set root=(hd0,2)
linux /vmlinuz-linux zfs=tank/ROOT/arch #где tank/ROOT/arch-корень
initrd /initramfs-linux.img
}
Для знакомства с zfs пробовать лучше монтирование через fstab -убедившсь можно всегда перемонтировать в пул примерно так:
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>

tank/ROOT/arch / zfs noatime 0 0
#/dev/sda2 /boot ext4 noatime 0 1
tank/HOME /home zfs noatime 0 0
tank/VAR/pacman /var/lib/pacman zfs noatime 0 0
tank/HOME/root /root zfs noatime 0 0
tank/USR/share /usr/share zfs noatime 0 0
если демон zfs не поднялся система загрузится -если в монтирование в пуле и системд -все службы просто упадут-не загрузится система.
За два года использования что на gentoo,что на archlinux проблем никаких не наблюдалось.
Вложения
zfs.png
zfs.png (155.34 КБ) 3999 просмотров
Правильный линукс-BSD.
Ответить

Вернуться в «Железный вопрос. Производительность и оптимизация»