У Reiser5 анансаваная падтрымка Burst Buffers (Data Tiering)

Эдуард Шышкін анансаваў новыя магчымасці, якія развіваюцца ў рамках праекту Reiser5. Reiser5 ўяўляе сабой істотна перапрацаваны варыянт файлавай сістэмы ReiserFS, у якім на ўзроўні файлавай сістэмы, а не блокавай прылады, рэалізаваная падтрымка раўналежна якія маштабуюцца лагічных тамоў, якая дазваляе эфектыўна размяркоўваць дадзеныя па лагічным таму.

З якія развіваюцца ў апошні час навін адзначаецца прадастаўленне
карыстачу магчымасці дадаць невялікае высокапрадукцыйнае
блокавая прылада (напр. NVRAM), званая проксі-дыскам, Да
адносна вялікаму лагічнаму таму, скампанаванаму з павольных
бюджэтных дыскаў. Пры гэтым будзе стварацца ўражанне, што ўвесь
том скампанаваны з такіх жа дарагіх высокапрадукцыйных
прылад, як і «проксі-дыск».

У аснову рэалізаванага метаду лягло простае назіранне, што на практыцы запіс на дыск не вядзецца ўвесь час, а крывая нагрузкі ўводу-высновы мае форму пікаў. У прамежку паміж такімі "пікамі" заўсёды маецца магчымасць скінуць дадзеныя з проксі-дыска, перапісаўшы ў фонавым рэжыме ўсе дадзеныя (ці ж толькі частка) у асноўнае, "павольнае" сховішча. Такім чынам, проксі-дыск заўсёды готаў да прыёму новай порцыі дадзеных.

Першапачаткова дадзеная тэхніка (вядомая як Burst Buffers) узнікла ў
вобласці высокапрадукцыйных вылічэнняў (HPC). Але яна апынулася таксама запатрабаванай і для звычайных прыкладанняў, асабліва для тых, якія прад'яўляюць падвышаныя патрабаванні да цэласнасці дадзеных (звычайна гэта рознага роду базы дадзеных). Любыя змены ў якім-небудзь файле такія прыкладанні выконваюць атамарным спосабам, а менавіта:

  • спачатку ствараецца новы файл, які змяшчае змененыя дадзеныя;
  • потым гэты новы файл запісваецца на дыск пры дапамозе fsync(2);
  • пасля гэтага новы файл пераназываецца ў стары, што аўтаматычна
    вызваляе блокі, занятыя старымі дадзенымі.

    Усе гэтыя крокі ў той ці іншай ступені становяцца прычынай істотнага
    зніжэння прадукцыйнасці на любой файлавай сістэме. Сітуацыя
    паляпшаецца, калі новы файл спачатку запісаць на наадварот
    высокапрадукцыйная прылада, што ў дакладнасці і адбываецца ў
    файлавай сістэме з падтрымкай "Burst Buffers".

    У Reiser5 плануецца апцыянальна адпраўляць на проксі-дыск не толькі
    новыя лагічныя блокі файла, але і ўсе брудныя старонкі наогул. Прычым,
    не толькі старонкі з дадзенымі, але таксама і з мета-дадзенымі, якія
    запісваюцца на кроках (2) і (3).

    Падтрымка проксі-дыскаў ажыццяўляецца ў кантэксце штатнай працы з
    лагічнымі тамамі Reiser5, анансаванай у пачатку года. Гэта значыць,
    сукупная сістэма «проксі-дыск - асноўнае сховішча» з'яўляецца звычайным
    лагічным томам з той толькі розніцай, што проксі-дыск мае прыярытэт
    сярод астатніх кампанентаў тома ў палітыцы выдзялення дыскавых адрасоў.

    Даданне проксі-дыска ў лагічны том не суправаджаецца які-небудзь
    перабалансаванне дадзеных, а яго выдаленне адбываецца сапраўды гэтак жа, як і
    выдаленне звычайнага дыска. Усе аперацыі з проксі-дыскам атамарны.
    Апрацоўка памылак і разгортванне сістэмы (у тым ліку пасля сістэмнага краху) адбываецца сапраўды гэтак жа, як калі б проксі-дыск быў звычайным кампанентам
    лагічнага тома.

    Пасля дадання проксі-дыска, сумарная ёмістасць лагічнага тома
    павялічваецца на ёмістасць гэтага дыска. Маніторынг вольнага месца на
    проксі-дыску вырабляецца гэтак жа, як і для астатніх кампанентаў тома, г.зн. пры дапамозе ўтыліты volume.reiser4(8).

    Проксі-дыск неабходна перыядычна чысціць, г.зн. скідаць дадзеныя з
    яго ў асноўнае сховішча. Пасля дасягнення бэта-стабільнасці Reiser5
    ачыстку плануецца зрабіць аўтаматычнай (ёй будзе кіраваць
    спецыяльны трэд ядра). На дадзеным жа этапе адказнасць за ачыстку
    ускладаецца на карыстальніка. Скід дадзеных з проксі-дыска ў асноўнае
    сховішча вырабляецца простым выклікам утыліты volume.reiser4 з опцыяй
    "-b". У якасці аргумента трэба ўказаць кропку мантавання лагічнага
    тамы. Зразумела, ачыстку трэба не забываць праводзіць перыядычна. Для
    гэтага можна напісаць просты shell-скрыпт.

    У выпадку адсутнасці вольнага месца на проксі-дыску ўсе дадзеныя
    аўтаматычна запісваюцца ў асноўнае сховішча. Пры гэтым па-змаўчанні
    змяншаецца агульная прадукцыйнасць ФС (з-за сталага выкліку
    працэдуры коміта ўсіх наяўных транзакцый). Апцыянальна можна задаць
    рэжым без страты прадукцыйнасці. Аднак, у гэтым выпадку дыскавае
    прастора проксі-прылады будзе выкарыстоўвацца менш эфектыўна.
    У якасці проксі-дыска зручна выкарыстоўваць падраздзел (брык) мета-дадзеных, пры ўмове, што ён створаны на досыць высокапрадукцыйнай блокавай прыладзе.

    Крыніца: opennet.ru

  • Дадаць каментар