From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Michael Shigorin To: sysadmins@lists.altlinux.org Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit User-Agent: tin/1.7.7-20041215 ("Scalpay") (UNIX) (Linux/2.4.29-std-up-alt3 (i686)) Message-Id: <20060403140408.353FFE000121@amp.emt> Date: Mon, 3 Apr 2006 17:04:08 +0300 (EEST) Subject: [Sysadmins] (fwd) ext3 sux X-BeenThere: sysadmins@lists.altlinux.org X-Mailman-Version: 2.1.7 Precedence: list Reply-To: ALT Linux sysadmin discuss List-Id: ALT Linux sysadmin discuss List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Apr 2006 14:09:38 -0000 Archived-At: List-Archive: JFYI -- forwarded message -- Message-ID: From: Ilya Anfimov 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 ------ Linux.Kiev http://www.linux.kiev.ua/