Журналға құрылымдалған файл жүйесі (BSD) - Log-structured File System (BSD)

The Журналға құрылымдық файлдық жүйе (немесе LFS) жүзеге асыру болып табылады журналдың құрылымдық файлдық жүйесі (бастапқыда ұсынылған және жүзеге асырылған тұжырымдама Джон Оустерхут ) үшін бастапқыда жасалған BSD. Ол жойылды FreeBSD және OpenBSD; The NetBSD іске асыру 4.0 шығарылымына дейінгі жұмыс оны өндірістік файл жүйесі ретінде қайтадан өміршең еткенге дейін жұмыс істемеді.[1]

Дизайн

LFS дискісіндегі форматтың көп бөлігі алынған UFS. Жанама блок, inode және каталог форматтары бірдей. Бұл UFS файл жүйесінің жақсы тексерілген кодын қайта пайдалануға мүмкіндік береді; LFS қолданыстағы бағдарламалары UFS кодын FFS үшін төменгі деңгей кодымен бөліседі, өйткені бұл файлдық жүйелер UFS-пен көп нәрсені ортақ етеді.

LFS дискіні екіге бөледі сегменттер, тек біреуі ғана бір уақытта белсенді болады. Әр сегменттің а деп аталатын тақырыбы бар жиынтық блок. Әр жиынтық блокта сегменттерді LFS сызықтық журнал ретінде қарастыратын бір ұзын тізбекке байланыстыратын келесі жиынтық блокқа сілтеме бар. Сегменттер міндетті түрде дискіде бір-бірімен іргелес болуы шарт емес; осы себепті сегменттердің үлкен өлшемдері ұсынылады (384KB мен 1MB аралығында), өйткені олар сегменттер арасында іздеу құнын амортизациялайды.[2]

Файл немесе каталог өзгерген сайын, LFS осы журналдың басына жазады:

  1. Кез келген өзгертілген немесе жаңа блоктар.
  2. Жанама блоктар (1) -ге дейін жаңартылды.
  3. Инодтар (2) тармағына дейін жаңартылды.
  4. Inode картасының блоктары (3) -ге дейін жаңартылды.[3]

UFS-тен айырмашылығы, LFS ішіндегі инодтардың тұрақты орналасуы жоқ. Оларды қадағалау үшін иноды картасы - иноды блогының орналасуының тегіс тізімі қолданылады. Басқа барлық нәрселер сияқты, инодты картаның блоктары да өзгертілген кезде журналға жазылады.

Сегмент толтырылған кезде LFS келесі тегін толтыруға өтеді немесе таза сегмент. Сегменттер деп аталады лас егер олар бар болса өмір сүру бұдан әрі журналда жаңа көшірмелері жоқ блоктар немесе блоктар. LFS қоқыс жинаушы лас сегменттерге айналады таза тірі блоктарды лас сегменттен ағымдағы сегментке көшіру және қалғандарын өткізіп жіберу арқылы. Әр сегменттегі жиынтық блокта тірі блоктарды бақылауға арналған карталар бар.

Әдетте, қоқыстарды жинау таза сегменттер қалмағанша кешіктіріледі; оны жүйе жұмыс істемей тұрғанда кейінге қалдыруға болады. Содан кейін де жинау үшін ең аз ластанған сегменттер таңдалады. Бұл I / O өткізу қабілеттілігі өте қажет болған кезде толық сегменттерді тазарту жазасынан құтылуға арналған.[2]

А бақылау пункті (әдетте шамамен 30 секундта бір рет жоспарланады), LFS иноды картасының соңғы белгілі блоктық орындарын және ағымдағы сегменттің санын a-ға жазады бақылау-өткізу пунктінің аймағы дискідегі бекітілген жерде. Мұндай екі аймақ бар; LFS олардың әрқайсысында кезек-кезек ауысады. Жазылғаннан кейін, а бақылау пункті файлдық жүйенің соңғы дәйекті суретін ұсынады. Апаттан кейін қалпына келтіру және қалыпты жағдай монтаждау дәл осылай жұмыс істеңіз - файлдық жүйе жай-күйін соңғы бақылау нүктесінен қалпына келтіріп, журналды сол жерден бастайды.

Кемшіліктері

  • Ауыр болуы мүмкін файлдық жүйені бөлшектеу LFS-де, әсіресе баяу өсіп келе жатқан файлдарға немесе бірнеше бір мезгілде үлкен жазуларға арналған. Бұл қатаң орындаушылық жазаны қолданады, дегенмен жобалау негіздемесі журналы құрылымдалған файлдық жүйелер үшін дискіні оқу негізінен кэштеледі деп болжайды.
  • LFS біртіндеп азаяды, өйткені ол максималды сыйымдылыққа жақындайды, өйткені қоқыс жинаушы таза сегменттерге қол жеткізу үшін үнемі жұмыс істеуі керек.
  • LFS рұқсат бермейді суретке түсіру немесе версиялау, дегенмен, екі функцияны да журналға құрылымдалған файлдық жүйелерде енгізу өте маңызды емес.

Ескертулер

  • Сельцер, Марго; Бостик, Кит; МакКусик, Маршалл Кирк; Стаелин, Карл (1993 ж. Қаңтар), «UNIX-ке құрылымдық файлдық жүйені енгізу» (PDF), 1993 жылғы қысқы Усеникстің материалдары
  • Мэтьюз, Жанна Нифе; Розелли, Дрю; Костелло, Адам М .; Ванг, Рандольф Ю .; Андерсон, Томас Э. (1997 ж. Қазан), «адаптивті әдістермен журнал құрылымды файлдық жүйелердің жұмысын жақсарту», SOSP '97 Операциялық жүйелер принциптері туралы он алтыншы ACM симпозиумының материалдары: 238–251, дои:10.1145/268998.266700, ISBN  978-0897919166

Әдебиеттер тізімі

  1. ^ Буер, Мануэль (2007-12-15). «NetBSD 4.0 шығарылымы ӨЗГЕРУ». Алынған 2019-02-04..
  2. ^ а б Розенблум, Мендель; Ousterhout, Джон К (ақпан 1992), «Журналы құрылымдық файлдық жүйені жобалау және енгізу» (PDF), Компьютерлік жүйелердегі ACM транзакциялары, 10 (1): 26–52, дои:10.1145/146941.146943.
  3. ^ Розенблум, Мендель; Ousterhout, Джон К (маусым 1990), «LFS сақтау менеджері» (PDF), 1990 жылғы жазғы Усеникстің еңбектері: 315–324.