to post messages and comments.

@Self-Perfection:

Надоело мне, что логи journald занимают у меня под гигабайт, а хранят при этом информации за 2 недели. journald туп и не поддерживает сжатие логов. Так что идея была перенести `/var/log` на btrfs со сжатием. Делюсь опытом.

С одной стороны, работает довольно изкоробочно: просто смонтировать btrfs с compress=[lzo|btrfs] достаточно. Хотя journald по-умолчанию помечает `/var/log` как nocow, который не сжимается, но `btrfs filesystem defrag -c` всё же сжимает nocow файлы, и journald проводит дефрагментацию старых (сротированных) логов на btrfs. Ну для надёжности можно ещё сделать `chattr -R +c /var/log/journal`. В целом у меня работает решение, влезает теперь месяц логов на гигабайтный `/var/log`.

Нюанс 1: стоит ограничить размер одного файла логов, чтобы ротация происходила чаще. Я пока живу с `SystemMaxFileSize=16M`.

Нюанс 2: btrfs стоит создавать с ключом `--mixed`, если он будет у вас меньше нескольких гигабайт. И монтировать с опцией `autodefrag` — обновление логов journald ведёт к большой их фрагментации, я видел десятки тысяч фрагментов до включения autodefrag.

Нюанс 3: как посмотреть, работает ли сжатие? Изкоробочных инструментов нет, в интернетах можно нарыть питоновский скрипт btrfs-debugfs. Играясь с ним выяснил, что btrfs сжимает файл блокам по 128 KiB, каждый блок на диске занимает места кратно размеру сектора, так что меньше 4KiB не может занять. Поэтому сжатие получается не такое сильное как при сжатии напрямую lzop или gzip -3.

Ещё на первый взгляд у меня почему-то сжимаются только system файлы, но не user. Пока предполагаю из-за того что пользовательских логов мало, а ротируется system и user лог параллельно, так что system ротируется после двух аллокаций по 8 MiB, а пользовательский — как есть, 8 MiB. Надо бы добраться до исходников journald, посмотреть какая у него внутри логика.

@segfault:

linux.org.ru
Эээ .. а что вместо? ZFS?

@Self-Perfection:

С недавних пор у меня весь rootfs на SSD. И вот смотрел я смотрел, на график записи на SSD, не вытерпел и решил как-то пооптимизировать/сократить их количество.

Итак в начале был Btrfs c relatime,compress=lzo,ssd,space_cache
MariaDB, постоянно дёргаемая Tiny Tiny RSS, давала в среднем где-то 80 KiB/sec записи на диск (а это почти 7 GiB/день!).
Пересоздал /var/lib/mysql c chattr +C (отключение copy on write). Запись от MariaDB снизилась до 70 KiB/sec

Попробовал для эксперимента перетащить /var/lib/mysql на ext4 раздел.... 30 KiB/sec!!!
Даже если примонтировать с data=journal (который, походу, пользы не приноситв этом случае, т.к. и так по-умолчанию включен innodb_doublewrite), получается всего 60 KiB/sec, что меньше, чем на Btrfs.

Смотрю на свои эксперименты и думаю, что /var надо нафиг с Btrfs выносить целиком.

@Renha:

Первое правило пользователя btrfs — никогда не позволяй свободному месту закончиться, даже почти закончиться.
Второе правило пользователя btrfs — когда место всё же закончилось, и ты его освободил — сделай balance.

Тогда может быть не придётся как мне по одному файлу бэкап на Jolla восстанавливать.

@qnikst:

localhost qnikst # btrfs filesystem df /
Data, single: total=78.01GiB, used=61.73GiB

localhost qnikst # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda4 84G 66G 17G 81% /

Как так может быть?

@masai:

Статья о btrfs в русской и английской википедиях.
EN: «Stable: yet to be released; Unstable: 2.6.29, March 2009 (Linux kernel)»
RU: «Стабильная: 3.7.0, 11 декабря 2012; Нестабильная: 3.4.3, май 2012 (Linux)»

@Hawat:

Кто пробовал btrfs на десктопе? Оно стабильно? Память жрет как ZFS? Сильно тормознее ext3/ext4?

@Gordio:

клевый… с нетерпением жду когда релиз

@nan0desu:

Буду кратка — еще не готов. (Ушла делать # btrfs restore.)

@wasd:

Зато будет охуенно, если после ребута я похерю и этот ёбаный луп, и хомяк >_<

@wasd:

Примонтировал бтрфс-луп на 12 гб — через 15 минут система ушла в iowait и не ребутается. Нет, уже три месяца я держу на ней хомяк и проблем не было, но после этого случая я задумался, правильное ли решение приняли в Новелле.

@avagin:

Как соотнести девайсы которые выдает stat с девайсами, которые торчат в mountinfo?
[[email protected] crtools]# stat -c '%d' mnt
34
[[email protected] crtools]# stat -c '%d' /mnt/xxx
35
[[email protected] crtools]# stat -c '%d' /mnt/yyy
36
[[email protected] crtools]# cat /proc/self/mountinfo | grep /mnt
40 32 0:32 / /mnt rw,relatime shared:27 — btrfs /dev/loop0 rw,noacl,space_cache
# btrfs subvolume list mnt
ID 257 gen 13 top level 5 path xxx
ID 258 gen 13 top level 5 path yyy

@neko259:

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

@proton:

Взял тут у @longbow сервачок погонять, влепил туда пару ssd, хотел сделать зеркало.
И тут я осознал, что совершенно не представляю, как мне с ssd жить. Кто-нибудь использует на серверах? Как разбивать, как тюнить ext4?
Особо интересует, что делать с TRIM'ом на софтварном зеркале.
P.S. Тут ещё мне советуют btrfs поднять — кто-нибудь использует в продакшене?

@Evtomax:

Сделал снапшот корня и спокойно обновляюсь до 13.04 :)

@Strephil:

Собираюсь переставлять арчик на ssd'шку.
С одной стороны, непрерывные снэпшоты это, наверное, очень удобно, и хочется попробовать NILFS2.
С другой, вот посмотрел тесты похороникса, и стало как-то не очень: phoronix.com
Наконец, она совершенно не годится для корня, потому что не умеет Extended attribute,
да и такой большой список TODO намекает, что NILFS это что-то недопиленное.

Или поставить ext4 / и nilfs для /home, или просто использовать btrfs?

@masai:

А кто-то вообще пользуется Btrfs? Оно стабильное уже?

@Evtomax:

Перевёл на нетбуке корневой раздел на btrfs со сжатием. Вроде стало чуть быстрее. Осталось освоить все вкусные фичи этой ФС :)

@anton37:

Пришло время дефрагментировать btrfs. btrfs сама не проведет дефрагментацию. Почему? Винт с каждым месяцем работы шуршит ого-го как сильнее.

@Equidamoid:

Как повесить к пиписькам систему с btrfs, создав 500 маленьких файлов: crypto.junod.info

@Equidamoid:

Временами начинает хотеться потрогать сабж. Потом вспоминаю, что это надо будет ядра-из-под-тильды ставить, и как-то желание пропадает.

@partizan:

так, значицца меня наебали. ну точнее я неправильно понял.
Data: total=159.00GB, used=112.34GB
Это не всего и занято, а ВСЕГО и ЗАНЯТО, ну т.е. наверное сколько у нас есть данных в теории, и сколько они занимают на практике. так штоле получается?
а еще скорость записи на наполовину заполненную фс из двух дисков (примерно, я вобще-то непонимаю сколько там еще места осталось) охуенно падает, не вижу тех начальных 53, вижу 17 и 35, чаще 20

@partizan:

чего-то я не понял. я вроде как собирался объединить два раздела. взял 120 и 160 гб, а в результате получилось 141. ебал я такое объединение, простите за мой французкий.

@partizan:

запостил на лор свою проблему. linux.org.ru

@partizan:

хм, а по умолчанию оно хотело мне создать raid1, отменил, запустил balance -dconvert=raid0, жду опять! данные еще не проебались :3

@partizan:

добавил второй раздел, запустил balance, чтобы оно растянуло данные равномерно на два диска. жду.
~ > sudo btrfs filesystem balance status /mnt/storage
[sudo] password for serg:
Balance on '/mnt/storage' is running
64 out of about 150 chunks balanced (66 considered), 57% left

@partizan:

потестировал остальные фс, копирование на ntfs — 25Мб/с, на reiser — 33, на xfs — 55-57

@partizan:

btrfs at work: i.imgur.com i.imgur.com

@partizan:

а если вам вдруг захотелось поставить btrfs, то помните, что она все еще under heavy development, и надо быть готовым к тому что однажды ваши данные проебутся безвозвратно :3

@partizan:

что еще радует, записываются с одинаковой скоростью что мелкие что большие файлы, перед этим копировались iso, сейчас музыка.
53-54 Мб/с это немного меньше чем 58, но тоже хорошо.

@partizan:

гм, а пишется на нее со скоростью 58Мб/с, я последний раз что-то копировал куда-то, было вроде около 20 >_>, ну посмотрим потом еще

@partizan:

ну чо, котаны. будем тестировать файловую систему для БТР-ов на моем десктопе, в частности ее пригодность к употреблению в виде raid0, лежать там у меня будут фильмы, музыка, исошки, ну т.е. все мое накопленное добро. будем надеяться что оно не сломается. а если что, я уже однажды проебал раздел с данными и ничего не случилось :3

@Self-Perfection:

fsync на btrfs ужасно тормозной, как следствие, dpkg на btrfs работает очень медленно. Так что апгрейдить xubuntu до 12.10 не запустив обновлятор через eatmydata было бооооольшой ошибкой. Все пакеты скачались к 13:20, и оно до сих пор обновляется. Смотрите на таймстампы
$ tailf /var/log/dpkg.log|grep upgrade
2012-10-21 18:52:37 upgrade iptables:amd64 1.4.12-1ubuntu4 1.4.12-2ubuntu2
2012-10-21 18:52:54 upgrade iputils-tracepath:amd64 3:20101006-1ubuntu1 3:20101006-3ubuntu1
2012-10-21 18:53:22 upgrade irqbalance:amd64 0.56-1ubuntu4 1.0.3-1ubuntu2
2012-10-21 18:53:38 upgrade krb5-locales:all 1.10+dfsg~beta1-2ubuntu0.3 1.10.1+dfsg-2
2012-10-21 18:53:49 upgrade lshw:amd64 02.15-2 02.16-1
2012-10-21 18:54:05 upgrade lsof:amd64 4.81.dfsg.1-1build1 4.86+dfsg-1ubuntu1
2012-10-21 18:54:21 upgrade ltrace:amd64 0.5.3-2.1ubuntu2 0.5.3-2.1ubuntu3
а обновить нужно over 1k пакетов...

@Shura:

Ноут жены навернулся окончательно, вываливается куча ошибок насчёт btrfs и ничего не грузится. Какому идиоту пришла мысль сделать btrfs единственно возможной файловой системой — непонятно. Как я понял средств исправления ошибок для неё до сих пор нет

@Shura:

Как можно исправить ошибки на btrfs разделе? btrfsck выводит кучу ошибок и падает, ничего не исправив. Обновить систему нельзя, это нетбук, установлена система MeeGo, для которой нет обновлений. Есть вариант загрузиться с флешки, но какой дистрибутив закатать на флешку чтобы там была нормальная версия btrfsck, которая бы не падала?

@bsdfun:

Комманда du -sh / привела к почти полному отмиранию системы.

@CruncH:

хм, отремонтировал с первого раза, прогресс на лицо, а то при раньше приходилось чуть не по 10ребутов делать, так как падал модуль ядра, так что моих знаних не хватало, чтобы перезагрузить нужные модули для продолжения работы без ребута

@CruncH:

чет меня это не особо прикалывает, либо что то криво было ранее сделано, либо это реально сырое. Забыл удалить скрипт, который делает снапшот корня, перед установкой пакетов. Он мне наснапшотил хорошо, место кончилось, удалять снапшоты через btrfs subvolume list / | grep '/sna' | grep 'ID 4' | awk '{ print $7}' | xargs -n1 btrfs subvolume delete не катит, фс падает в ридонли, и отремонтировать и вычистить ее получается раза с 10 только

@Equidamoid:

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

@segfault:

тормозная хрень