LINUX.ORG.RU

Избранные сообщения Xenesz

Gentoo на ZFS

Галерея — Скриншоты

Не спрашивайте - зачем. Просто так, потому что можно. Ну и к тому же можно ссылаться на этот топик в ответ на вбросы бздунов насчёт «а этот ваш Линукс умеет ZFS?». Умеет, как видите.

Краткий мануал по красноглазию:

1) Создаём раздел для ZFS. После этого потребуется создать пул. Пул - это что-то вроде виртуального устройства.

zpool create zero /dev/sda2

«zero» - это моё название пула. У вас оно может быть любым другим. Просто создать пул как-то неинтересно, поэтому повключаем всякие разные плюшки ZFS. Включаем дедупликацию:

zfs set dedup=on zero

и сжатие:

zfs set compress=lzjb zero

и отключаем обновление временных меток:

zfs set atime=off zero

ну и отключаем монтирование средствами самой ZFS дабы избежать неудобств на стадии сборки системы в chroot:

zfs set mountpoint=legacy zero

2) Теперь у нас есть чистый пул, но пул - это ещё не ФС. Чтобы установить туда систему, нужно создать файловые системы на этом пуле. Прелесть ZFS в том, что на одном пуле можно создать кучу ФС, каждой из которых можно задать свои опции. Например, я создал ФС для корня (и уже при создании говорим zfs, что монтировать создаваемые ФС мы будем вручную через mount):

zfs create -o mountpoint=legacy zfs/system

Эта ФС унаследовала все опции (дедупликация, сжатие) от пула, потому что для корня такие опции, в общем-то, неплохи. Далее я создал ФС специально для дерева portage, оверлеев и каталога с исходниками ядра:

zfs create -o mountpoint=legacy zfs/src

Так как на этой ФС будет куча текстовых файлов, обращаться к которым придётся сравнительно редко, здесь имеет смысл задействовать несколько иные опции. Например, усилить сжатие (после дефиса указана степень сжатия, диапазон - от 1 до 9, по умолчанию 6):

zfs set compress=gzip-9 zero/src

и отключить дедупликацию (мне подумалось, что дедупликация на ФС с тоннами мелких файлов будет сильно отжирать ресурсы, да и сильное сжатие вполне экономит место):

zfs set dedup=off zfs/src

Отдельная ФС для /home:

zfs create -o mountpoint=legacy zero/home

Опции пусть будут унаследованы от пула. Далее я перестраховался и создал отдельную ФС для /var, потому что в какой-то там рассылке видел упоминание каких-то багов при дедупликации на /var. Посты были датированы ещё прошлым годом, с тех пор утекло много воды, но бережёного случай бережёт:

zfs create -o mountpoint=legacy zero/var
zfs set dedup=off zero/var

3) Далее у нас стандартная сборка Gentoo. Монтируем будущий корень:

mount -t zfs zero/system /mnt/system

и остальные ФС:

mount -t zfs zero/src /mnt/system/src
mount -t zfs zero/home /mnt/system/home
mount -t zfs zero/var /mnt/system/var
mount /dev/sda1 /mnt/system/boot

После чего монтируем нужные виртуальные ФС (proc, dev, sys), монтируем хранилище архивов с исходниками пакетов, в общем, всё по хэнбуку, поэтому не стану заострять на этом внимания. Внимание требуется на этапе установки и сборки ядра. Устанавливать нужно это милое ядрышко (перед этим нужно будет включить флаг zfs, я думаю, разберётесь сами):

layman -a init6
emerge geek-sources

На этапе сборки ядра нужно учесть некоторые детали. Например, в мануалах написано, что нужно включить опцию CONFIG_KALLSYMS и отключить CONFIG_PREEMPT (т.е. установить её в значение «Server») Первую-то я включил, а отключать вторую меня жаба задавила (эта опция влияет на отзывчивость ядра), тем более что на Гитхабе я читал, что в последних версиях zfsonlinux проблемы с этой опцией ядра устранены. После этого, конечно, включаем SPL и ZFS. Первая опция находится прямо в корне конфигуратора, а вторая - в секции «File systems». А вот далее важно не пойти на поводу мануалов Гитхаба, ибо это чревато феерическим ментальным трахом. В мануалах тех написано, что нужно добавить указанный там оверлей и установить оттуда особые версии dracut и genkernel для сборки initramfs с поддержкой ZFS, ибо даже жёсткое включение ZFS в ядро не позволяет загрузить систему с корня ZFS (нужны утилиты для работы с ZFS, которые должны находиться в initramfs). Собственно, я так и сделал. После чего на протяжении дня сношался с кривоглючным dracut, упорно не желавшим включать утилиты ZFS в initramfs. Я даже вытягивал какие-то древние версии dracut и устанавливал их через make install, потом уже добавлял нужные файлы в initramfs вручную - чего я только ни делал! А оказалось, что нужно было тупо забить на эти горе-мануалы и установить самый стандартный genkernel из официального дерева. И всё правильно собирается следующей командой:

genkernel all --no-clean --makeopts=-j16 --zfs --bootloader=grub2

вот и вся недолга. Если перед этим вы успели собрать и установить Grub2, то genkernel сам добавит в grub.cfg нужные опции (укажет ФС, с которой грузить систему, в моём случае это zero/system).

На стадии формирования списка загружаемых демонов нужно сделать следующее:

rc-update add zfs boot
rc-update add zfs-shutdown shutdown

4) Монтирование файловых систем ZFS. Вообще, монтировать их можно двумя способами: посредством утилиты zfs через задание точки монтирования:

zfs set mountpoint=$DIR $FS

или через fstab с предварительным отключением автомонтирования:

zfs set mountpoint=legacy $FS

Запись в fstab для, например, корня, не содержит ничего сверхъестественного:

zero/system        /        zfs        noatime        0 0

Способ монтирования выбирать вам. Следует лишь иметь в виду, что при монтировании через fstab zfs-shutdown будет ругаться при выключении.

5) Вообще это нужно делать раньше, но, в принципе, пофиг:

hostid > /etc/hostid (это в chroot)
cp /etc/zfs/zpool.cache /mnt/system/etc/zfs

6) Если у вас меньше 2 Гб оперативки, то ZFS своим кэшем может сожрать всю раму и завесить систему. Поэтому имеет смысл ограничить её аппетиты:

echo "options zfs zfs_arc_max=512M" > /etc/modprobe.d/zfs.conf

Я выставил 1 Гб.

7) Отмонтируем все ФС, делаем

zpool export zero

и перезагружаемся в свежую систему. Не знаю, как получится у вас, а лично у меня initramfs не может импортировать пул и потому вываливается в busybox. Не проблема, входим в его шелл и импортируем пул вручную:

zpool import zero
exit

и система далее нормально загружается.

Какие профиты? Ну, она явно быстрее ранее используемой мной Btrfs. Опять же, на Btrfs нет дедупликации, и сжатие можно применить/отключить только на весь раздел. Сжатие lzjb не так заметно экономит место (это просто быстрый алгоритм), а вот gzip-9 сжал дерево portage с 350 Мб до 256 Мб, а каталог исходников ядра - так вообще в 2 раза, с 800 с лишним Мб до 400 с лишним. Причём на скорости сборки ядра это практически не отразилось (замерял через time). А ещё в ZFS есть контрольные суммы, так что о целостности системы можно вообще не беспокоиться. Но самое главное, конечно - это снапшоты. Я, попробовав раз снапшоты ещё в Btrfs, так и не смог от них отказаться.

Маленькое дополнение: почитав преисполненные страха комментарии про снижение скорости из-за дедупликации я её таки отключил на всех ФС. И ещё: возможно, я что-то не так делал, но монтирование ZFS посредством утилиты zfs я так и не осилил нормально. В итоге я просто выставил legacy на все ФС, внёс их в fstab и выкинул zfs-shutdown из скриптов выключения.

>>> Просмотр (1280x2048, 1178 Kb)

 , , , ,

Kindly_Cat ()

Вояджер-1 еще жив :)

Форум — Talks

«Мы считаем, что это последний этап нашего путешествия к межзвездному пространству. Это может занять от нескольких месяцев до пары лет», - сказал Эдвард Стоун (Edward Stone), научный руководитель проекта «Вояджер».

В августе приборы на борту «Вояджера-1», который находится на расстоянии более 122 астрономических единиц от Земли (средних радиусов земной орбиты), зафиксировали резкие изменения в потоке космических лучей разного происхождения. Приборы показали несколько всплесков активности аномальных космических лучей — частиц с энергиями более 0,5 мегаэлектронвольт, рождающихся в области гелиосферного ударного слоя. В конце августа их поток упал почти до нуля. В то же время начал расти поток галактических космических лучей, частиц, приходящих из межзвездного пространства (с энергиями около 70 гигаэлектронвольт).

Ученые назвали эту зону магнитной «скоростной автотрассой» для заряженных частиц, поскольку здесь силовые линии магнитного поля Солнца соединяются с линиями межзвездного поля. Здесь количество частиц низких энергий, исходящих изнутри гелиосферы, снижается, и они начинают пропускать частицы высоких энергий «снаружи». Данные о магнитном поле, полученные «Вояджером», указывают, что магнитное поле усилилось, но направление магнитных силовых линий не изменилось, поэтому ученые пока не могут заявить, что аппарат вышел в межзвездное пространство.

dk- ()

Сделать Ш менее Г

Форум — Desktop

Использовал freetype/fontconfig из lcd-filtering, Ш были не сильно Г.
Захотелось посмотреть infinality. Установил библиотечки из основного дерева. Старые настройки не сохранил (ссзб).
ШГ в браузере, ШГ в терминале.

$ eselect fontconfig list | grep \*
Available fontconfig .conf files (* is enabled):
  [4]   10-sub-pixel-rgb.conf *
  [8]   11-lcdfilter-default.conf *
  [25]  52-infinality.conf *
  [29]  59-google-droid-sans.conf *
  [30]  59-google-droid-sans-mono.conf *
  [31]  59-google-droid-serif.conf *
  [41]  70-no-bitmaps.conf *

$ eselect lcdfilter list | grep \*
  [3]   infinality *

$ eselect infinality list | grep \*
  [2]   infinality *

$ emerge -1pv freetype fontconfig
[ebuild   R    ] media-libs/freetype-2.4.10-r1:2  USE="X bzip2 infinality static-libs -auto-hinter -bindist -debug -doc -fontforge -utils" 0 kB
[ebuild   R    ] media-libs/fontconfig-2.9.0:1.0  USE="-doc -static-libs" 0 kB

Настройки Xfce, настройки терминала.

Как сделать Ш менее Г? Поделитесь кошерными eselect fontconfig/lcdfilter/infinality list-ами.

 , , , ,

Lavos ()

Записная книжка

Форум — Desktop

Разыскивается записная книжка для заметок. Думаю выбор не большой, поэтому можно его не сужать дополнительными требованиями

Rityty ()

Проблемы с графикой.

Форум — Desktop

Ставлю тут генту . Уже накатил кеды. И тут возникли проблемы с графикой. Сам я не использовал генту года так с 2005 и уже не помню всего, мог в чем-то накосячить.

Суть такова:

$glxinfo | grep render
direct rendering: Yes
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 0x209)

Такое наблюдается, как с блобом, так и с nouveau. Хотелось бы конечно оставить nouveau, но если не получится, то и блоб подойдет. Карточка GF9500. Еще очень странно это:

OpenGL vendor string: VMware, Inc.

make.conf: http://paste.kde.org/503180/

Подскажите, что я сделал неправильно :)

 , ,

Difrex ()