Эдуард Шышкін
З якія развіваюцца ў апошні час навін адзначаецца прадастаўленне
карыстачу магчымасці дадаць невялікае высокапрадукцыйнае
блокавая прылада (напр. NVRAM), званая
адносна вялікаму лагічнаму таму, скампанаванаму з павольных
бюджэтных дыскаў. Пры гэтым будзе стварацца ўражанне, што ўвесь
том скампанаваны з такіх жа дарагіх высокапрадукцыйных
прылад, як і «проксі-дыск».
У аснову рэалізаванага метаду лягло простае назіранне, што на практыцы запіс на дыск не вядзецца ўвесь час, а крывая нагрузкі ўводу-высновы мае форму пікаў. У прамежку паміж такімі "пікамі" заўсёды маецца магчымасць скінуць дадзеныя з проксі-дыска, перапісаўшы ў фонавым рэжыме ўсе дадзеныя (ці ж толькі частка) у асноўнае, "павольнае" сховішча. Такім чынам, проксі-дыск заўсёды готаў да прыёму новай порцыі дадзеных.
Першапачаткова дадзеная тэхніка (вядомая як Burst Buffers) узнікла ў
вобласці высокапрадукцыйных вылічэнняў (HPC). Але яна апынулася таксама запатрабаванай і для звычайных прыкладанняў, асабліва для тых, якія прад'яўляюць падвышаныя патрабаванні да цэласнасці дадзеных (звычайна гэта рознага роду базы дадзеных). Любыя змены ў якім-небудзь файле такія прыкладанні выконваюць атамарным спосабам, а менавіта:
вызваляе блокі, занятыя старымі дадзенымі.
Усе гэтыя крокі ў той ці іншай ступені становяцца прычынай істотнага
зніжэння прадукцыйнасці на любой файлавай сістэме. Сітуацыя
паляпшаецца, калі новы файл спачатку запісаць на наадварот
высокапрадукцыйная прылада, што ў дакладнасці і адбываецца ў
файлавай сістэме з падтрымкай "Burst Buffers".
У Reiser5 плануецца апцыянальна адпраўляць на проксі-дыск не толькі
новыя лагічныя блокі файла, але і ўсе брудныя старонкі наогул. Прычым,
не толькі старонкі з дадзенымі, але таксама і з мета-дадзенымі, якія
запісваюцца на кроках (2) і (3).
Падтрымка проксі-дыскаў ажыццяўляецца ў кантэксце штатнай працы з
лагічнымі тамамі Reiser5,
сукупная сістэма «проксі-дыск - асноўнае сховішча» з'яўляецца звычайным
лагічным томам з той толькі розніцай, што проксі-дыск мае прыярытэт
сярод астатніх кампанентаў тома ў палітыцы выдзялення дыскавых адрасоў.
Даданне проксі-дыска ў лагічны том не суправаджаецца які-небудзь
перабалансаванне дадзеных, а яго выдаленне адбываецца сапраўды гэтак жа, як і
выдаленне звычайнага дыска. Усе аперацыі з проксі-дыскам атамарны.
Апрацоўка памылак і разгортванне сістэмы (у тым ліку пасля сістэмнага краху) адбываецца сапраўды гэтак жа, як калі б проксі-дыск быў звычайным кампанентам
лагічнага тома.
Пасля дадання проксі-дыска, сумарная ёмістасць лагічнага тома
павялічваецца на ёмістасць гэтага дыска. Маніторынг вольнага месца на
проксі-дыску вырабляецца гэтак жа, як і для астатніх кампанентаў тома, г.зн. пры дапамозе ўтыліты volume.reiser4(8).
Проксі-дыск неабходна перыядычна чысціць, г.зн. скідаць дадзеныя з
яго ў асноўнае сховішча. Пасля дасягнення бэта-стабільнасці Reiser5
ачыстку плануецца зрабіць аўтаматычнай (ёй будзе кіраваць
спецыяльны трэд ядра). На дадзеным жа этапе адказнасць за ачыстку
ускладаецца на карыстальніка. Скід дадзеных з проксі-дыска ў асноўнае
сховішча вырабляецца простым выклікам утыліты volume.reiser4 з опцыяй
"-b". У якасці аргумента трэба ўказаць кропку мантавання лагічнага
тамы. Зразумела, ачыстку трэба не забываць праводзіць перыядычна. Для
гэтага можна напісаць просты shell-скрыпт.
У выпадку адсутнасці вольнага месца на проксі-дыску ўсе дадзеныя
аўтаматычна запісваюцца ў асноўнае сховішча. Пры гэтым па-змаўчанні
змяншаецца агульная прадукцыйнасць ФС (з-за сталага выкліку
працэдуры коміта ўсіх наяўных транзакцый). Апцыянальна можна задаць
рэжым без страты прадукцыйнасці. Аднак, у гэтым выпадку дыскавае
прастора проксі-прылады будзе выкарыстоўвацца менш эфектыўна.
У якасці проксі-дыска зручна выкарыстоўваць падраздзел (брык) мета-дадзеных, пры ўмове, што ён створаны на досыць высокапрадукцыйнай блокавай прыладзе.
Крыніца: opennet.ru