Smutna historia btrfsck



Istnienie btrfs Chris Mason zaanansował w połowie 2007 roku. System plików był używalny, chociaż brakowało wielu ficzerów i narzędzi. Nie było działającego fsck. I chociaż współczesne systemy plików w zasadzie nie potrzebują fsck, to jednak sprzęt kłamie i czasem trzeba ratować.

Półtora roku później (pierwsza połowa 2009) wydana zostaje Fedora 11. Instalator pozwala użyć btrfs po podaniu intuicyjnego hasła icantbelieveitsnotbutter. Przy katastrofach dalej trzeba odgrzewać backupy.

Kończy się 2009. Chris informuje, że fsck wciąż znajduje się w TODO. btrfsck z btrfs-progs nie dokonuje żadnych napraw tylko, kilku sprawdzeń.

W tym czasie koledzy z firmy Chrisa zauważają, że jednak nie można ignorować problemów spowodowanych niedoskonałością sprzętu. ZFS otrzymuje opcję recover, pozwalającą na odrzucenie ostatnich transakcji i przywrócenie spójności.

Mija kolejne pół roku. Niezrażeni twórcy MeeGo w maju 2010 postanawiają stosować btrfs jako podstawowy system plików.

Kilka kolejnych tyogdni bez wzmianek o fsck. W czerwcu 2010 Chris wspomina:

Everyone needs an fsck. Yan Zheng is working on a more complete fsck right now, and making good progress ;)
Zauważa też, że planują większości napraw dokonywać on-line. Fsck ma być przeznaczony do ratowania nie mountujących się systemów plików.

Tik, tak, tik, tak. Kończy się sierpień 2010. We're still actively developing it. I don't have a release date planned yet but we should have betas coming out over the next few months.

W listopadzie 2010 pierwszy przejaw wyjścia kodu fsck poza Oracle. Osoba z częstymi problemami zostaje namaszczona przez Chrisa:

Since you're basically going to be my first external fsck customer, is there anyway you can do a raw device based backup of the blocks?

W grudniu 2010, oprócz pojawienia się drobnego btrfs-select-super przydatnego przy odzyskiwaniu, Chris zapala kolejną iskierkę nadziei. I hope to have something ready early Monday..

W sylwestrową noc Ziemię rozświetlają fajerwerki.

Luty 2011.

Yes, but its still real soon now. I've been at about 90% done since Christmas. It would have been out last week […] I finally found a race in btrfs causing the corruption and now I'm back on fsck full time again.

W lipcu 2011 pojawia się jądro z numerkiem wersji 3.0. Wśród zmian jest scrub dla btrfs, czyli sprawdzanie spójności i naprawianie błędów w czasie pracy. Jest też autodefragmentacja. Wciąż nie ma narzędzia na sytuacje, kiedy nie można zamountować uszkodzonego systemu.

Na początku sierpnia 2011 Chris obiecuje ponownie:

Aside from making sure the kernel code is stable, btrfsck is all I'm working on right now. I do expect a release in the next two weeks that can recover your data (and many others).
Kolejny brak konkretów powoduje, że Fedora rezygnuje z uczynienia btrfs domyślnym systemem plików. Może za pół roku. Dostępność fsck jest jednak pierwszym warunkiem koniecznym. Wciąż nie spełnionym.

Na IRCu Chris zapowiada gotowość fsck na Linux Plumbers Conference 2011. LPC odbywa się w pierwszej połowie września. Stan fsck – jak zwykle.

Najnowsze zapowiedzi łączą się z ogłoszeniem, że btrfs został wybrany na domyślny system plików w Oracle Linux.

What this means is that absolutely cannot move forward without btrfsck. RH, Fujitsu, SUSE and others have spent a huge amount of time on the filesystem and it is clearly time to start putting it into customer hands.
Fsck mamy w końcu zobaczyć na Linuxcon Europe, który odbędzie się pod koniec października 2011. Wcześniej będzie merge window dla jądra 3.2. Z obsługą dużych bloków i podwalin dla RAID. Z doświadczenia wynikałoby, że kolejnego Sylwestra spędzimy bez btrfsck.

Archived comments:

pecet 2011-10-05 15:00:52

Co jest tak fajnego w tym systemie plików, że nie możesz innego użyc?

zdz 2011-10-05 15:15:33

pecet: logic fail.

lemiel 2011-10-05 21:12:24

Ojej. Są programiści, którzy mają muchy w nosie, czy coś tam podobnego. No i są ciekawsze zabawki i już.

suseł 2011-10-13 14:16:30

BTRFS mimo COW jest tragicznie niestabilny, w ciągu 2 miesięcy miałem 3 przypadki uszkodzeń systemu plików, i to używając tylko najnowszych jąder 2.6.39 i wyższych (obecnie mam 3.0.6 - openSUSE x64 Tumbleweed).

Spróbowałem, bo fsck miał być "na dniach", ale obecnie znowu mam EXT4. Jeżeli chodzi o szybkość, to pewnie rzeczy robi szybciej - inne zdecydowanie wolniej albo wcale (VirtualBox się zawiesza przy próbie utworzenia dysku).

Także na razie nie warto. Jeżeli ktoś go chce uczynić domyślnym systemem, to jest to spory błąd.

M.R.Yt 2011-12-22 10:24:04

pecet: Postawiłem SuSE 12.1 na pendrive. Na btrfs ładuje się 2 razy szybciej niż na ext4. Nie wiem dlaczego, ale na ext4 chodzi tragicznie wolno, i stąd mój wybór. Jednak na żadnym serwerze nie zasosowałbym btrfs.

Comments


Comments powered by Disqus