Flash Виртуалчлал Платформ (FVP) -ийн үндсэн элементүүд, 2-р хэсэг. Өөрийнхөө платформ эсвэл файлын системийг ашиглах

Satyam, Murali Vilayannur нартай ярилцсан сэдвүүдийн нэг нь флэш төхөөрөмж дээр өгөгдлийг хадгалахад ашигладаг файлын систем байв. Дараахь онцлох баримтуудыг санаж байх хэрэгтэй: Satyam VMFS3-ийг бүтээсэн бөгөөд Мурали VMFS5-ийн тэргүүлэх хөгжүүлэгч байв. Энэ үүднээс авч үзвэл VMFS ашиглах нь ойлгомжтой байх болно. Гэсэн хэдий ч миний хувьд хамгийн том гайхшрал нь флаш төхөөрөмжүүдийн хувьд VMFS ашигладаггүй явдал байсан бөгөөд үүнээс ч том зүйл бол бид файлын системийг огт ашигладаггүй явдал юм.

VMFS яагаад болохгүй гэж?
Файлын систем нь шаардлагагүй функцуудыг өгдөг бөгөөд заримдаа флаш төхөөрөмжүүд дээр идэвхтэй I / O боловсруулдаг платформын шаардлагад нийцдэг. Флэш төхөөрөмж дээр VMFS-тэй төстэй файлын системийг ашиглахад тохиолддог хамгийн том бэрхшээлүүдийн нэг бол SAN хадгалах систем, тэдгээрийн өгөгдлийг удирдах загваруудад оновчтой болсон явдал юм; Satyam VMware дээр ажиллаж байхдаа ACM-ийн талаар энэ талаар нийтлэл бичсэн. Харамсалтай нь энэ нь файлын системийг FVP даалгаврын хувьд тохиромжгүй хэрэгсэл болгож байгаа юм.

Шууд хаягийн файлын системүүд флаш төхөөрөмжүүдийн хэт ачаалал, ашиглалтын хугацааг бууруулдаг, дур зоргоороо I / O үйл ажиллагааг оновчтой боловсруулдаггүй, тэдгээрийн (ихэвчлэн маш эмзэг) хог цуглуулах алгоритмуудыг хүч чадлаар нь туршиж үздэг бөгөөд тэдгээрийн объектууд (файл, лавлах материалууд) нь тийм ч тохиромжтой биш юм. виртуал машины түвшин, үйлчилгээний менежментийн чанар, энэ нь FVP даалгавруудад маш чухал юм. Дараагийн хэсэг нь флаш төхөөрөмж дээрх өгөгдлийг удирдах асуудлыг нарийвчлан шийдвэрлэх болно, гэхдээ одоо товчхон дүгнэлт өгөх болно: хэрвээ таны флаш төхөөрөмж танд үнэтэй бол шууд хаягийн файлын системийг бүү байрлуул.

Файлын системүүд нь FVP-ийн хэрэгцээг их хэмжээгээр нэмэгдүүлдэг. Жишээлбэл, дискний түгжээ. VMFS нь өөр өөр ESXi хостуудын дискэнд нэвтрэх хандалтыг хянадаг дэвшилтэт түгжигч менежертэй. FVP нь хостын локал дискүүдийг удирддаг бөгөөд бусад хост дээр түгжигдэх шаардлагагүй байдаг тул үр дүнд нь тархсан түгжигч менежер нь хэт их болж хувирдаг. POSIX нийцтэй байдал ба тархсан гүйлгээний талаар ижил зүйлийг хэлж болно. Гэх мэтчилэн.

Бага түвшний флаш ажиллагаа
Флэш төхөөрөмжид бичих нь хатуу диск дээрх бичлэгээс эрс ялгаатай болохыг энд харуулав. Flash нь одоо байгаа өгөгдлийг дарж бичих боломжгүй. Флэш санах ой дахь өгөгдлийг зөвхөн хоосон хуудсан дээр бичиж болно. Флэш санах ойн онцлог бол бичлэг хийх хуудсуудаар хийгдэх бөгөөд устгах ажлыг зөвхөн блокоор хийх боломжтой юм. Хуудас гэж юу вэ, блок гэж юу вэ? Flash нь өгөгдлийг нүдэнд хадгалдаг; эсүүд хуудсыг нэгтгэсэн (4 KB); хуудсыг блок болгон бүлэглэв. Ихэнх үйлдвэрлэгчид 128 хуудсыг нэг блок болгон нэгтгэдэг. Хэрэв та хуудсыг устгахыг хүсч байвал блокийг бүхэлд нь арилгах хэрэгтэй. Бусад хуудсуудаас шаардлагатай бүх мэдээллийг өөр газар хадгалах ёстой. Флаш төхөөрөмжүүд нь цөөн тооны бичих, устгах циклтэй байдаг.

Тиймээс санамсаргүй I / O бичих нь таны бодож байснаас илүү их нөлөө үзүүлдэг. Асуудал нь ихэнх файлын системүүд 80-90-ээд оны үед боловсруулагдсан бөгөөд тэр үеэс хойш хөгжөөгүй байна. Файлын систем нь хатуу дискэнд зориулагдсан бага түвшний үйлдлүүдийг ашиглан флэш төхөөрөмжид хүргэдэг гүйцэтгэлийн доройтлыг харгалзан үздэггүй; Ихэнх флаш төхөөрөмж үйлдвэрлэгчид үйл ажиллагааны дэвшилтэт доройтлыг тооцох янз бүрийн механизмыг ашигладаг. Хэд хэдэн схемийн тусламжтайгаар бид эдгээр механизмуудыг авч үзээд фрагментууд флаш төхөөрөмжүүдэд ийм нөлөө үзүүлдэг болохыг олж мэдэх болно.

Өмсөх менежмент
Анхаарна уу, ойлгомжтой болгохын тулд би блок тус ​​бүрт 128 хуудас биш харин 9 хуудсыг нэг блокоор харуулахаар шийдсэн.

Хувцаслалтын менежментийн явцыг эхэлье. Энэ жишээн дээр програм нь өгөгдлийг аль хэдийн үүсгэж, A, B, C хуудсан дээр 1-р блок (1-р алхам) дээр тэмдэглэв. D, E, F хуудсууд дээр бичигдсэн шинэ өгөгдөл (2-р алхам) програм нь өмнөх өгөгдлийг (AC) шинэчилдэг бөгөөд өмнөх хуудсыг ашиглахын оронд флэш төхөөрөмж шинэ хуудсыг үргэлжлүүлэн ашиглаж байна. Энэ шинэ өгөгдлийг A-1, B-1 ба C-1 гэсэн тэмдэглэгээтэй байна. Бичлэгийг аль болох жигд тараахыг "хувцасны менежмент" гэж нэрлэдэг. Хуучин хуудсууд одоо хугацаа дууссан гэж тэмдэглэгдсэн байна.

Хог хаягдал цуглуулах, олон удаа оруулах
Энэ жишээн дээр А блок дүүрсэн байна. Хэрэглэгч бүртгэх зай дуусч, шинэ мэдээлэл ирвэл юу болох вэ?

Flash нь одоогийн өгөгдлийг хоосон нүдэнд хуулах болно. Блок дахь бодит мэдээллийг уншиж, өөр блок руу бичдэг. Хугацаа хэтэрсэн өгөгдөл нь хуудсандаа үлдэх бөгөөд бусад блок хуудасны хамт устах болно. Энэ үйл явцыг "хог цуглуулах" гэж нэрлэдэг.

Хог цуглуулах нь нарийн боловч түүний үйл ажиллагааны явцад олон тооны оруулга гарч ирдэг нь флэш төхөөрөмжүүдэд ихээхэн хохирол учруулдаг. 3 хуудсыг тэмдэглэхийн тулд флаш төхөөрөмж нь 6 хуудас уншаад шинэ өгөгдлийг бичихээс өмнө 6 хуудсыг өөр газар бичих ёстой. Мөн арилгах циклийн талаар бүү мартаарай. Диск дүүрэн байгаа сценарийг хийье гэж бодъё, шинэ өгөгдлийг бүртгэхээс өмнө бид өгөгдлийг түр хугацаанд хаана шилжүүлэх вэ? Диаграм дээр би энэ сонголтыг B блокоор нэмсэн. Бодит нөхцөл байдалд үүнийг хийхийн тулд (файлын системийг ашиглах үед) хянагчийн флэшээр нөөцлөгдсөн илүүдэл зайг хуваарилах хэрэгтэй.

Бодит нөхцөл байдалд үүнийг хийхийн тулд (файлын системийг ашиглах үед) хянагчийн флэшээр нөөцлөгдсөн илүүдэл зайг хуваарилах хэрэгтэй

Илүүдэл зай байна
Флэш хянагч удирддаг процесст зориулж флэш хүчин чадлыг хадгалах боломжтой. Үүнийг флаш төхөөрөмжийг үйлдвэрлэгч болон хэрэглэгч хоёуланг нь хийж болно. Жишээлбэл, та 160 GB флаш PCIe хурдасгуур худалдаж авахдаа үнэн хэрэгтээ та 192 ГБ картыг авах болно. Хэрэглэгчдэд 160 ГБ боломжтой бөгөөд 32 ГБ нь хог хаягдал цуглуулах, алдааг залруулах, хянагчийн програм хангамж зэрэг флэш түвшний хянагчийн түвшний үйл ажиллагаанд нэмэлт байдлаар хадгалагддаг. Та үйлдвэрлэлийн бус SSD драйвер худалдаж авахдаа ихэвчлэн бага зэрэг нөөцлөгдсөн илүүдэл зай авах болно. Энэ флаш төхөөрөмжийг ямар ч файлын системд форматлахдаа та эдгээр боломжуудын талаар мэдэж байх хэрэгтэй бөгөөд боломжтой хэмжээнээс гадна нэмэлт зайг нөөцлөх хэрэгтэй. Одоогоор стандартчилах хэмжээсийн зөвлөмж байхгүй байгаа тул та өөрийн туршлага дээр үндэслэн сонголтоо хийх шаардлагатай байна. Хамгийн муу тохиолдолд та хуваагдмал дисктэй болох бөгөөд SSD нь шинээр бичихийн тулд өгөгдлийг байнга шилжүүлэх шаардлагатай болдог. Хүүхдүүд шошго тоглодог гэж төсөөлөөд үз дээ, зөвхөн хөдөлгөөний хэв маяг арай илүү төвөгтэй байдаг.

Флэш төхөөрөмжүүд дээрх өгөгдлийн менежментийг дахин авч үзэх
PernixData-ийн инженерүүд FVP-д зориулсан флаш төхөөрөмжүүд дээрх өгөгдлийг удирдах шинэ формат боловсруулжээ. Дэлгэрэнгүйг дараах нийтлэлүүдээс тодруулах бөгөөд одоо цөөн хэдэн үндсэн зүйлийг авч үзье.

Флаш дээр тохируулсан
Формат нь мета өгөгдлийг хамгийн бага боломжит хэмжээтэй түр зуурын I / O өгөгдлийг хадгалахад зориулагдсан бөгөөд үүнийг ашиглах боломжтой хамгийн их үзүүлэлт бүхий флэш төхөөрөмжтэй ажиллахад зориулагдсан болно. Энэ нь дараалсан бичих горимд илүү өндөр флаш үзүүлэлтийг ашиглахын тулд санамсаргүй оруулгуудыг дараалсан байдлаар хөрвүүлдэг. Энэ нь нэмэлт өгөгдлийг бууруулж, циклийг дарж, арилгах боломжийг олгоно. Мөн алгоритм нь том хэмжээний хэмжээ, лавлах, файл, урт гүйлгээ, түгжигч менежер гэх мэт файлын системийн өвлөн авсан хязгаарлалтыг агуулаагүй болно.

Виртуал машинуудын хоорондох динамик хамтын хүчин чадал
Баярлалаа гүнзгий нэгтгэх VMkernel-ийн тусламжтайгаар FVP нь өгөгдлийн блокуудыг хянах, тэдний виртуал машин уншиж, бичиж байгаа эсэхийг тодорхойлох боломжтой. Ийм ажиллагааг бие даан хянахын тулд платформ нь виртуал машинд зориулж хуваарилагдсан орон зайд унших, бичих хэмжигдэхүүнийг өргөжүүлж чаддаг. FVP нь дурын багц виртуал машины өгөгдлийг кэш хийх эсвэл устгах боломжтой. Эсрэг тохиолдолд флэш төхөөрөмжийн уламжлалт файлын систем дээрх өгөгдлийг нүүлгэн шилжүүлэх бодлого нь доогуур байх бөгөөд олон удаа дахин бичихэд хүргэдэг тул файлын систем нь зөвхөн файлын төгсгөлд өгөгдөл бичих эсвэл блокуудыг төгсгөлөөс нь устгах боломжтой.

Энэ нь виртуал машин бүрт статик кэшийн зайны тохиргоог зааж өгөх шаардлагагүй бөгөөд хэрэв та шууд хаягтай файлын систем ашигладаг бол энэ нь танд хэрэгтэй болно гэсэн үг юм. Энэ нь бидний хувьд маш сайн шийдвэр байсан; бүтээгдэхүүний туршлага нь аль болох мэдрэмжтэй байх ёстой.

Би манай бүтээгдэхүүний менежер Bala-аас иш татан: "Бүтээгдэхүүний дэгжин байдал нь үндсэн ажлуудыг гүйцэтгэдэг, хэрэглэгчээс ямар нэгэн шинэ эсвэл ер бусын үйлдэл шаарддаггүй."

Өдөр тутмын ажлын хувьд энэ нь маш сайн: та виртуал машин бүрийн хувьд кэшийг урьдчилан томруулах шаардлагагүй юм. Энэ нь ирээдүйн флаш ашиглах талаар мэдэх, урьдчилан таамаглах шаардлагагүй гэсэн үг юм - FVP нь таны төлөө бүх зүйлийг хийх болно. Хатуу нөөцийн хуваарилалт байхгүй байна гэдэг нь ачих виртуал машинаар флэшийг дутуу ашиглаж байгаа байдал, флаш кэш хэмжээ хангалтгүй идэвхтэй виртуал машинд нэмэлт цэвэрлэгээний цикл гарч ирдэг гэсэн үг юм. Энэ нь олон бичлэг хийх асуудлыг багасгаж, флаш төхөөрөмжүүдийн гүйцэтгэл, найдвартай байдлыг баталгаажуулдаг.

Эх нийтлэл Байна.

2016 оноос хойш FVP нь борлуулалтаас гарсан.

VMFS яагаад болохгүй гэж?
Хуудас гэж юу вэ, блок гэж юу вэ?
Хэрэглэгч бүртгэх зай дуусч, шинэ мэдээлэл ирвэл юу болох вэ?
Диск дүүрэн байгаа сценарийг хийье гэж бодъё, шинэ өгөгдлийг бүртгэхээс өмнө бид өгөгдлийг түр хугацаанд хаана шилжүүлэх вэ?