Flash Virtualizatsiya platformasining (FVP) asosiy elementlari, 2-qism. O'z platformangiz yoki fayl tizimingizdan foydalanish

Men Satyam va Murali Vilayannur bilan muhokama qilgan mavzulardan biri bu ma'lumotni flesh-qurilmalarda saqlash uchun ishlatiladigan fayl tizimi edi. Quyidagi diqqatga sazovor faktlarni yodda tutish kerak: Satyam VMFS3-ni yaratdi, Murali VMFS5-ning etakchi ishlab chiqaruvchisi edi. Shu nuqtai nazardan, VMFS-dan foydalanish aniq ko'rinishi mumkin. Ammo, men uchun katta ajablantiradigan narsa bu flesh-qurilmalar uchun VMFS-ni ishlatmasligimiz, bundan ham katta ajablantiradigan narsa bu fayl tizimidan umuman foydalanmasligimiz edi.

Nega VMFS emas?
Fayl tizimlari talab qilinmaydigan xususiyatlarni ta'minlaydi va ba'zida flesh-qurilmalarda faol I / O-ni qayta ishlaydigan platformaning talablariga zid keladi. Fleshli qurilmada VMFS-ga o'xshash fayl tizimini ishlatishda eng katta muammolardan biri shundaki, u SAN saqlash tizimlari va ularning ma'lumotlarini boshqarish modellari uchun optimallashtirilgan; Satyam VMware-da ishlayotganda ACM uchun bu haqida maqola yozdi. Afsuski, bu fayl tizimini FVP vazifalari uchun mos bo'lmagan vositaga aylantiradi.

To'g'ridan-to'g'ri manzil fayl tizimlari flesh-qurilmalarni haddan tashqari yuklaydi, ularning ishlash muddatini qisqartiradi, o'zboshimchalik bilan I / O operatsiyalarini optimallashtirmaydi, ularning (ko'pincha juda mo'rt) axlat yig'ish algoritmlarini kuchliligini tekshiradi va ularning ob'ektlari (fayllar va kataloglar) kamroq mos keladi. FVP vazifalari uchun juda muhim bo'lgan virtual mashinaning darajasi va xizmatlarni boshqarish sifati. Keyingi bo'limda flesh-qurilmalarda ma'lumotlarni boshqarish muammosi batafsil yoritiladi, ammo hozircha qisqacha xulosa: agar sizning flesh-qurilmangiz siz uchun qimmat bo'lsa, unga to'g'ridan-to'g'ri manzilga yo'naltirilgan fayl tizimini qo'ymang.

Fayl tizimlari, shuningdek, FVP ehtiyojlaridan ancha yuqori bo'lgan imkoniyatlarni taqdim etadi. Masalan, disk qulflari. VMFS turli xil ESXi xostlarining disklarga kirishini boshqaradigan rivojlangan taqsimlangan qulflash menejeriga ega. FVP xostning mahalliy disklarini boshqaradi va boshqa xostlarda qulflarni talab qilmaydi, natijada taqsimlangan qulf menejeri mutlaqo ortiqcha bo'ladi. Xuddi shu narsani POSIX muvofiqligi va taqsimlangan tranzaktsiyalar haqida ham aytish mumkin. Va hokazo.

Past darajadagi flesh operatsiyalar
Fleshli qurilmalarga yozish qanday qilib qattiq disklardagi yozuvlardan tubdan farq qilishiga misol. Flash mavjud ma'lumotlarni qayta yoza olmaydi. Flesh-xotiradagi ma'lumotlar faqat bo'sh sahifada yozilishi mumkin. Flesh-xotiraning xususiyati shundaki, yozishni sahifalar orqali amalga oshirish mumkin, o'chirish esa faqat bloklarda amalga oshiriladi. Sahifa nima va blok nima? Flash ma'lumotlarni hujayralarda saqlaydi; hujayralar sahifalarga birlashtirilgan (4 Kb); sahifalar bloklarga guruhlangan. Ko'pgina ishlab chiqaruvchilar 128 sahifani bitta blokga birlashtiradilar. Agar siz sahifani o'chirmoqchi bo'lsangiz, unda siz butun blokni o'chirishingiz kerak. Boshqa sahifalardagi barcha kerakli ma'lumotlar boshqa joyda saqlanishi kerak. Fleshli qurilmalarda cheklangan miqdordagi yozish va o'chirish sikllari mavjudligi hammaga ma'lum.

Shunday qilib, tasodifiy I / O yozish siz o'ylaganingizdan ko'ra ko'proq ta'sir qilishi mumkin. Muammo shundaki, fayl tizimlarining aksariyati 80-90-yillarda ishlab chiqilgan va o'sha vaqtdan beri rivojlanmagan. Fayl tizimlari qattiq disklar uchun mo'ljallangan past darajadagi operatsiyalardan foydalanib, flesh-qurilmalarga olib keladigan ishlashning yomonlashishini hisobga olmaydi; Ko'pgina flesh-qurilma ishlab chiqaruvchilari progressiv ishlashning yomonlashuvini hisobga olish uchun turli xil mexanizmlarni qo'llashadi. Bir nechta sxemalar yordamida biz ushbu mexanizmlarni ko'rib chiqamiz va nima uchun parchalanish flesh-qurilmalarga bunday ta'sir ko'rsatishini bilib olamiz.

Kiyimlarni boshqarish
E'tibor bering, soddaligi uchun har bir blok uchun 128 sahifani emas, balki bitta blokda 9 sahifani ko'rsatishga qaror qildim.

Keling, kiyishni boshqarish jarayonidan boshlaylik. Ushbu misolda, dastur allaqachon ma'lumotlarni yaratdi va uni A, B va C sahifalarida 1-blokda qayd etdi (1-qadam). D, E va F sahifalariga yozilgan yangi ma'lumotlar (2-bosqich). Ilova oldingi ma'lumotlarni (AC) yangilaydi va oldingi sahifalardan foydalanish o'rniga, flesh-fayl yangi sahifalarni ishlatishda davom etmoqda. Ushbu yangi ma'lumotlar A-1, B-1 va C-1 yorliqlariga ega. Yozuvlarni imkon qadar teng taqsimlash "kiyishni boshqarish" deb nomlanadi. Endi eski sahifalar muddati o'tgan deb belgilanadi.

Axlat yig'ish va ko'p marotaba kirish
Ushbu misolda, A bloki to'la, agar foydalanuvchi yozib olish uchun bo'sh joy tugagan bo'lsa va yangi ma'lumotlar kelsa nima bo'ladi?

Flash joriy ma'lumotlarni bo'sh kataklarga ko'chiradi. Blokdagi haqiqiy ma'lumotlar o'qiladi va boshqa blokka yoziladi. Kechiktirilgan ma'lumotlar uning sahifalarida qoladi va qolgan blok sahifalar bilan birga o'chiriladi. Ushbu jarayon "axlat yig'ish" deb nomlanadi.

Axlat yig'ish juda yaxshi, lekin uning ishlashi paytida paydo bo'lgan ko'p kirish flesh-qurilmalarga jiddiy zarar etkazadi. 3 sahifani yozish uchun flesh-fayl yangi sahifalarni yozishdan oldin 6 sahifani o'qishi va 6 sahifani boshqa joyga yozishi kerak. Va o'chirish tsiklini unutmang. Disk to'lgan senariyni tasavvur qiling-a, yangi ma'lumotlarni yozishdan oldin ma'lumotlarni qayerga (vaqtincha) ko'chiramiz? Diagrammada ushbu parametr uchun B blokini qo'shdim. Buni haqiqiy vaziyatda qilish uchun (fayl tizimini ishlatganda) siz nazoratchi chirog'i tomonidan zaxiralangan ortiqcha joyni ajratishingiz kerak.

Ortiqcha joy
Fleshli sig'imi flesh boshqaruvchisi tomonidan boshqariladigan jarayonlar uchun ajratilishi mumkin. Buni flesh-qurilma ishlab chiqaruvchisi ham, foydalanuvchi ham amalga oshirishi mumkin. Masalan, siz 160 GB flesh-PCIe tezlatgichini sotib olganingizda, aslida siz 192 GB kartani olasiz. Foydalanuvchi uchun 160 Gb mavjud va 32 Gb axlat yig'ish, xatolarni tuzatish va boshqaruv dasturlari kabi flesh-darajadagi boshqaruvchi darajasidagi operatsiyalar uchun qo'shimcha ravishda ajratilgan. Sanoat bo'lmagan SSD drayverini sotib olayotganda, odatda siz ozgina ajratilgan ortiqcha joy olasiz. Ushbu flesh qurilmani har qanday fayl tizimida formatlashda siz ushbu xususiyatlardan xabardor bo'lishingiz va, ehtimol, mavjud imkoniyatlardan tashqarida qo'shimcha joy ajratishingiz kerak. Hozirgi vaqtda miqyoslash bo'yicha standartlashtirilgan tavsiyalar mavjud emas, shuning uchun siz o'zingizning tajribangizga asoslanib tanlov qilishingiz kerak. Eng yomon holatda, siz o'zingizni bo'lak diskka duch kelasiz va SSD doimiy ravishda yangisini yozish uchun ma'lumotlarni uzatishga majbur bo'ladi. Bolalarni etiket bilan o'ynashlarini tasavvur qiling-a, faqat harakat odati biroz murakkabroq.

Fleshli qurilmalarda ma'lumotlarni boshqarishni qayta ko'rib chiqish
PernixData muhandislari FVP uchun flesh-qurilmalarda ma'lumotlarni boshqarish uchun yangi formatni ishlab chiqdilar. Tafsilotlar keyingi maqolalarda ochib beriladi va endi bir nechta asosiy fikrlar.

Chaqnoq uchun optimallashtirilgan
Format vaqtinchalik kirish / chiqish ma'lumotlarini minimal mumkin bo'lgan metadata to'plamiga ega saqlash va maksimal ishlashi mumkin bo'lgan flesh-qurilma bilan ishlash uchun mo'ljallangan. Bu ketma-ket yozish rejimida yuqori ko'rsatkichlardan foydalanish uchun tasodifiy yozuvlarni ketma-ket o'zgartiradi. Bu ortiqcha ma'lumotlar sonini kamaytiradi va tsikllarni o'chiradi. Va algoritmda fayl tizimlarining meros qilib olingan cheklovlari mavjud emas, masalan, katta blok o'lchamlari, kataloglar, fayllar, uzoq operatsiyalar, blokirovka menejerlari va boshqalar.

Virtual mashinalar o'rtasidagi dinamik ravishda umumiy imkoniyatlar
Rahmat chuqur integratsiya VMkernel yordamida FVP ma'lumotlar bloklarini kuzatishi va ularning virtual mashinalari o'qish yoki yozishni aniqlay oladi. Bunday operatsiyalarni mustaqil ravishda kuzatib borgan holda platforma o'qish va yozish tamponlarini virtual mashina uchun ajratilgan maydonda kengaytirishi mumkin. FVP keshdan o'zboshimchalik bilan virtual mashina ma'lumotlarini keshlashi yoki o'chirishi mumkin. Bundan farqli o'laroq, flesh-fayl uchun an'anaviy fayl tizimidagi ma'lumotlarni evakuatsiya qilish siyosati ahamiyatsiz bo'ladi va natijada bir nechta yozuvlarni keltirib chiqaradi, chunki fayl tizimi faqat fayl oxiriga ma'lumotlarni yozishi yoki bloklarni oxiridan o'chirib tashlashi mumkin.

Bundan tashqari, har bir virtual mashina uchun statik kesh bo'shlig'i konfiguratsiyasini tayinlash kerak emasligini anglatadi, chunki siz to'g'ridan-to'g'ri manzilga ega fayl tizimidan foydalansangiz bo'ladi. Bu biz uchun juda yaxshi qaror edi; mahsulotdan foydalanuvchi tajribasi iloji boricha sezgir bo'lishi kerak.

Men bizning mahsulotimiz menejeri Bala-dan iqtibos keltiraman: "Mahsulotning nafisligi, u asosiy vazifalarni bajaradi, foydalanuvchidan biron bir yangi yoki g'ayrioddiy harakatlarni talab qilmaydi."

Kundalik ish nuqtai nazaridan bu juda yaxshi: har bir virtual mashina uchun keshni oldindan o'lchamaslik kerak emas. Bu shuni anglatadiki, kelajakda fleshni qanday ishlatishni oldindan bilishingiz va bashorat qilishingiz shart emas - FVP siz uchun hamma narsani qiladi. Resurslarni taqsimlashning etishmasligi virtual yuklamaydigan mashinalar tomonidan chiroqni noto'g'ri ishlatilishining yo'qligi va kam hajmli faol virtual mashinalar uchun ortiqcha tozalash bloklarining paydo bo'lishi. Bu bir nechta yozuvlar muammosini minimallashtiradi va flesh-qurilmalarning maksimal ishlashi va ishonchliligini ta'minlaydi.

Asl maqola .

2016 yildan beri FVP sotuvdan voz kechdi.

Nega VMFS emas?
Sahifa nima va blok nima?
Disk to'lgan senariyni tasavvur qiling-a, yangi ma'lumotlarni yozishdan oldin ma'lumotlarni qayerga (vaqtincha) ko'chiramiz?