Sukurkite savo paskirstytą failų sistemą

Vienas iš svarbiausių komponentų, dėl kurių „Google“ tokia efektyvi, yra jos paskirstyta failų sistema, kuri yra visų programų, tokių kaip paštas, dokumentai ir „Picasa“ nuotraukų paslauga, pagrindas.

Sukurkite savo paskirstytą failų sistemą

„Google“ failų sistema suskirsto naudotojų failus į paketus ir paskirsto juos tarp serverių, kurie patys yra paskirstyti daugelyje prieglobos centrų.

Daugelis žmonių norėtų tokios patikimos failų sistemos savo programoms, tačiau „Google“ šiuo metu neleidžia tiesioginės API prieigos (nors „Amazon“ S3 paslauga yra gana panaši).

Iki šiol patikimiausios failų sistemos centralizavo duomenis į saugojimo mazgus, sukurtus iš brangios specialios aparatinės įrangos, pavyzdžiui, saugojimo zonos tinkluose su dubliuotais valdikliai, maitinimo šaltiniai ir diskų įrenginiai, naudojant skaidulinių kanalų sujungimą, veikiantį gigabito greičiu, o „Google“ sąranka naudoja pigią prekinę aparatinę įrangą. blokai.

Dabar galime paskirstyti saugyklą labai pigiuose serveriuose, kurie tikriausiai turi tik vieną procesoriaus lizdą, bet terabaitą vietos diske

Dėl naujausių technologijų pažangos tokie specialūs mazgai atrodo pasenę. Kur galbūt sukūrėte 1 TB atsparų mazgą iš tuzino 250 GB diskų (penki diskai kaip RAID5 ir vienas karštas atsarginis, dubliuotas į RAID10 veidrodėlį), šiais metais parduodami 1 TB vienviečiai diskai, o netrukus pasirodys ir didesni prieinama.

Dabar galime paskirstyti saugyklą labai pigiuose serveriuose, kurie tikriausiai turi tik vieną procesoriaus lizdą, bet terabaitą vietos diske.

Dauguma šiuolaikinių programų iš tikrųjų nenaudoja daug saugyklos vietos: galime turėti kelių terabaitų diskus, bet retai išnaudojame visą tą vietą. Pavyzdžiui, aš pradėjau rašyti šiuos 3000 žodžių stulpelius prieš keletą metų ir naudojau tris naujas Word per tą laiką, bet dokumento dydis beveik nepadidėjo – daug lėčiau nei diske talpa.

Taigi, štai mūsų naujas atsparumo didinimo modelis – atlikite „Google“ naudodami paprastą, pigią aparatinę ir atvirojo kodo programinę įrangą, kad susietumėte ją su failų sistema, kurią gali naudoti esamos programos. Mes nenorime perrašyti savo programų, kad galėtume naudoti šią failų sistemą, kaip yra kai kurių masiškai lygiagrečių failų sistemų atveju.

Uždekite SAUGIKLĮ

FUSE (failų sistema USE erdvėje) yra atvirojo kodo paketas, skirtas naujoms failų sistemoms kurti, kuris labiausiai tinka Linux, bet gali būti paleistas naudojant Mac OS X ir kai kuriais atvejais net Windows.

Failų sistemos paprastai yra kuriamos ir valdomos per OS „branduolys“ arba „privilegijuotoje“ atminties vietoje, tačiau tuo tarpu pati FUSE naudoja modulį. kuri veikia valdant OS branduolį, leidžia paprastoms programoms kurti failų sistemas, kurias gali naudoti kiti programos.

Anksčiau šiame stulpelyje minėjome FUSE kaip įvairių naudingų failų sistemos plėtinių pagrindą: for Pavyzdžiui, Unix sistemose yra FUSE pagrįstos komunalinės programos, leidžiančios įjungti šifravimą (naudinga saugiai valdyti USB lazdos); prieiga prie archyvinių failų (apdorokite ZIP failą kaip katalogų rinkinį); ir užsienio failų sistemos, pvz., NTFS atvaizdai Unix viduje.

Įdiegus tam tikrą sąsają su OS branduoliu, FUSE leidžia programoms pasirodyti ir veikti kaip failų sistemoms, tuo pačiu stebint, ką šios programos daro su failų sistema.

Šis paskutinis aspektas bus labai svarbus mūsų įgyvendinimui, nes tai bus raktas į failo duomenų platinimą. Tarkime, kad mūsų programa yra pašto serveris, kuris pasiekia failų rinkinį mūsų atsparioje failų sistemoje. užtikrinti atsparumą, turime užtikrinti, kad kiekvienas failas būtų dubliuojamas bent kartą, o tai atsitiks atskirame mašina.