Свежие комментарии

Title Comment
Ну как сказать - если при пропадании питания (перезаписанны

Ну как сказать
- если при пропадании питания (перезаписанный) файл остался как был - это нормально.
- если он был длинный (больше блока FS) и перезаписался куском - это плохо, но неудивительно.

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

На fsync()-то конечно не кладет, просто есть немаленькое кол

На fsync()-то конечно не кладет, просто есть немаленькое количество софта (в том числе, как я слыхал, примерно половина KDE), для которого характерна перезапись конфигурационных файлов в процессе работы. Получаются типовые грабли при пропадании питания - какая-нибудь гуевая штуковина перестает запускаться, злобно ругаясь на очередной конфигурационный файл.

А на ext3 гораздо больше шансов, что недописанный файл не попортится, а просто останется в точности таким, каким был до попытки его изменить.

Гр-н Торвальдс даже как-то прокомментировал все это в том смысле, что нечего на ядро пенять, коли пользовательский софт кривой. Его тогда, правда, многие стали забрасывать гнилыми помидорами.

Ну это вроде бы нормальное поведение - пока fsync() не сдела

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

Или XFS и на fsync тоже кладет с прибором?

Дык дело не в убиении всей ФС, а в порче последних перезапис

Дык дело не в убиении всей ФС, а в порче последних перезаписываемых/создаваемых файлов.
Полную смерть XFS-тома я ещё ни разу не видел, даже после повреждения на физическом уровне обычно удается слить остатки через dd и, починив, смонтировать.

Тут все дело в том, что данные (насколько я это понимаю) в ж

Тут все дело в том, что данные (насколько я это понимаю) в журнал не пишутся, а пишутся в кэш. Который по умолчанию сбрасывается на диск после закрытия файла и/или после fsync(). Естественно, при O_DIRECT кеш не задействован, но и скорость соответствующая.

В итоге получаются два интересных классических эффекта XFS после проигрывания журнала по результатам внезапного пропадания питания:
(а) свежесозданные (незакрытые) файлы могут оказаться пустыми
(б) свежесозданные или перезаписываемые (опять же незакрытые) файлы могут содержать нули вместо данных.

Файловые системы - это всё-таки не реляционные СУБД, режим постоянной записи всех данных в журнал им в большинстве случаев противопоказан.

Тьфу, не ту ссылку дал, а редактировния нет. Мне тут нагади

Тьфу, не ту ссылку дал, а редактировния нет.

Мне тут нагадили в blog.lexa.ru в комменты правильными ссылками:
https://bugzilla.kernel.org/show_bug.cgi?id=12309 (500+ комментариев)
http://lurkmore.ru/12309

Ну и вообще народ жалуется. Поиск "Linux 12309" в Яндексе доставляет реально.

Из чего я делаю вывод, что бага есть, но проявляется только при Юпитере в созвездии Рыб.

А вот мне тут ночью пришло в голову (снились кошмары: сотни

А вот мне тут ночью пришло в голову (снились кошмары: сотни серверов под Linux)

А нету там какой-то фишки, которая стертый файл затирает рандомом?

Там главный напор...

...делается на то что, дескать "изкаропки в дебиане всё хорошо". Ну вот, у меня кучка серверов на оном дебиане, и, в один чудесный день я решил переехать на squeeze, для начала в тестовом режиме. Полтора месяца назад. Специфика была такая, что есть Большой Сервер ХХХ, на нем - xen 3.2 и в нем уже что только не крутилось в domN - и RHEL, и Debian-ы, и чорт лысый. Итак, я беру тестовый сервер такой же конфигурации по харду и с нуля ставлю сквиз и xen 4.0 И тут наступает ЩАСТЕ. Читать, собственно, здесь - http://wiki.debian.org/Xen#Possible_problems_and_bugs . Особенно чудесное было со скриптами - ну, вот, тупо контейнер не создавался без костылей, хоть издохни, это bug #591456

Как прикрутить к новью(4.0) старые HVM-контейнеры от 3.2 я сходу тоже не осознал, но пока что руки не доходили. Автоматом - хрена лысого, даже не пытается. Это Lenny -> Squeeze.

Не люблю флеймовых тем, но

Не люблю флеймовых тем, но таки отвечу.
Личный experience.
Более полутора сотен машин под линуксом. Видеонаблюдение. Аналоговые камеры. 16 штук по ~5fps каждая (загрузка PCI шины считается на калькуляторе). Размер одного пожатого кадра 50-70 KB, иерархически пишутся, камера-событие-файлы события. Отображение на этой же машинке, плюс возможность смотреть архив, либо живую картинку удаленно. Охранники пялятся в монитор постоянно. Террабайт перезаписывался примерно за две недели. Reiserfs. В основном без UPS (начали ставить позже, до этого экономил клиент). Днем запись получалась практически постоянно.

Был вынужден перенести подчистку файловой системы на время, когда меньше движения, потому что тормозил MySQL на некоторых запросах (а не файловая система). Тюнингом MySQL и его баз естественно пришлось озаботиться в первую очередь. До этого подчищалось по мере необходимости. Файловая система успевала отрабатывать, без всяких тормозов. В противном случае охранники изнасиловали бы весь мозг. Т.е. для этих задач файловой системы хватало.

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

iso-шка dvd: $ sudo time rm test1 0.00 user 0.61 system 0

iso-шка dvd:

$ sudo time rm test1
0.00
user 0.61
system 0:00.61
elapsed 99%CPU (0avgtext+0avgdata 2352maxresident)k
0inputs+0outputs (0major+175minor)pagefaults 0swaps

и не успеть что-то там открыть.
(sudo для получения более подробн. стат-ки)

сделал 10G файл :

100+0 records in
100+0 records out
10485760000 bytes (10 GB) copied, 114.578 s, 91.5 MB/s

удалим :

$ time rm file

real 0m1.438s
user 0m0.000s
sys 0m1.423s

какие к черту замирания ?

сделал 20G файл :

$ 200+0 records in
200+0 records out
20971520000 bytes (21 GB) copied, 296.888 s, 70.6 MB/s

$ sudo time rm file
0.00user 0.00system 0:00.01elapsed 15%CPU
(0avgtext+0avgdata 2352maxresident)k
112inputs+0outputs (1major+174minor)pagefaults 0swaps

это все на паре медленных (cравнивая с лучшими sata-шками) sata Barracuda 7200.11, на кот. raid1->lvm->ext4.

Причем параллельно есть некоторая нагрузка по IO, пусть и небольшая.
(видно на скорости вбрасывания байтиков в 20G файл)
на sata-шках поновее будет ещё быстрее.

так нет проблем с rm, в том-то и дело.

так нет проблем с rm, в том-то и дело.

Не-не, я тут чую противоречие. Если "оптимизированы под сер

Не-не, я тут чую противоречие.

Если "оптимизированы под серверную нагрузку", то очевидно что "собственно rm" делаем где-то в фоне, блокировки всех прочих процессов недопустимы (потому что там где-то спит самый главный серверный процесс).

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

Теперь уже диски медленные.

Теперь уже диски медленные. Не знаю о чем вы подумали, но у меня там 2 * Intel SSD по 160гигабайт. И памяти 12 гигабайт. и два 4 ядерных проца. Херово оно работает с новым железом, вот и все. А Линукс туда мы зафигачили только потому, что с этими SSD линейная скорость записи была 250мб/c, против 100мб/c (ровно) на FreeBSD 8.1. Очень может быть что скоро снесем и будет там как везде фряха.

ну rhel. пусть будет замирание всего.

ну rhel.
пусть
будет замирание всего.

и что будет ? удаление в течение скольких-то там секунд,

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

Раньше на предыдущих ядрах и медленных дисках было дольше, сейчас быстрее, потмоу как за последние 6 лет значительно лучше стали и ext*, и сами диски, и планировщики в ядрах.

Да, я тут говорю только про стабильные ядра от RHEL, и немного про ядра OpenSUSE, а вот как работает ядро, что собрал Вася-на-всю-голову-гентушник - один /dev/null ведает.

>Налицо проблема с машиной.

>Налицо проблема с машиной. Причем тут ФС, где таких проблем нет в принципе уже много лет ?

да, может быть и машина. другой OS у нас на ней не было, но одно из ядер - 2.6.37 работает дольше всех, попытки переползти на любую другую версию ядра приводят к тому что я написал :)

> Кто виноват людям, сидящим в 2011-м году на 1 гиге памяти и большом свопе ?
памяти 8 гигабайт, x86_64. Откуда фантазии про 1гиг? :)

не продолжайте, не интересно.

исошки недостаточно большие? возьми бюрэйную исошку

исошки недостаточно большие?
возьми бюрэйную исошку

не вижу никаких проблем с rm. В тч. с rm на пачку iso-шек.

не вижу никаких проблем с rm. В тч. с rm на пачку iso-шек.
ext3/4 .

очень хорошо. rm на сервере не бывает или что? rm на сервере

очень хорошо.
rm на сервере не бывает или что?
rm на сервере сверхприоритетная операция или что?
какое отношение своп к rm?

ну да, с быстрым диском будет быстрее, ваш к.о, но остальное-то причем?

тормоза при доступе к диску под Линукс - так и есть. 5 лет и

тормоза при доступе к диску под Линукс - так и есть. 5 лет использую Линукс на десктопе на работе, страшно напрягает это.

это оно

это оно http://lurkmore.ru/12309 :)
ну или серьезно https://bugzilla.kernel.org/show_bug.cgi?id=12309

Читай внимательно. Разжевываю: Указано, что "Проблема, в об

Читай внимательно.
Разжевываю:

Указано, что "Проблема, в общем, есть, только она снова не имеет никакого отношения к ФС."

Далее перечислены 3 причины,
1) Планировщики IO чаще всего оптимизированы под серверную нагрузку.
2) К этому добавим своп
3) сочетание всего этого с медленными дисками ...

которые в сумме
иногда дают именно то самое "сейчас дискетка отформатируется..."

<q>Проблема, в общем, есть, только она снова не имеет никако

Проблема, в общем, есть, только она снова не имеет никакого отношения к ФС.
Планировщики IO чаще всего оптимизированы под серверную нагрузку.
как это относится к rm из шела?

Так у меня и в линуксе Опера с Фоксом висели подолгу, при то

Так у меня и в линуксе Опера с Фоксом висели подолгу, при том, что окошек открывалось много.

у меня по месяцу висит в примерно константныъ объемах. на бо

у меня по месяцу висит в примерно константныъ объемах.
на больше обычно лектричества не хватает

не жутко, но течёт. Как и в Винде, в общем-то.

не жутко, но течёт. Как и в Винде, в общем-то.

Я не знаю, чем били по рукам тех криворуких людей.. > у нас

Я не знаю, чем били по рукам тех криворуких людей..

> у нас ротейт логов на одной из машин роняет ее регулярно раз в месяц (логи то ротейтятся мгновенно, только апач больше не работает) и помогает только reboot -fn

Налицо проблема с машиной. Причем тут ФС, где таких проблем нет в принципе уже много лет ?

>> на десктопе при копировании больших файлов все задумывается так что анекдот про "сейчас дискетка отформатируется..." как раз про современные Линуксовые ядра. Debian/2.6.разные, ext3/4

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

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

Кто виноват людям, сидящим в 2011-м году на 1 гиге памяти и большом свопе ?

И вот сочетание всего этого с медленными дисками иногда даёт именно то самое "сейчас дискетка отформатируется..."

>> хочешь грохнуть исошку/исходники -- и оно тупит минуты две.

Если речь про винт 2004-го года - верю. Если речь про некие самособранные криворуким гентушником/слакварщиком ядра - тоже верю.

А так... просто sata диск, ext3/4, чпок- удалили iso-шки, проблем-то.

тут кому как повезёт :) у меня как то XFS убилась так (на се

тут кому как повезёт :)
у меня как то XFS убилась так (на сервере, в дц, пара хаявок на ребут кнопкой reset), что ядро при её виде (попытке подмонтировать / отрепейрить) падало в panic
reiserfs 3й, про который пишут что он сам по себе даже сыпется, при это, ни разу никаких нареканий не вызывал.

Мой дебиан при удалении 50Гб файла через SMB c ext4 входит в

Мой дебиан при удалении 50Гб файла через SMB c ext4 входит в клинч на 8 секунд, даже по сети не подсоединиться по VNC в этот момент. EXT4 на системном разделе у меня разок ложился напрочь при внезапном ребуте, приходилось из бэкапа разворачиваться.

Наверное выдам крамольную мысль, но из вариантов ext3, ext4 и xfs мне больше всего понравилось поведение ....NTFS, правда с kernel-mode драйвером от Paragon (единственный минус - фришная версия на сайте не умеет дефрагментировать и проверять на ошибки). Зато на ошибки можно проверить тулзой из комплекта NTFS-3G (тормоз тот еще). Процессор грузит меньше, шуршит быстро, советую попробовать.

И в любом случае, без UPS нужно быть очень осторожным в выборе, так как линуксовые ФС либо настроены на надежность, либо на скорость (но нужно выбрать что-нибудь одно из списка, а потом соответствующую ФС: большие файлы, мелкие файлы, много потоков и т.п.).

Надо, хотя это и другая проблема

Надо, хотя это и другая проблема

Pages

Subscribe to comments_recent_new