LINUX.ORG.RU
ФорумAdmin

Ext4 и прозрачное сжатие директорий

 ,


0

3

Привет, ЛОР!

Скажи, а есть чо? Хочется прозрачного сжатия на уровне файловой системы для Ext4. Быстрый гугл не выдаёт ничего путного, но вдруг я не то ищу. В основном, гугл показывает всякие странные решения через FUSE с монтированием ZIP-архивов, что попахивает глюками и дикими тормозами.

Ситуация такая: есть старый хост с Ext4 вместо файловой системы, там база средней жирности (~300G) в PostgreSQL. Есть новый хост с ZFS и сжатием через lz4, там ровно та же база занимает ~70G реального места, то есть степень сжатия почти три раза. Хочется аналогичный результат на первом хосте без полного переформатирования диска.

Перемещено hobbit из general

★★★★★

Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от cumvillain

Ну и нам все ещё ничего не мешает делать все то же самое во время сброса page cache, т.е. писать пожатые данные прямо в экстент.

Мешает то, что если запись прервётся, ты получишь мусор вместо экстента, лол.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

То есть data=journal. То есть 2x падение производительности. Я предполагаю, что с такими ограничениями оно никому попросту не упёрлось.

Никто не говорил про диск :))

cumvillain
()
Ответ на: комментарий от intelfx

У тебя не только память как у золотой рыбки, но ещё и зрение? Я ведь специально процитировал: пожатых данных прямо в экстент (c).

Иии? Раскрой мысль, мы всем знаем что ты пассивно-агрессивный демагог до первого технического аргумента.

cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 1)
Ответ на: комментарий от intelfx

Лол. Что-то технических аргументов от тебя не видно.

От тебя тоже. Ну то есть, ты описал проблему, но эта проблема решена в той же NTFS уже лет 30 как, пусть и с ограничениями.

Было бы куда интереснее почитать, почему не приняли код со сжатием в ядро, про который @s-warus выше упоминал, но мне лень гуглить.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от intelfx

Лол. Что-то технических аргументов от тебя не видно.

Технических аргументов от тебя тоже. Ты просто говоришь что невозможно без CoW потому что..? Почему? Вот тебе аж две реализации: с WAL и с прямой записью в экстент, как это сделано для шифрования.

cumvillain
()
Ответ на: комментарий от hateyoufeel

Специально же написано, per-cluster, up to 4KB.

Этого финта с «16-cluster chunks» я не понял (нигде никто не пишет, что там с выравниванием), но как бы там ни было, есть ровно четыре варианта:

  • сжатые экстенты выравнены по границе аппаратно-атомарного сектора (это тупорыло);
  • перезапись сжатых экстентов идёт в новое место (это CoW);
  • перезапись сжатых экстентов журналируется (это медленно);
  • на целостность просто забит хер.

Почему ничего из этого никто не горит желанием делать в ext4 — упражнение читателю, ну.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от cumvillain

Я нигде не говорил «невозможно», ты это придумал сам.

Я сказал «не бывает», имея в виду нецелесообразность, и обосновал (+ см. сообщение выше).

Вот тебе аж две реализации: с WAL

Это никому не нужно, т. к. медленно (у тебя будет не только оверхед на перезапись всего сжатого экстента, но ещё и двойной оверхед на его журналирование).

и с прямой записью в экстент, как это сделано для шифрования.

Давай ты сначала будешь читать всё, что тебе пишут, а потом уже изобличать, м?

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Специально же написано, per-cluster, up to 4KB.

Где? Там написано, что кластеры больше 4кб не поддерживаются. А сжатие работает над чанками по 16 кластеров.

Этого финта с «16-cluster chunks» я не понял

Но мнение имеешь?

Почему ничего из этого никто не горит желанием делать в ext4 — упражнение читателю, ну.

Потому что в слюниксе не осилили? В слюниксе многие вещи не осиливают, и я не удивлюсь, если эту можно добавить в список.

Я сказал «не бывает», имея в виду нецелесообразность, и обосновал (+ см. сообщение выше).

В NTFS есть, несмотря на твоё обоснование. Как так?

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 2)
Ответ на: комментарий от intelfx

Давай ты сначала будешь читать всё, что тебе пишут, а потом уже изобличать, м?

Ты пишешь какие-то истеричные завывания, чо их читать-то. В NTFS сжатие есть? Есть? Работает? Работает. Твое утверждение «кококо экстенты выравнены по границе значит тупорыло» доказано? Нет. Иди в школу, клоун.

cumvillain
()
Ответ на: комментарий от hateyoufeel

Использовать педивикию как тех.документацию — это достижение даже для тебя. Сходи хотя бы на сайт ntfs-3g, почитай их заметки про disk format.

И вообще можешь перестать цепляться к NTFS, я уже полтреда назад написал, что 4K на самом деле не играет, т. к. во времена NT3.5 дисков с 4K-секторами не было.

Как так?

Я тебе привёл закрытый список из четырёх вариантов, как так. Выбери себе один по вкусу, я нигде экспертом по NTFS себя не называл и понятия не имею, как оно работает. Но других вариантов у него физически нет.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Использовать педивикию как тех.документацию — это достижение даже для тебя. Сходи хотя бы на сайт ntfs-3g, почитай их заметки про disk format.

Зачем? Мне важно, есть ли фича или её нет. В ext4 её нет.

Я тебе привёл закрытый список из четырёх вариантов, как так. Выбери себе один по вкусу, я нигде экспертом по NTFS себя не называл и понятия не имею, как оно работает. Но других вариантов у него физически нет.

Допустим. Но что плохого в работе через один из вариантов? Пока эта фича опциональна, это в любом случае будет бонусом в сравнение с существующей ситуацией.

В общем, в слюниксе не осилили, всё как и всегда.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от intelfx

Мне приятно видеть, как смачно ты порвался :)

Ну как всегда началось, я тебя затралел, нет я тебя затралел. Тем временем в NTFS сжатие есть, а лялекс не может. Самое убогое во всей этой истории, что лялекс не может даже включить ZFS из-за проблем с психи^W лицензированием, поэтому если ты хочешь нормальную файловую систему надо сторонний модуль ставить.

cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 1)
Ответ на: комментарий от cumvillain

Самое убогое во всей этой истории, что лялекс не может даже включить ZFS из-за проблем с психи^W лицензированием, поэтому если ты хочешь нормальную файловую систему надо сторонний модуль ставить.

Я бы не назвал это проблемой, потому что ты можешь поставить свежую ZFS на любое ядро.

Последняя версия OpenZFS поддерживает ядра начиная с 3.10. Это 11 лет почти.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от hateyoufeel

Но что плохого в работе через один из вариантов? Пока эта фича опциональна

Да ничего плохого, кроме того, что эта фича существует только в твоём воображении. Пилить и поддерживать её кто будет ради тех полутора землекопов, которых устроит заведомо мертворожденный кастрированный результат?

в слюниксе не осилили, всё как и всегда

Да не вопрос, мне как бы не упёрлось тебя в чём-то переубеждать.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Да ничего плохого, кроме того, что эта фича существует только в твоём воображении.

В моём воображении её нет, я всего лишь попытался узнать, что именно мешает добавить это в ext4. Похоже, что ничего кроме неосиливания и любви люниксоедов орать «НИНУЖНО».

Пилить и поддерживать её кто будет ради тех полутора землекопов, которых устроит заведомо кастрированная реализация?

Ну Wayland же пилят…

Люникс вообще полон заведомо кастророванными реализациями вообще всего подряд. Весь люникс – заведомо кастрированная ОС, что в принципе объясняет количество небинарных трансов среди разработчиков в последние годы.

Да не вопрос, мне как бы не упёрлось тебя в чём-то переубеждать.

Тогда зачем ты пришёл в этот тред? Бегаешь за мной только за тем, чтобы рассказать мне, как тебе безразлично моё мнение.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Я бы не назвал это проблемой, потому что ты можешь поставить свежую ZFS на любое ядро.

Это все достигается героическими страданиями парней из ZFS, которые ещё и палки в колеса ставят. Опенсурс – вы БУДЕТЕ страдать.

cumvillain
()

Диск второй подключи, отформатируй в ZFS, скопируй не него данные, останови PostgreSQL, поменяй путь до данных, запусти PostgreSQL :)

Чай можно на пару секунд простой сделать то. (Хотя оно вроде умеет и на живую переключаться) По сути делов на пару минут. Если там не только база лежит, а весь корень, ну перенести только базу на диск/раздел отдельный с ZFS, а остальное оставить как есть.

Не. я понимаю что хочется просто сделать на том что имеешь, но тут не тот случай похоже.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от cumvillain

Я бы не назвал это проблемой, потому что ты можешь поставить свежую ZFS на любое ядро.

Это все достигается героическими страданиями парней из ZFS, которые ещё и палки в колеса ставят. Опенсурс – вы БУДЕТЕ страдать.

Да, чудовищные аутизм и вахтёрство среди слюниксоедов иногда достигают просто ужасающих масштабов.

:-(

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

По сути делов на пару минут.

По сути делов:

  • Купить новый диск
  • Организовать его доставку в датацентр в другой стране
  • Организовать визит чувака туда (я сам не поеду лол)
  • Потерпеть минимум полчаса, пока чувак ковыряется с отвёрткой и ставит новый диск
  • Не забыть сделать полный бэкап, чтобы не просрать данные за день на случай, если чувак проткнёт отвёрткой первый диск
  • После этого сделать всё что ты написал

Ей богу, проще сервер передеплоить уже с ZFS. Займёт гораздо меньше времени.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

По сути делов:…

А кто знал то.

Ей богу, проще сервер передеплоить уже с ZFS. Займёт гораздо меньше времени.

Учитывай выше сказанное у тебя и выбора нет почти. Делай как тебе удобнее и быстрее. Всё равно EXT4 сжатие не добавишь :)

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от u5er

иногда достигают просто ужасающих масштабов

Их тоже можно понять. Оракл та ещё конторка и не все хотят иметь с ней дело.

Oracle к ZFS не имеет отношения уже лет 15. OpenZFS – продолжение последней версии выложенного в впопенсорц кода от Sun. Хуже того, Oracle и солярку закопал, уволив почти всех разрабов.

С другой стороны, Linux и Oracle срослись в очень плотной мужской любви. Вплоть до того, что Oracle сидит в платиновых членах Linux Foundation и имеет своего чувака в совете директоров там. А ещё btrfs – тоже высер Oracle, причём свой собственный. Они её ни у кого не покупали.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от u5er

Та лицензия, cddl, разработана саном, который потом был выкуплен ораклом, не? Я думал, что суть в этом.

Это опенсорцная лицензия, не особо ограничивает разработчиков, если не исключать того факта, что она не совместима с GPL.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от u5er

В этом вся суть. Вроде как ораклы - это любители засуживать всех и вся. Или я ошибаюсь?

Они всем там друг с другом долбятся паровозиком. Суть в том, Линус и Грег КХ сотоварищи крайне негативно относятся к ZFS просто потому что. К слову, это Грег и Линус намекали на иск в суд против разрабов ZFS, если те будут использовать GPL-only API. Ораклу, как я понял, на ZFS просто до лампочки сегодня. Они купили Sun только ради жабы, а все остальные сановские разработки закопали.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от CrX

Если в ext4 добавить сжатие, она перестанет быть ext4. Собственно в этом её суть, что она проста по фичам и во многом благодаря этому стабильна.

ext4

проста

Ахахах!

wandrien ★★
()
Ответ на: комментарий от intelfx

я уже полтреда назад написал, что 4K на самом деле не играет

двумя постами ранее:

Специально же написано, per-cluster, up to 4KB.

Виляет прямо как Chat GPT.

Так, признавайтесь. Кто обучил ИИ-бота троллить на ЛОРе?

wandrien ★★
()
Ответ на: комментарий от wandrien

А.. я даже не обратил внимания на этот его буллшит.

И вообще можешь перестать цепляться к NTFS, я уже полтреда назад написал, что 4K на самом деле не играет, т. к. во времена NT3.5 дисков с 4K-секторами не было.

@intelfx в NTFS кластер – минимальный размер аллокации, а не размер сектора на диске. Кластер может состоять из множества секторов. Ты вполне можешь сейчас сделать кластер в мегабайт размером, если тебе так всралось.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от intelfx

Прикинь, я в курсе.

Точно? Мы тут все волнуемся за тебя. Ты тут ересь какую-то извергаешь, например, что «4K на самом деле не играет, т. к. во времена NT3.5 дисков с 4K-секторами не было.»

То есть, и правда не было, но непонятно как это к размеру кластера-то относится, потому что кластеры по 4к как раз были.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 2)
Ответ на: комментарий от voltmod

Там в последнее ядро добавили dm-vdo, пользуйся.

А как это мне поможет с уже существующей ext4? Потому что если всё равно придётся делать полное форматирование, мне куда проще использовать ZFS.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от s-warus

zfs конечно многие юзают, но меня потребление памяти более 2гб отпугивает.

Не пугайся, это только если дедуп включить. Без дедупа она ест не больше других ФС.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от intelfx

Чтобы было прозрачное сжатие, тебе нужна атомарная работа с экстентами/блоками сильно больше дискового блока. А это либо CoW, либо журналирование всех данных (экв. data=journal).

Тут неявно предполагается, что ФС гарантирует консистентность данных при внезапном завершении работы. Но журналируемые ФС обеспечивают только консистентность вспомогательных структур, а не самих данных. Если данные важны, то без data=journal всё равно не обойтись.

i-rinat ★★★★★
()
Ответ на: комментарий от Psilocybe

Ещё под DOS была такая штука Stacker

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

https://groups.google.com/g/alt.os.linux/c/ALcF7J3A_Vw тут про dmsdos говорят

Ах, надо же какая капсула времени!

https://www.antipope.org/charlie/old/linux/wibble/linux-desktop.html

но вообще-то я ext2 compr искал

https://askubuntu.com/questions/1328781/what-happened-to-e2compr

https://e2compr.sourceforge.net/faq.html

я так понял что это не то чтобы принципиально невозможно, просто из-за объёма изменений в ядре /vfs поддерживать всё это в рабочем состоянии было мучительно.

Вообще такое впечатления что Линукс очень резко выпрыгнул из штинишек хакерской системы для дешевых широкодоступных машинок, в 128+ процессорный энтерпрайз с выходом 2.4 и далее, и это сказалось на приоритетах разработки.

Andrew-R ★★★★★
()