LINUX.ORG.RU

Куда уйти от ext4 ?

 ,


3

4

Основная причина - фиксированное количество inodes.
В процессе работы может быть много мелких файлов.
Заранее задать inodes при создании ФС больше на порядок - не вариант, да и не нравится мне эта концепция фиксированного значения.

Почитываю про btrfs, не совсем понял её поведение при hard reset, а он может быть, примем как условие, ups не предлагать.

★★★★★

На ssd поставил btrfs под корень уже года два тому назад. Юзаю главным образом сжатие. subvol-юмы, снапшоты и прочее не использую. По прошествии времени перевел и хомяк hdd на btrfs. Из ну самых страшных неприятностей необходимость раз в несколько месяцев таки почекать файловую систему. При этом с ФС ничего не пропадало.

init_6 ★★★★★ ()

Почитываю про btrfs, не совсем понял её поведение при hard reset, а он может быть, примем как условие

btrfs, как и все CoW файловые системы, замечательно переносит hard reset, но при одном условии: у жёсткого диска должны полноценно работать барьеры (FUA или эквивалент). Говорят, есть диски, на которых это не так.

Если барьеры в железе работают некорректно, то традиционные ФС предпочтительны, т. к. при потерянных записях CoW файловые системы могут совершенно феерично рассыпаться даже там, где с ext4 ты потеряешь от силы пару файлов.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 3)

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

Я это к тому, что в жизненном цикле сервера обычно всяко более одной итерации разбивки и форматирования дисков. И выделяемые ресурсы при этом планируются и время от времени актуализируются.
Нет необходимости угадывать количество inodes с одной попытки. На первый раз возьми запас на «годик» вперёд. Когда перестанет хватать или будет мешать - проведи maintenance и актуализируй, чтобы не мешало хотя бы «годик».
«Годик» - чисто условно.

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

hard reset при условии идущей записи и чтения?

Это для любой софт-системы уже из пространства неопределенного поведения, которую можно (ли?) трансформировать поведение, зависящее от реализации, при отличном знании реализации железа и софта.

Мой ответ: может отформатировать жеский диск и записать случайные данные, которые чисто случайно могут совпасть с ожидаемыми, а ожидание не всегда совпадает с реальностью.

anonymous ()
Ответ на: комментарий от blexey

Я это к тому, что в жизненном цикле сервера

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

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

Оттуда что фигак и внезапно без проверки она просто не монтирует.

хрень какая, т.е. если это будет комп для выхода в интернеты и кины смотреть, то должен раз в два месяца прибегать «админ» и проверять диск ?

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

Это для любой софт-системы уже из пространства неопределенного поведения

я так и не добился этого при недавних экспериментах с ext4, см. Как симулировать сбой диска ubuntu

Мой ответ: может отформатировать жеский диск и записать случайные данные

это общие догадки или уход ответа за его отсутствием

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

я так и не добился этого при недавних экспериментах с ext4

Есть такой мем «УМВР».

это общие догадки или уход ответа за его отсутствием

Какой вопрос - такой ответ.

anonymous ()
Ответ на: комментарий от Deleted

вернее при ресайзе можно докинуть инод. вообще удобнее всего пользоваться классическими фс поверх lvm. с lvm много вещей становится удобней.

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

Можно попробовать diskchecker.pl на какой-нибудь ФС с заведомо корректным поведением, типа xfs:

https://brad.livejournal.com/2116715.html

https://gist.github.com/bradfitz/3172656

Это не совсем то что нужно (это проверяет конкретно поведение всего стека), но если ФС заведомо рабочая, то ты будешь проверять именно поведение диска.

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

Оттуда что фигак и внезапно без проверки она просто не монтирует.

Что-то это дичь какая-то.

В btrfs в принципе не предполагается, что юзер будет гонять fsck когда бы то ни было. А если ФС всё же рухнула и нужно гонять оффлайновые тулзы восстановления, то как бы от R/O проверки ничего не исправится, а btrfs check --repair без консультации с разработчиками вообще нельзя запускать.

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

вернее при ресайзе можно докинуть инод

ресайз «вверх» обычно невозможен, да и проблема количества остается - сколько надо я не знаю заранее и не хочу гадать

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

https://gist.github.com/bradfitz/3172656

странная программа, и зачем есть еще один хост ?

как я понял - она создает файл, затем в него пишет в случайный места данные и в это время надо вынуть кабель питания
затем обратно воткнуть и проверить чтение диска
и это есть проверка «барьеров» ?

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

ресайз «вверх» обычно невозможен

Почему? Я уменьшал и увеличивал ext4 раздел (+-50 Гб). Файлы явно переносились при этом. Или ты имеешь в виду ресайз влево? Кстати, можно ресайзить влево? Я слышал страшилки, что это очень долго, опасно и ФС может потом развалиться. Но в отношении NTFS, правда.

anonymous ()
Ответ на: комментарий от x905

как я понял - она создает файл, затем в него пишет в случайный места данные и в это время надо вынуть кабель питания
затем обратно воткнуть и проверить чтение диска
и это есть проверка «барьеров» ?

Да, всё именно так.

Клиент пишет в файл, после каждой записи делает fsync и репортит на сервер о том, что fsync прошёл. Предполагается, что файловая система делает свои дела, а потом «передаёт» этот fsync на уровень диска, т. е. выполняет команду с префиксом FUA. Это и есть «барьер», который гарантирует, что данные реально осели на диске, а не в его собственном кэше.

Посередине этого процесса ты выдираешь шнур, загружаешься заново и запускаешь проверку, во время которой клиент сверяется с сервером и проверяет, действительно ли все записи, по которым прошёл fsync, в этом файле на самом деле остались. Если нет — это означает, что врёт либо ФС, либо диск.

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

Ресайз влево как отдельная операция в принципе невозможен ни в одной известной мне ФС.

«Ресайз влево» обычно представляет собой копирование раздела до упора влево с последующим ресайзом вправо. Если во время копирования раздела что-то идёт не так — разделу в этот момент можно помахать платочком. И, разумеется, эта операция строго оффлайновая.

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

Потому что во всех ФС все смещения отсчитываются от начала раздела, а не от конца раздела. Чтобы передвинуть начало раздела, придётся обновить все смещения внутри ФС.

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

Ок, а где ты приобретаешь вечные диски?

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

x905 ★★★★★ ()