Кіріспе
Журналды файлдық жүйе
ReiserFS нұсқасы 3
ReiserFS нұсқасы 3.6, кейде Reiser3 деп аталатын, үлкен файл өлшемдерін қолдауға мүмкіндік беретін жаңа дискілік форматты енгізді. Namesys ReiserFS-ті тұрақты және толық мүмкіндіктерге ие деп санай отырып, оның дамуын тоқтатты және назарын Reiser4-ке бұрды, бірақ қауіпсіздік жаңартуларын және маңызды қателерді түзетуді жалғастырды. 2008 жылы Рейзердің кісі өлтіру қылмысы үшін сотталғаннан кейін Namesys компаниясы жұмысын тоқтатты. Қазіргі таңда бұл өнім еріктілер тарапынан ашық код ретінде қолдауға ие. Reiserfsprogs 3.6.27 2017 жылдың 25 шілдесінде жарияланды. ReiserFS қазіргі уақытта Linux жүйесінде квота қолдауысыз қолдау көрсетіледі. 2022 жылдың басынан бері файлдық жүйеге тән техникалық мәселелер, соның ішінде 2038 жылғы мәселеден зардап шегуіне байланысты Linux ядросынан жою мүмкіндігі талқыланып келеді; ол Linux 5.18 нұсқасында қолданыстан шығарылды және Linux 6.6 нұсқасында ескі деп белгіленді. Оны 2025 жылы алып тастау жоспарлануда.
Ерекшеліктері
ReiserFS енгізілген кезде, ол қолданыстағы Linux файлдық жүйелерінде бұрын болмаған мүмкіндіктерді ұсынды. Мысалы, "құйрық жинақтау" – өнімділіктің төмендеуіне жол бермей, ішкі фрагментацияны азайтуға бағытталған схема. Reiser4 бұл мәселені өнімділікке зиян келтірмейтін құйрықтарды жинақтау арқылы жақсартуға мүмкіндік береді.
Дизайн
ReiserFS файл метадеректерін ("статистикалық элементтер"), каталог жазбаларын ("каталог элементтері"), inode блогының тізімдерін ("түсіндірме элементтері") және файлдардың соңғы бөліктерін ("тікелей элементтер") бір біріктірілген B+ ағашта, әмбебап объект ID бойынша кілттеу арқылы сақтайды. Ағаш түйіндеріне бөлінген дискілік блоктар "форматталған ішкі блоктар" деп аталады. Жапырақ түйіндері үшін блоктар (элементтер соңынан соңға орналасқан) "форматталған жапырақ блоктары" болып табылады. Қалған барлық блоктар файл мазмұнын қамтитын "форматталмаған блоктар" болып табылады. Көптеген жазбалары бар каталог элементтері немесе түйінге сыймайтын ұзақ түсіндірме элементтері оң жақтағы жапырақ көршісіне ағып кетеді. Блоктарды бөлуді бос орынның биттік карталары белгілі бір орындарда қадағалайды. Ал, ext2 және сол кездегі басқа Беркли FFS сияқты файлдық жүйелер inode орналасуын есептеу үшін тек белгілі бір формуланы қолданды, осылайша олардың құрай алатын файлдар санын шектеді. Мұндай көптеген файлдық жүйелер каталогтарды жазбалардың қарапайым тізімі ретінде сақтайды, бұл каталогтарды іздеу және жаңарту операцияларын сызықтық уақытта орындайды және өте үлкен каталогтарда өнімділікті төмендетеді. ReiserFS-тегі жалғыз B+ ағаш дизайны, жақсы масштабталу қасиеттеріне байланысты, осы екі проблеманың алдын алады.
Өнер көрсету
Linux ядросының 2.4 нұсқасындағы ext2 және ext3 жүйелерімен салыстырғанда, 4 КиБ-тан кішкентай файлдармен жұмыс істегенде және құйрықты жинау қосылғанда ReiserFS жылдамырақ болуы мүмкін. Linux 2.6.33 нұсқасына дейін ReiserFS үлкен ядролық құлыпты (BKL) – ядроның бүкіл кеңістігіндегі жаһандық құлыпты – кеңінен пайдаланды, ол көп ядролы жүйелерде тиімді жұмыс істемейді, себебі маңызды кодтың бөліктері бір уақытта тек бір ядрода ғана орындалады.
Қолданылуы
ReiserFS – 2000 жылы шыққан 6.4 нұсқасынан бастап, 2006 жылы жарияланған SUSE Linux Enterprise 10.2 және openSUSE 11-де ext3 түріне ауысқанға дейін SuSE Linux-тың стандартты файлдық жүйесі болды. SUSE-дің Джефф Махони 2006 жылдың 14 қыркүйегінде ReiserFS-тен ext3 файлдық жүйесіне өтуді ұсынған хабарлама жазды. Ол өзінің ұсынысы Ханс Райзердің кісі өлтіру ісі бойынша сотталып жатуымен байланысты емес екенін мәлімдеді. Махони "адамдардың байланыс бар жерде жоқ екенін ойлауы мүмкін деп алаңдаймын" және "оқиғаның уақыты мүлдем кездейсоқ, ал себебі байланысты емес" деп жазды. Егер машина дискіні синхрондаудан бұрын тоқтаса, (Postfix сияқты) деректердің жоғалуы мүмкін. ReiserFS файлдық жүйесін фрагментациядан тазартуға арналған арнайы бағдарламалар жоқ, бірақ фрагменттелген файлдардың мазмұнын автоматты түрде көшіруге арналған құралдар жасалды, осылай бос орынның біріктірілген бөлімдерін табуға үміттенді. Дегенмен, келесі Reiser4 файлдық жүйесі үшін файлдық фрагментациямен күресуге арналған "қайта жинақтау" құралы жоспарланды. Фрагментация, файлдық жүйесіне қарамастан, SSD-де де проблема болып қалады.
fsck
ReiserFS 3-тің fsck құралы, толық бұзылу жағдайында құтқару шарасы ретінде бүкіл ағашты қайта құруға қабілетті. Бұл әрекетті әкімші қолмен іске қосуы керек, ол қалыпты жұмыс процесінің бөлігі емес. Күтілуідей, бұл процесс құрылымдық бұзуға алып келуі мүмкін, қолданыстағы файлдарды зақымдауы немесе күтпеген мазмұны бар жаңа жазбаларды енгізуі мүмкін, бұл тиімді әдіс емес деп сынға ұшырады. ReiserFS v3 кескіндерін (мысалы, резервтік көшірмелер немесе эмуляторларға арналған дискі кескіндері) ReiserFS v3 бөлімінде, оларды қайта құру кезінде шатастырмау үшін, түрлендірмей (мысалы, сығу немесе шифрлау арқылы) сақтамау керек. ReiserFS v3 бөлімін қайта форматтау, қайта құру операциясын шатастыруы мүмкін деректерді қалдыруы және ескі жүйенің файлдарын қайта пайда болуына себеп болуы мүмкін. Бұл сондай-ақ, қасақана түрде қайта құру құралын шатастыратын файлдарды сақтауға зыянды пайдаланушыларға мүмкіндік береді. Файл жүйесін тексеруден кейін метадеректер әрқашан дұрыс күйде болғандықтан, бұзылу дегеніміз – файлдардың мазмұны файлдық жүйенің метадеректермен күтпеген тәсілдермен біріктірілуі. Бұл btrfs-тегі FSID мәселесіне ұқсас. ReiserFS-тің ізбасары – Reiser4, бұл мәселені шешеді. Linux ядросының 2.4.16 нұсқасынан бұрынғы нұсқаларындағы ReiserFS Namesys компаниясымен тұрақсыз деп танылды және өндірісте қолдануға, әсіресе NFS-пен бірге қолдануға ұсынылмады. ReiserFS-тің алғашқы нұсқалары (Linux 2.6.2 нұсқасына дейін) ретсіз жазу қауіптеріне де ұшырады. Бірақ қазіргі ReiserFS-тегі журналдау енгізілімі ext3-тің «реттелген» журналдау деңгейімен тең.