Базавыя элементы Flash Virtualization Platform (FVP), частка 2. Выкарыстанне ўласнай платформы або файлавай сістэмы

Адна з тэм, якую я абмяркоўваў з Satyam і Murali Vilayannur, была файлавая сістэма, якая выкарыстоўваецца для захоўвання дадзеных на флэш-прыладах. Варта памятаць пра наступныя характэрных фактах: Satyam стварыў VMFS3, Murali быў вядучым распрацоўшчыкам VMFS5. З гэтага пункту гледжання, здавалася б, выкарыстанне VMFS відавочна. Аднак вялікім сюрпрызам для мяне апынуўся той факт, што для флэш-прылад мы не выкарыстоўваем VMFS, яшчэ большым сюрпрызам стала тое, што мы наогул не выкарыстоўваем файлавую сістэму.

Чаму не VMFS?
Файлавыя сістэмы падаюць магчымасці, якія ня патрабуюцца і часам нават канфліктуюць з патрабаваннямі платформы, якая апрацоўвае актыўны ўвод-ввывод на флэш-прыладах. Адна з самых вялікіх праблем выкарыстання файлавай сістэмы, аналагічнай VMFS, на флэш-прыладзе складаецца ў тым, што яна аптымізаваная для SAN-сістэм захоўвання і іх мадэляў кіравання дадзенымі; Satyam напісаў артыкул пра гэта для ACM падчас працы ў VMware. На жаль, гэта робіць файлавую сістэму непадыходзячым інструментам для задач FVP.

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

Файлавыя сістэмы таксама даюць магчымасці, якія значна пераўзыходзяць патрэбы FVP. Напрыклад, дыскавыя блакавання. VMFS мае прасунуты менеджэр размеркаваных блакаванняў, які кіруе доступам розных хастоў ESXi да дыскаў. FVP кіруе лакальнымі дыскамі хаста і не патрабуе блакаванняў на іншых хастах, як вынік, менеджэр размеркаваных блакаванняў становіцца абсалютна лішнім. Тое ж самае можна сказаць пра POSIX-сумяшчальнасць і размеркаваныя транзакцыі. І гэтак далей.

Нізкаўзроўневыя аперацыі з флэш-памяццю
Вось прыклад, чым запіс на флэш-прылады прынцыпова адрозніваецца ад запісаў на жорсткія дыскі. Флэш не можа перазапісаць існуючыя дадзеныя. Дадзеныя ў флэш-памяць могуць быць запісаныя толькі на пустую старонку. Асаблівасцю флэш-памяці з'яўляецца тое, што запіс можа вырабляцца старонкамі, а сціранне - толькі блокамі. Што такое старонка і што такое блок? Флэш захоўвае дадзеныя ў вочках; ячэйкі аб'яднаны ў старонкі (4 КБ); старонкі згрупаваныя ў блокі. Большасць вытворцаў аб'ядноўваюць 128 старонак у адзін блок. Калі трэба сцерці старонку, то трэба сцерці ўвесь блок. Усе неабходныя дадзеныя з іншых старонак павінны быць захаваны дзесьці яшчэ. Шырока вядома, што флэш-прылады маюць абмежаваную колькасць цыклаў запісу і пры спробе ачысціць.

Такім чынам, запіс адвольнага ўводу-высновы можа аказваць большы ўплыў, чым вы думалі. Праблема ў тым, што большасць файлавых сістэм былі распрацаваны ў 80-я і 90-я гады і не асоба прагрэсіравалі з таго часу. Файлавыя сістэмы не ўлічваюць то зніжэнне прадукцыйнасці, якое яны выклікаюць у флэш-прылад, выкарыстоўваючы нізкаўзроўневыя аперацыі, распрацаваныя для жорсткіх дыскаў; большасць вытворцаў флэш-прылад ўкараняюць розныя механізмы ўліку прагрэсавальнай дэградацыі прадукцыйнасці. З дапамогай некалькіх схем разгледзім гэтыя механізмы і высвятлім, чаму фрагментацыя аказвае такое ўплыў на флэш-прылады.

кіраванне зносам
Звярніце ўвагу, для прастаты я прыняў рашэнне паказаць 9 старонак у адным блоку замест 128 старонак на блок.

Пачнем з працэсу кіравання зносам. У гэтым прыкладзе прыкладанне ўжо стварыла дадзеныя і запісала іх у старонкі A, B і C ў блоку 1 (Крок 1). Паступаюць новыя дадзеныя (Крок 2), якія запісваюцца на старонкі D, E, і F. Дадатак абнаўляе папярэднія дадзеныя (AC) і замест выкарыстання папярэдніх старонак флэш-прылада працягвае выкарыстоўваць новыя старонкі. Гэтыя новыя дадзеныя пазначаныя як A-1, B-1 і C-1. Размеркаванне запісаў як мага больш раўнамерна называецца "кіраванне зносам". Старыя старонкі зараз пазначаныя як пратэрмінаваныя.

Зборка смецця і множныя запіс
У гэтым прыкладзе блок A запоўнены, што здарыцца, калі месца, даступнае карыстальніку для запісу, скончылася і паступаюць новыя дадзеныя?

Флэш скапіюе актуальныя дадзеныя ў пустыя вочкі. Актуальныя дадзеныя ў блоку счытваюцца і запісваюцца ў іншы блок. Пратэрмінаваныя дадзеныя застануцца ў сваіх старонках і будуць сцёртыя разам з астатнімі старонкамі блока. Гэты працэс называецца "зборка смецця".

Зборка смецця - гэта выдатна, але множныя запіс, якая ўзнікае пры яго працы, прычыняе значны ўрон флэш-прыладам. Для таго, каб запісаць 3 старонкі, флэш-прылада павінна лічыць 6 старонак і запісаць гэтыя 6 старонак у іншае месца да таго, як будзе здольна запісаць новыя дадзеныя. І не забывайце аб цыкле пры спробе ачысціць. Падумайце сцэнар, у якім дыск запоўнены цалкам, куды мы (часова) перамесцім дадзеныя да запісу новых дадзеных? У маёй схеме я дадаў блок B для такога варыянту. Для таго, каб зрабіць гэта ў рэальнай сітуацыі (пры выкарыстанні файлавай сістэмы), трэба вылучыць залішняе прастору, зарэзерваваныя кантролерам флэш.

Для таго, каб зрабіць гэта ў рэальнай сітуацыі (пры выкарыстанні файлавай сістэмы), трэба вылучыць залішняе прастору, зарэзерваваныя кантролерам флэш

залішняе прастору
Флэш-ёмістасць можа быць зарэзерваваная для працэсаў, якія кіруюцца кантролерам флэш. Гэта можа быць зроблена як вытворцам флэш-прылады, так і карыстальнікам. Да прыкладу, калі вы купляеце 160 Гб флэш PCIe паскаральнік, у рэчаіснасці, вы набываеце карту на 192 Гб. 160 Гб даступныя для карыстальніка і 32 Гб зарэзерваваны дадаткова для аперацый на ўзроўні кантролера флэш, такіх як зборка смецця, карэкцыя памылак і прашыўка кантролера. Пры куплі непрамысловага SSD-дыска вы звычайна атрымліваеце невялікая зарэзерваваныя залішняе прастору. Фарматуем дадзенае флэш-прылада ў якую-небудзь файлавую сістэму, варта памятаць пра такія асаблівасцях і, магчыма, зарэзерваваць дадатковае месца за межамі даступнай да выкарыстання ёмістасці. У цяперашні час адсутнічаюць стандартызаваныя рэкамендацыі па маштабавання, так што прыйдзецца рабіць выбар на падставе ўласнага досведу. У горшым выпадку, вы апынецеся з фрагментаваным дыскам і SSD прыйдзецца стала пераносіць дадзеныя для запісу новых. Уявіце сабе дзяцей, якія граюць у квача, толькі схема перасоўванняў крыху больш складана.

Пераасэнсаванне кіравання дадзенымі на флэш-прыладах
Інжынеры PernixData распрацавалі для FVP новы фармат кіравання дадзенымі на флэш-прыладах. Падрабязнасці будуць раскрыты ў наступных артыкулах, а цяпер некалькі прынцыповых момантаў.

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

Дынамічна размяркоўваецца ёмістасць паміж віртуальнымі машынамі
дзякуючы глыбокай інтэграцыі з VMkernel, FVP можа адсочваць блокі дадзеных і вызначаць чытае або запісвае іх віртуальная машына. Незалежна адсочваючы такія аперацыі, платформа можа маштабаваць буферы чытання і запісы ў прасторы, выдзеленым для віртуальнай машыны. FVP можа кэшаваць або выдаліць з кэша адвольны набор дадзеных віртуальнай машыны. Наадварот, палітыка эвакуацыі дадзеных на традыцыйнай файлавай сістэме для флэш-прылады будзе неаптымальнай і прывядзе да множным перазапісу, бо файлавая сістэма можа дапісваць дадзеныя толькі ў канец файла або выдалілі блокі так жа з канца.

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

Цытую нашага мэнэджэра прадукту Bala: "Элегантнасць прадукту, на маю думку, у тым, што ён выконвае асноўныя задачы, НЕ патрабуючы ад карыстальніка нейкіх новых або незвычайных дзеянняў".

З пункту гледжання паўсядзённай працы, гэта цудоўна: вам не патрабуецца загадзя маштабаваць кэш для кожнай віртуальнай машыны. Гэта азначае, што вам не трэба ведаць і прадбачыць будучыню выкарыстанне флеша - FVP ўсё зробіць за вас. Адсутнасць жорсткага размеркавання рэсурсаў азначае адсутнасць недоиспользования флеша ненагруженного віртуальнымі машынамі і з'яўленне залішніх цыклаў ачысткі блокаў для актыўных віртуальных машын з недастатковым памерам флэш-кэша. Гэта мінімізуе праблему множных запісаў і забяспечвае максімум прадукцыйнасці і надзейнасці флэш-прылад.

арыгінальная артыкул .

З 2016 года FVP зняты з продажу.

Чаму не VMFS?
Што такое старонка і што такое блок?
Падумайце сцэнар, у якім дыск запоўнены цалкам, куды мы (часова) перамесцім дадзеныя да запісу новых дадзеных?