Cisco-ն ներկայացնում է PuzzleFS ֆայլային համակարգը Linux միջուկի համար

Cisco-ն առաջարկել է նոր ֆայլային համակարգ՝ PuzzleFS, որը ներդրված է որպես Linux միջուկի մոդուլ՝ գրված Rust-ով: Ֆայլային համակարգը նախատեսված է օգտագործել մեկուսացված կոնտեյներներ տեղադրելու համար և շարունակում է զարգացնել Atomfs ֆայլային համակարգում առաջարկված գաղափարները: Իրականացումը դեռ նախատիպի փուլում է, աջակցում է Rust-next Linux միջուկի ճյուղի կառուցմանը և բաց է Apache 2.0 և MIT լիցենզիաների ներքո:

Նախագիծը նպատակ ունի շրջանցել այն սահմանափակումները, որոնք առաջանում են OCI (Open Container Initiative) ձևաչափով բեռնարկղերի պատկերների օգտագործման ժամանակ: PuzzleFS-ը լուծում է այնպիսի խնդիրներ, ինչպիսիք են կրկնօրինակ տվյալների արդյունավետ պահպանումը, ուղղակի տեղադրման հնարավորությունը, կրկնվող պատկերների ստեղծումը և հիշողության անվտանգությունը:

Տարբեր բեռնարկղերում կրկնվող տվյալները կրկնօրինակելու համար օգտագործվում է FastCDC (Fast Content-Defined Chunking) ալգորիթմը, որն աշխատում է տվյալները բաժանելով կամայական չափի բեկորների և պահպանելով մշակված հատվածների հեշերով ինդեքսը: Կրկնվող բեկորները պահվում են մեկ անգամ և համատեղ ինդեքսավորվում ֆայլային համակարգի բոլոր շերտերի համար, այսինքն. deduplication-ը կարող է ընդգրկել տարբեր մոնտաժային կետեր (նոր FS շերտը կարող է գործարկվել գոյություն ունեցողի հիման վրա և օգտագործել դրա մեջ պարունակվող տվյալների բեկորները deduplication-ի ժամանակ):

Կոնտեյների պատկերների կրկնվող հավաքումը կատարվում է կոնտեյների պատկերի ձևաչափի կանոնական ներկայացման սահմանման միջոցով: Direct-mount-ը թույլ է տալիս տեղադրել OCI կոնտեյների պատկեր գլոբալ համօգտագործվող պահեստից՝ առանց այն նախապես բացելու՝ օգտագործելով կոնտեյների մանիֆեստի բովանդակության հեշը՝ որպես նույնացուցիչ: Համօգտագործվող պահեստավորում օգտագործելիս տվյալների ամբողջականությունը ստուգելու համար կարող է օգտագործվել fs-verity մեխանիզմը, որը ֆայլեր մուտք գործելիս ստուգում է երկուական ինդեքսում նշված հեշերի համապատասխանությունը իրական բովանդակությանը:

Rust լեզուն ընտրվել է, քանի որ այն համատեղում է ստացված կոդի բարձր կատարողականությունը հիշողության հետ անվտանգ աշխատելու հնարավորությունների հետ, ինչը նվազեցնում է խոցելիության ռիսկը, որն առաջանում է այնպիսի խնդիրների հետևանքով, ինչպիսիք են հիշողության տարածք մուտք գործելը այն ազատվելուց հետո և բուֆերային սահմանները լցվել: Միջուկի մոդուլի համար Rust-ի օգտագործումը նաև հնարավորություն տվեց կիսվել կոդով միջուկի և օգտագործողի տարածքի բաղադրիչների միջև՝ մեկ, անվտանգ իրականացում ստեղծելու համար:

Ծրագրի մյուս նպատակները ներառում են՝ պատկերների շատ արագ կառուցում և տեղադրում, պատկերների կանոնականացման համար կամընտիր միջանկյալ փուլ օգտագործելու հնարավորություն, բազմաշերտ կառուցվածք օգտագործելիս ամբողջական mtree ոճի ֆայլերի ծառի անցումների ընտրության հնարավորություն, casync ոճի կիրառում։ փոփոխությունների և հեշտ իրագործելի ճարտարապետություն:

Source: opennet.ru

Добавить комментарий