Flash виртуализация платформасының (FVP) негізгі элементтері, 2-бөлім. Өз платформаңызды немесе файлдық жүйеңізді пайдалану

Мен Satyam және Murali Vilayannur-мен талқылаған тақырыптардың бірі флеш-құрылғыларда мәліметтерді сақтау үшін қолданылатын файлдық жүйе болды. Келесі маңызды фактілерді есте ұстаған жөн: Satyam VMFS3 құрды, Мурали VMFS5 жетекші құрастырушысы болды. Осы тұрғыдан алғанда, VMFS қолдану айқын көрінуі мүмкін. Алайда, мен үшін үлкен тосынсый VMFS-ті қолданбайтын флеш-құрылғылар үшін, сонымен бірге файлдық жүйені мүлдем қолданбайтындығымыз болды.

Неліктен VMFS емес?
Файлдық жүйелер флеш-құрылғыларда белсенді енгізу-шығару процестерін өңдейтін платформаның талаптарына сәйкес келмейтін және кейде қайшылықтармен қамтамасыз етеді. Флэш-құрылғыда VMFS-ге ұқсас файлдық жүйені пайдаланудағы ең үлкен проблемалардың бірі - бұл SAN сақтау жүйелері мен олардың деректерін басқару модельдеріне оңтайландырылған; Satyam VMware-де жұмыс істеу кезінде ACM туралы мақала жазды. Өкінішке орай, бұл файлдық жүйені FVP тапсырмалары үшін жарамсыз құралға айналдырады.

Тікелей адрестік файлдық жүйелер флэш-құрылғылардың шамадан тыс жүктелуіне, олардың қызмет ету мерзімін азайтуға, еркін енгізу-шығару операцияларын оңтайлы түрде жүргізбейді, олардың (көбінесе өте нәзік) қоқыс жинау алгоритмдерін беріктікке сынайды және олардың объектілері (файлдар мен каталогтар) онша қолайлы емес виртуалды машинаның деңгейі және қызметтерді басқару сапасы, бұл FVP міндеттері үшін өте маңызды. Келесі бөлімде флэш-құрылғылардағы деректерді басқару мәселесі егжей-тегжейлі қарастырылады, бірақ әзірге қысқаша қорытынды: егер сіздің флэш құрылғыңыз қымбат болса, оған тікелей адресат файлдық жүйесін қоймаңыз.

Файлдық жүйелер сонымен қатар FVP қажеттілігінен асып түсетін мүмкіндіктерді ұсынады. Мысалы, диск құлыптары. VMFS әр түрлі ESXi хосттарының дискілерге кіруін басқаратын кеңейтілген таратылған құлыптау менеджеріне ие. FVP хосттың жергілікті дискілерін басқарады және басқа хосттардың құлыптарын қажет етпейді, нәтижесінде таратылған құлыптау менеджері артық болады. POSIX үйлесімділігі мен таратылған транзакциялар туралы бірдей айтуға болады. Тағыда басқа.

Төмен деңгейдегі жарқыл операциялары
Флэш-құрылғыларға жазудың қатты дискілердегі жазбалардан түбегейлі айырмашылығы туралы мысал келтірілген. Flash бар деректерді қайта жаза алмайды. Флэш-жадтағы мәліметтер тек бос параққа жазыла алады. Флэш-жадтың ерекшелігі - жазбаны беттермен жасауға болады, ал өшіруді тек блоктарда жасауға болады. Бет деген не және блок деген не? Flash деректерді ұяшықтарда сақтайды; ұяшықтар парақтарға біріктірілген (4 КБ); беттер блоктарға топтастырылған. Көптеген өндірушілер 128 бетті бір блокқа біріктіреді. Егер сіз бетті өшіргіңіз келсе, онда сіз бүкіл блокты өшіруіңіз керек. Басқа беттердегі барлық қажетті мәліметтер басқа жерде сақталуы керек. Флэш құрылғыларында жазу және өшіру циклдерінің саны шектеулі екендігі көпшілікке мәлім.

Демек, кездейсоқ енгізу / шығару жазбасы сіз ойлағаннан да үлкен әсер етуі мүмкін. Мәселе мынада, файлдық жүйелердің көпшілігі 80-90-шы жылдары жасалған және сол кезден бері жетілмеген. Файлдық жүйелер қатты дискілерге арналған төмен деңгейлі операцияларды қолдана отырып, флэш құрылғыларға әкелетін өнімділіктің төмендеуін ескермейді; Флэш-құрылғыларды өндірушілердің көпшілігі өнімділіктің прогрессивті нашарлауын есепке алу үшін әртүрлі механизмдерді қолданады. Бірнеше схемалардың көмегімен біз осы механизмдерді қарастырамыз және фрагментацияның флеш-құрылғыларға неліктен осындай әсер ететінін білеміз.

Киімді басқару
Айта кету керек, қарапайымдылық үшін мен бір блокқа 9 беттен, бір блокқа 128 беттен емес, көрсетуді ұйғардым.

Киімді басқару процесін бастайық. Бұл мысалда қолданба деректерді құрып, оны A, B және C парақтарына 1-блокқа жазды (1-қадам). Жаңа мәліметтер келіп түседі (2-қадам), ол D, E және F парақтарына жазылады. Бағдарлама алдыңғы деректерді (AC) жаңартады, ал алдыңғы беттерді қолданудың орнына флэш-құрал жаңа беттерді қолдануды жалғастырады. Бұл жаңа деректер A-1, B-1 және C-1 деп белгіленген. Жазбаларды мүмкіндігінше біркелкі тарату «тозуды басқару» деп аталады. Ескі беттер енді жарамдылық мерзімімен белгіленген.

Қоқыс жинау және бірнеше рет енгізу
Бұл мысалда А блогы толы, егер жазба үшін пайдаланушы үшін бос орын таусылып, жаңа мәліметтер пайда болса не болады?

Flash ағымдағы деректерді бос ұяшықтарға көшіреді. Блоктағы нақты мәліметтер оқылады және басқа блокқа жазылады. Кешіктірілген деректер оның беттерінде қалады және қалған блок беттерімен бірге жойылады. Бұл процесс «қоқыс жинау» деп аталады.

Қоқыс жинау өте жақсы, бірақ оны пайдалану кезінде пайда болатын көптеген кірістер флэш-құрылғыларға айтарлықтай зиян келтіреді. 3 парақты жазу үшін флэш құрылғы жаңа парақтарды жазбас бұрын 6 парақты оқып, 6 бетті басқа жерге жазуы керек. Жою циклы туралы ұмытпаңыз. Дискі толған сценарийді делік, жаңа деректерді жазбас бұрын біз оны қайда (уақытша) жібереміз? Диаграммада осы блок үшін В блогын қостым. Мұны нақты жағдайда жасау үшін (файлдық жүйені пайдалану кезінде) контроллердің жарқылы сақтаған артық орынды бөлу керек.

Мұны нақты жағдайда жасау үшін (файлдық жүйені пайдалану кезінде) контроллердің жарқылы сақтаған артық орынды бөлу керек

Артық бос орын
Жарқыл сыйымдылығы флэш-контроллер басқаратын процестер үшін сақталады Мұны флэш құрылғысын өндіруші де, пайдаланушы да жасай алады. Мысалы, сіз 160 ГБ флэш-PCIe үдеткішін сатып алғанда, сіз 192 ГБ картасын аласыз. Пайдаланушыға 160 ГБ қол жетімді және 32 ГБ қоқыс жинау, қателерді түзету және контроллердің бағдарламалық жасақтамасы сияқты флэш деңгейдегі контроллер деңгейіндегі жұмыстар үшін қосымша сақталған. Өнеркәсіптік емес SSD дискісін сатып алғанда, сіз әдетте аздап бос орын алады. Бұл флэш-құрылғыны кез-келген файлдық жүйеде пішімдеу кезінде сіз осы мүмкіндіктер туралы хабардар болуыңыз керек және мүмкін сыйымдылықтан тыс қосымша орынды резервтеуіңіз керек. Қазіргі уақытта масштабтау бойынша стандартталған ұсыныстар жоқ, сондықтан сіз өзіңіздің тәжірибеңізге сүйене отырып таңдау жасауыңыз керек. Нашар жағдайда, сіз фрагменттелген дискіні таба аласыз және SSD жаңа деректерді жазу үшін деректерді үнемі жіберіп отыруға мәжбүр болады. Балалардың тег ойнап жатқанын елестетіп көріңіз, қозғалыс формасы сәл қиындау.

Флэш-құрылғылардағы деректерді басқаруды қайта қарау
PernixData инженерлері FVP үшін флэш-құрылғылардағы деректерді басқарудың жаңа форматын ойлап тапты. Толығырақ келесі мақалаларда ашылады, және қазір бірнеше негізгі тармақтар.

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

Виртуалды машиналар арасындағы динамикалық ортақ сыйымдылық
Рахмет терең интеграция VMkernel көмегімен FVP деректер блоктарын қадағалап, олардың виртуалды машинаның оқитын не жазатындығын анықтай алады. Мұндай әрекеттерді тәуелсіз бақылай отырып, платформа виртуалды машина үшін бөлінген кеңістікте оқу мен жазу буферін масштабтай алады. FVP кэштен виртуалды машина деректерінің кездейсоқ жиынтығын кэштай алады немесе жоя алады. Керісінше, флэш-құрылғыға арналған дәстүрлі файлдық жүйеде деректерді эвакуациялаудың мәні төмен болады және көптеген қайта жазуларға әкеледі, өйткені файлдық жүйе деректерді тек файлдың соңына жаза алады немесе блоктарды да соңынан жоя алады.

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

Мен біздің Bala компаниясының менеджерінен дәйексөз келтіремін: «Өнімнің талғампаздығы, ол пайдаланушының қандай-да бір жаңа немесе әдеттен тыс әрекеттерді қажет етпейтінін, негізгі міндеттерді орындайтындығында.»

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

Түпнұсқа мақала .

2016 жылдан бастап FVP сатылымнан шықты.

Неліктен VMFS емес?
Бет деген не және блок деген не?
Дискі толған сценарийді делік, жаңа деректерді жазбас бұрын біз оны қайда (уақытша) жібереміз?