[Sysadmins] (fwd) ext3 sux

Michael Shigorin =?iso-8859-1?q?mike_=CE=C1_osdn=2Eorg=2Eua?=
Пн Апр 3 18:04:08 MSD 2006


JFYI

-- forwarded message --
Message-ID: <slrne2oaa3.3i7jl.ilan/krondor.astelecom.ru>
From: Ilya Anfimov <ilan/astelecom.ru>
Newsgroups: fido7.ru.linux
Subject: ext3 sux
Date: Thu, 30 Mar 2006 18:54:31 +0000 (UTC)


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

 Суть в чём -- была файлуха, жыла, практически никого не трогала,
ext3.  Писались  туда  файлики по-маленьку, место заполняли. Надо
было как-то ещё места им подкинуть.
 Ну, отмонтировал, fsck -f,  снёс  журнал  debugfs'ом,  fsck  -f,
(раздел  к  тому времени давно расшырен был), resize2fs, fsck -f,
примонтировал в режыме  ext2,  посмотрел,  отмонтировал,  добавил
журнал   (э-э-э.   Не   помню,   скорее   tune2fs'ом),  fsck  -f,
примонтировал mount -a, порадовался.

 Всё было замечательно недели две. До ребута по  питанию.   После
чего  (я  заметил  это  не сразу, а через день.  Но, надо думать,
пришло это сразу) -- данные за те две недели  испарились.  Молча.
То есть вот ровно с такого-то момента -- как отрезало. До него --
всё замечательно.  Очень вероятно --  что  момент  этот  как  раз
изменение  размера.  И продолжается всё только после ребута. А до
факта ребута они совершэнно точно там были (их многие видели).
 При  этом  это  явно  не lvm колбасит. Поскольку в эту fs обычно
данные только  пишутся, и  не  удаляются,  да  ещё  и  по  одному
файлику  --  то  мне хорошо видно, что сразу за последним занятым
блоком идёт  то, что   туда   писалось   две   недели   назад.  С
аккуратно  забитыми  нулями  блоками,  ровно на тех местах, где и
дожны быть  block  indexes  и directories.  То есть  данные  туда
были записаны, а затем дровами fs поваплены.

PS Да, я не на все 100% уверен, что занимался изменением  размера
именно в тот момент, с которого всё исчезло.  Это могло быть и на
неделю раньшэ. Хотя и маловероятно.

PPS  Кстати,  в  связи  с  этим  --  думаю,  на  какую   fs   мне
ориентироваться.   Ну, не только в связи с этим, конечно. Бывало,
что и postgres после подъёма начинал орать  про  битые  страницы.
Учитывая,  что  после  kill -9  он  себе  такого  не  позволял  и
стояло там data=journal -- надо думать, это не совсем его вина.

 Тут надо заметить, что я сунулся в исходники ext3 -- посмотреть,
можэт  можно  что-нибудь выпрямить. Хм. Ну, теоретически...  А на
практике -- горбатого могила исправит. То есть где-нибудь ещё это
был  бы  достаточно  чистый  и приятный код. В таком месте -- это
как-то херово выглядит.
 Сунулся в ext2 -- всё  выглядит  проще  и  прямее.  Но  тожэ  не
фонтан.  Да  и русская рулетка при некорректных выключениях здесь
гарантированна авторами. Правда, я для баз  данных  всё-таки  ужэ
давно  включил  ext2. Нет, не из-за скорости.  Но не так давно --
повыкидывал проверки кодов fsck  из  init-scripts.   Чтобы  ребут
поднимал  машыну  с  бОльшэй  вероятностью.  Любителям  давать ЦУ
замечу: я знаю, как сделать, чтобы было fsck -y, но не хочу.


 Пока остановился  вроде  на  xfs.  В  смысле  --  новые  сервисы
постараюсь  поднимать  на  ней.  Комментарии  в коде понятны :-).
Количество фич прикольно. Пинки приветствуются.

-- end of forwarded message --

-- 
 ---- WBR, Michael Shigorin <mike на altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/



Подробная информация о списке рассылки Sysadmins