Programování

Porozumění modelům cloudového úložiště

Kdo by si myslel, že ukládání bitů se může tak neuvěřitelně komplikovat? Úložiště vždy obsahovalo nepřeberné množství protokolů, od Fibre Channel přes iSCSI až po SMB ve všech jeho variantách, ale příchod blesku a neustálý růst virtualizace proměnily již tak husté téma v zamotanou džungli akronymů, protokolů a abstrakcí.

Virtualizace datového centra vyvolala vlnu virtualizace také v úložišti, která postupně oddělovala úložiště od fyzických protokolů a směřovala k logickým abstrahovaným modelům úložiště, jako je úložiště instance a úložiště svazků. Poskytováním abstrakcí datové centrum stabilně oddělovalo virtuální stroje od protokolů úložiště.

Vzestup cloudových datových center také vytvořil novou třídu úložiště s názvem úložiště objektů, která obětuje silnou konzistenci tradičních protokolů úložiště, aby poskytla jednotné jmenné prostory v globálním měřítku.

V tomto článku uvedu určitou jasnost vložením instance, objemu a úložiště objektů do vývoje datového centra a ukážu, jak tyto nové abstrakce zapadají nad stávající protokoly úložiště nebo vedle nich.

Příběh cloudového úložiště je v mnoha ohledech příběhem virtualizace. Začnu fyzickým prostředím, přejdu k virtualizaci, kde se virtuální a fyzické modely začnou rozcházet, a skončím cloudem, kde je fyzický virtuální modely téměř úplně abstrahovány.

Fyzické skladování

Kořenem veškerého úložiště je nějaká sada protokolů fyzického úložiště, takže začnu rychlou rekapitulací fyzického úložiště. Dnes se používají tři hlavní třídy modelů fyzického úložiště: přímé připojené úložiště (DAS), síťová oblast úložiště (SAN) a síťové připojené úložiště (NAS).

DAS. Přímo připojené úložiště je nejjednodušší model úložiště. Všichni známe DAS; toto je model používaný většinou notebooků, telefonů a stolních počítačů. Základní jednotkou v DAS je samotný počítač; úložiště pro server nelze oddělit od samotného serveru. V případě telefonu je fyzicky nemožné odebrat úložiště z výpočetní techniky, ale i v případě serverů, kde je teoreticky možné vytáhnout diskové jednotky, je-li jednotka oddělena od serveru, je obvykle před znovu použít. SCSI a SATA jsou příklady protokolů DAS.

SAN. Nakonec odvětví ukládání dat uznalo užitečnost oddělení úložiště od výpočetní techniky. Namísto připojování disků ke každému jednotlivému počítači jsme umístili všechny disky na jeden cluster serverů a přistupovali k disku přes síť. To zjednodušuje úlohy správy úložiště, jako je zálohování a oprava selhání. Toto rozdělení úložiště a výpočetní techniky se často nazývá sdílené úložiště, protože více počítačů bude používat jeden fond úložiště.

Bylo nejjednodušší komunikovat mezi klientem a serverem po síti pomocí stejných (nebo velmi podobných) blokových protokolů, které se používaly ke komunikaci s místně připojenými diskovými jednotkami. Takto exponované úložiště se nazývá síť úložiště. Fibre Channel a iSCSI jsou příklady protokolů SAN.

V síti SAN správce seskupí sadu disků (nebo část sady disků) do logické jednotky LUN (logická jednotka), která se potom chová jako jedna disková jednotka k vnějším počítačům. LUN je základní jednotka používaná ke správě úložiště SAN.

NAS. Zatímco SAN nám umožňují přesouvat logické jednotky mezi jedním počítačem a druhým, blokové protokoly, které používají, nebyly navrženy pro současné sdílení dat ve stejné logické jednotce mezi počítači. Abychom umožnili tento druh sdílení, potřebujeme nový druh úložiště vytvořeného pro souběžný přístup. V tomto novém druhu úložiště komunikujeme s úložištěm pomocí protokolů souborového systému, které se velmi podobají souborovým systémům běžícím na místních počítačích. Tento druh úložiště se označuje jako síťové úložiště. NFS a SMB jsou příklady protokolů NAS.

Abstrakce souborového systému umožňuje více serverům přístup ke stejným datům najednou. Více serverů může číst stejný soubor současně a více serverů může do systému souborů umisťovat nové soubory současně. NAS je tedy velmi vhodný model pro sdílená data uživatelů nebo aplikací.

Úložiště NAS umožňuje správcům přidělit části úložiště do jednotlivých systémů souborů. Každý souborový systém je jeden jmenný prostor a souborový systém je primární jednotka používaná ke správě NAS.

Virtuální úložiště

Virtualizace změnila prostředí moderního datového centra pro ukládání stejně jako pro výpočet. Stejně jako fyzické stroje byly abstrahovány do virtuálních strojů, bylo fyzické úložiště abstrahováno do virtuálních disků.

Ve virtualizaci poskytuje hypervisor emulované hardwarové prostředí pro každý virtuální stroj, včetně počítače, paměti a úložiště. VMware, počáteční moderní hypervisor, se rozhodl emulovat místní fyzické diskové jednotky jako způsob, jak zajistit úložiště pro každý virtuální počítač. Jinak řečeno, společnost VMware si jako způsob vystavení úložiště virtuálním strojům vybrala model místní diskové jednotky (DAS).

Stejně jako základní jednotkou úložiště v DAS je fyzický stroj, základní jednotkou v úložišti virtuálního disku je virtuální počítač. Virtuální disky nejsou vystaveny jako nezávislé objekty, ale jako součást konkrétního virtuálního počítače, přesně tak, jak jsou místní disky koncepčně součástí fyzického počítače. Stejně jako u DAS, virtuální disk žije a umírá se samotným VM; pokud je VM odstraněn, bude odstraněn také virtuální disk.

Většina konvenčních virtualizačních platforem používá model úložiště virtuálního disku. Například úložiště v prostředích VMware vSphere, Microsoft Hyper-V, Red Hat Enterprise Virtualization a Xen je spravováno a připojeno podobným způsobem.

Implementace virtuálních disků

Protože společnost VMware chtěla nadále poskytovat výhody sdíleného úložiště virtuálním strojům, nemohla se při implementaci virtuálních disků spoléhat na protokol DAS. Další zřejmou volbou by bylo použití SAN, protože SAN LUN se velmi podobá místní diskové jednotce.

Fyzické logické jednotky však mají omezení, která umožňují náročné přizpůsobení virtuálním diskům. Virtualizovaná prostředí konsolidují řadu logických počítačů na jeden fyzický server, což znamená, že počet virtuálních disků na daném hostiteli bude mnohem větší než počet fyzických logických jednotek pro hostitele ve fyzickém prostředí. Maximální počet logických jednotek, které lze připojit k danému fyzickému serveru, byl příliš nízký, aby podporoval potřebný počet virtuálních disků.

Možná ještě důležitější je, že virtuální disky, stejně jako u virtuálních procesorů, musí být logické objekty, které lze programově vytvářet, ničit a přesouvat, a nejde o operace, k jejichž provedení bylo úložiště SAN navrženo. Například VMware potřeboval dynamicky přesouvat virtuální počítače mezi fyzickými hostiteli, což vyžadovalo přístup ke sdílenému úložišti během migrace.

Z těchto důvodů se společnost VMware rozhodla implementovat virtuální disky jako soubory v systému souborů (NFS) nebo v distribuovaném systému souborů (VMFS) na SAN, nikoli jako nezpracované logické jednotky.

Od protokolů úložiště až po modely úložiště

To, že se společnost VMware rozhodla implementovat virtuální disky, model úložiště bloků ve stylu DAS, na NAS nebo SAN, ilustruje jednu ze zajímavých charakteristik moderního úložiště datových center. Protože vstup / výstup z virtuálního počítače se předává softwaru v hypervisoru, spíše než hardwaru na sběrnici zařízení, protokol používaný VM ke komunikaci s hypervisorem nemusí odpovídat protokolu, který hypervisor používá ke komunikaci s samotné skladování.

To vede k oddělení mezi modelem úložiště, který je vystaven směrem vzhůru k virtuálnímu počítači a správci, a protokolem úložiště, který používá hypervisor ke skutečnému ukládání dat. V případě virtuálních disků je společnost VMware navrhla podle modelu úložiště DAS a k jejich implementaci použila protokol úložiště NAS.

Toto je silná vrstva nepřátelství; dává nám flexibilitu kombinovat modely úložiště a protokoly úložiště a dokonce dynamicky měnit protokol úložiště bez dopadu na virtuální stroje. Například virtuální disky jsou implementovány pomocí souborů v NFS, souborů ve VMFS uložených na jednotkách Fibre Channel LUN nebo dokonce (ve VVols nebo Virtual Volumes) přímo jako jednotky iSCSI LUN. Volba implementace je pro aplikaci zcela transparentní, protože nakonec budou všechny tyto protokoly vypadat stejně jako VM a správce; budou vypadat jako místní fyzické disky připojené k virtuálním počítačům.

Vývojář aplikací ve většině veřejných cloudových infrastruktur tedy nemůže vědět, jaký protokol úložiště se používá; ve skutečnosti se protokol může dokonce dynamicky měnit. Nevíme, jaký protokol úložiště Amazon používá pro Elastic Block Storage, ani pro nás není důležité vědět.

Z důvodu oddělení mezi modelem úložiště a protokolem úložiště se protokol úložiště stává problémem s infrastrukturou, který je primárně důležitý pro náklady a výkon, spíše než rozhodnutím o aplikaci, které určuje funkčnost.

Cloudové úložiště

Vzhledem k tomu, že se virtualizovaná prostředí mění na cloudová prostředí, se prostředí datového centra znovu posouvá. Cloudová prostředí využívají model virtuálního disku, který byl průkopníkem ve virtualizaci, a poskytují další modely, které umožňují plně virtualizovaný zásobník úložiště. Cloudová prostředí se pokoušejí virtualizovat celý zásobník úložiště, aby mohla poskytovat samoobslužné služby a čisté oddělení mezi infrastrukturou a aplikací.

Cloudová prostředí mají mnoho podob. Mohou být implementovány v podnicích jako soukromé cloudy pomocí prostředí jako OpenStack, CloudStack a sada VMware vRealize. Mohou je také implementovat poskytovatelé služeb jako veřejné cloudy, jako jsou Amazon Web Services, Microsoft Azure a Rackspace.

Zajímavé je, že modely úložiště používané v cloudových prostředích odrážejí modely používané ve fyzických prostředích. Stejně jako u virtuálních disků se ale jedná o modely úložiště, které jsou odebrány z více protokolů úložiště, které lze použít k jejich implementaci.

Úložiště instancí: Virtuální disky v cloudu

Model úložiště virtuálního disku je primární (nebo jediný) model pro úložiště v konvenčních virtualizovaných prostředích. V cloudových prostředích je však tento model jedním ze tří. Proto se modelu v cloudových prostředích přiděluje konkrétní název: úložiště instance, což znamená úložiště spotřebované jako konvenční virtuální disky.

Je důležité si uvědomit, že úložiště instance je model úložiště, nikoli protokol úložiště, a lze jej implementovat několika způsoby. Například úložiště instance je někdy implementováno pomocí DAS na samotných výpočetních uzlech. Implementováno tímto způsobem se často nazývá pomíjivé úložiště, protože úložiště obvykle není vysoce spolehlivé.

Úložiště instancí lze také implementovat jako spolehlivé úložiště pomocí NAS nebo hromadného úložiště, což je druhý model úložiště popsaný dále. Například OpenStack umožňuje uživatelům implementovat úložiště instancí jako pomíjivé úložiště na hostitelích, jako soubory na připojovacích bodech NFS nebo jako svazky Cinder pomocí boot-from-volume.

Úložiště svazku: SAN sans fyzický

Úložiště instancí však má svá omezení. Vývojáři nativních cloudových aplikací často explicitně odlišují konfigurační data, jako jsou OS a data aplikací, od uživatelských dat, jako jsou databázové tabulky nebo datové soubory. Rozdělením těchto dvou prvků mohou vývojáři učinit konfiguraci přechodnou a znovu sestavitelnou při zachování vysoké spolehlivosti uživatelských dat.

Toto rozlišení zase vede k jinému typu úložiště: hromadné úložiště, hybrid úložiště instancí a SAN. Svazek je spíše primární jednotka úložiště svazku než virtuální počítač. Svazek lze odpojit od jednoho virtuálního počítače a připojit k jinému. Stejně jako virtuální disk se však svazek ve škále a abstrakci více podobá souboru než logická jednotka. Na rozdíl od instančního úložiště se objemové úložiště obvykle považuje za vysoce spolehlivé a často se používá pro uživatelská data.

OpenStack's Cinder je příkladem úložiště svazků, stejně jako nezávislá abstrakce svazků Dockeru. Znovu si všimněte, že svazek úložiště je model úložiště, nikoli protokol úložiště. Úložiště svazku lze transparentně implementovat přes protokoly souborů, jako je NFS, nebo blokovat protokoly, jako je iSCSI, transparentně do aplikace.

Úložiště objektů: Webový server NAS

Cloudové nativní aplikace také potřebují domov pro data sdílená mezi virtuálními počítači, ale často potřebují obory názvů, které lze škálovat na více datových center napříč geografickými oblastmi. Úložiště objektů poskytuje přesně tento druh úložiště. Například Amazon S3 poskytuje jediný logický jmenný prostor napříč celou oblastí a pravděpodobně i po celém světě. Aby bylo možné dosáhnout tohoto rozsahu, S3 potřebovala obětovat silnou konzistenci a jemně aktualizované aktualizace konvenčního NAS.

Úložiště objektů poskytuje souborovou abstrakci nazvanou objekt, ale poskytuje případnou konzistenci. To znamená, že zatímco všichni klienti nakonec dostanou stejné odpovědi na své požadavky, mohou dočasně obdržet různé odpovědi. Tato konzistence je podobná konzistenci poskytované Dropboxem mezi dvěma počítači; klienti se mohou dočasně odchýlit od synchronizace, ale nakonec se vše sblíží.

Tradiční úložiště objektů také poskytují zjednodušenou sadu datových operací vyladěných pro použití při připojeních WAN s vysokou latencí: vypsání objektů do „kbelíku“, načtení celého objektu a nahrazení dat v objektu zcela novými daty. Tento model poskytuje základní sadu operací než NAS, která umožňuje aplikacím číst a zapisovat malé bloky do souboru, zkrátit soubory na nové velikosti, přesouvat soubory mezi adresáři atd.