Разбиране на моделите за съхранение в облак

Кой би помислил, че съхраняването на битове може да стане толкова невероятно сложно? Хранилището винаги е съдържало множество протоколи, от Fibre Channel до iSCSI до SMB във всичките му вариации, но пристигането на флаш и непрекъснатото нарастване на виртуализацията са превърнали една вече плътна тема в заплетена джунгла от съкращения, протоколи и абстракции.

Виртуализацията на центъра за данни предизвика и вълна за виртуализация в съхранението, постепенно отдалечавайки съхранението от физическите протоколи и към логически, абстрахирани модели за съхранение, като например съхранение на данни и обемно съхранение. Предоставяйки абстракции, центърът за данни непрекъснато отделя виртуални машини от протоколи за съхранение.

Възходът на центровете за данни в облак породи и нов клас съхранение, наречен обектно съхранение, който жертва силната последователност на традиционните протоколи за съхранение, за да осигури единични пространства от имена в глобален мащаб.

В тази статия ще осигуря малко яснота, като поставя екземпляр, обем и съхранение на обекти в развитието на центъра за данни и ще покажа как тези нови абстракции се вписват върху или заедно със съществуващите протоколи за съхранение.

Историята на облачното съхранение в много отношения е история на виртуализацията. Ще започна с физическа среда, ще премина към виртуализация, където виртуалните и физическите модели започват да се различават и ще завърша с облака, където физическото е почти напълно абстрахирано от виртуални модели.

Физическо съхранение

В основата на цялото хранилище е определен набор от протоколи за физическо съхранение, така че ще започна с бързо обобщение на физическото съхранение. Днес се използват три основни класа модели на физическо съхранение: директно свързано съхранение (DAS), мрежа за съхранение (SAN) и мрежово свързано съхранение (NAS).

DAS.  Директното прикачено хранилище е най-простият модел за съхранение. Всички сме запознати с DAS; това е моделът, използван от повечето лаптопи, телефони и настолни компютри. Основната единица в DAS е самият компютър; хранилището за сървър не може да се отдели от самия сървър. В случай на телефон е физически невъзможно да се премахне хранилището от изчислението, но дори и в случай на сървъри, където теоретично е възможно да се изтеглят дискови устройства, след като едно устройство е отделено от сървъра, обикновено се изтрива преди повторно използване. SCSI и SATA са примери за DAS протоколи.

SAN.  В крайна сметка индустрията за съхранение разпозна полезността на отделянето на хранилището от изчислението. Вместо да прикачваме дискове към всеки отделен компютър, ние поставихме всички дискове на един клъстер от сървъри и имахме достъп до диска през мрежата. Това улеснява задачите за управление на съхранението като архивиране и отстраняване на неизправности. Това разделение на съхранение и изчисления често се нарича споделено съхранение , тъй като множество компютри ще използват един пул за съхранение.

Най-лесно беше да комуникираме между клиента и сървъра през мрежата, използвайки същите (или много подобни) блокови протоколи, които бяха използвани за комуникация с локално свързани дискови устройства. Склад, изложен по този начин, се нарича мрежа за съхранение. Fibre Channel и iSCSI са примери за SAN протоколи.

В SAN администраторът ще групира набор от дискове (или част от набор от дискове) в LUN (логическа единица), който след това се държи като едно дисково устройство към външни компютри. LUN е основната единица, използвана за управление на SAN съхранението.

NAS.  Докато SAN-тата ни позволяват да преместваме LUN ​​между един компютър и друг, блоковите протоколи, които те използват, не са предназначени за едновременно споделяне на данни в същия LUN между компютрите. За да позволим този вид споделяне, имаме нужда от нов вид хранилище, създадено за едновременен достъп. В този нов вид хранилище ние комуникираме със хранилището, използвайки протоколи на файловата система, които много приличат на файловите системи, работещи на локални компютри. Този вид хранилище е известно като мрежово свързано хранилище. NFS и SMB са примери за NAS протоколи.

Абстракцията на файловата система позволява на множество сървъри да имат достъп до едни и същи данни едновременно. Няколко сървъра могат да четат един и същ файл едновременно, а множество сървъри могат да поставят нови файлове във файловата система едновременно. По този начин NAS е много удобен модел за споделени данни за потребители или приложения.

NAS съхранението позволява на администраторите да разпределят части от съхранението в отделни файлови системи. Всяка файлова система е едно пространство от имена, а файловата система е основната единица, използвана за управление на NAS.

Виртуално съхранение

Виртуализацията промени пейзажа на съвременния център за данни за съхранение, както направи за изчисленията. Точно както физическите машини бяха абстрахирани във виртуални машини, физическото съхранение беше абстрахирано във виртуални дискове.

При виртуализацията хипервизорът осигурява емулирана хардуерна среда за всяка виртуална машина, включително компютър, памет и хранилище. VMware, първоначалният модерен хипервизор, избра да емулира локални физически дискови устройства като начин за осигуряване на съхранение за всяка VM. Казано по друг начин, VMware избра модела на локално дисково устройство (DAS) като начин за излагане на хранилище на виртуални машини.

Точно както основната единица за съхранение в DAS е физическата машина, така и основната единица за съхранение на виртуален диск е VM. Виртуалните дискове не се излагат като независими обекти, а като част от определена виртуална машина, точно както локалните дискове са концептуално част от физическия компютър. Както при DAS, виртуалният диск живее и умира със самата виртуална машина; ако виртуалната машина бъде изтрита, виртуалният диск също ще бъде изтрит.

Повечето конвенционални платформи за виртуализация използват модел за съхранение на виртуален диск. Например съхранението в VMware vSphere, Microsoft Hyper-V, Red Hat Enterprise Virtualization и Xen среди се управляват и прикачват по подобен начин.

Внедряване на виртуални дискове

Тъй като VMware искаше да продължи да предоставя предимствата на споделеното съхранение на виртуални машини, той не можеше да разчита на DAS протокол за внедряване на виртуални дискове. Очевидният следващ избор би бил използването на SAN, тъй като SAN LUN много прилича на локално дисково устройство.

Физическите LUN ​​обаче имат ограничения, които създават предизвикателство за виртуални дискове. Виртуализираните среди консолидират редица логически компютри в един физически сървър, което означава, че броят на виртуалните дискове на даден хост ще бъде много по-голям от броя на физическите LUN ​​за хост във физическа среда. Максималният брой LUN, които могат да бъдат прикачени към даден физически сървър, е твърде малък, за да поддържа необходимия брой виртуални дискове.

Може би дори по-важно, виртуалните дискове, както при виртуалните процесори, трябва да бъдат логически обекти, които могат да бъдат създадени, унищожени и преместени програмно, и това не са операции, които SAN Storage е предназначен да изпълнява. Например VMware се нуждаеше от динамично преместване на виртуални машини между физически хостове, което изискваше споделен достъп до хранилището по време на миграцията.

Поради тези причини VMware избра да внедри виртуални дискове като файлове във файлова система (NFS) или в разпределена файлова система (VMFS) в SAN, а не като сурови LUN.

От протоколи за съхранение до модели за съхранение

Това, че VMware избра да внедри виртуални дискове, модел на блоково съхранение в стил DAS, върху NAS или SAN, илюстрира една от интересните характеристики на съвременното съхранение в центъра за данни. Тъй като IO от виртуална машина се предава на софтуера в хипервизора, а не на хардуера на шината на устройството, протоколът, използван от виртуалната машина за комуникация с хипервизора, не трябва да съвпада с протокола, който хипервизорът използва за комуникация с самото съхранение.

Това води до разделяне между модела за съхранение, който е изложен нагоре към VM и администратора, и протокола за съхранение, който се използва от хипервизора за действително съхраняване на данните. В случай на виртуални дискове, VMware ги проектира в съответствие с DAS модел за съхранение, след което използва NAS протокол за съхранение, за да ги внедри.

Това е мощен слой на непрякост; дава ни гъвкавост да смесваме и съчетаваме модели за съхранение и протоколи за съхранение и дори динамично да променяме протокола за съхранение, без да влияем на виртуалните машини. Например виртуалните дискове се реализират с помощта на файлове в NFS, файлове във VMFS, съхранявани на LUN на Fibre Channel или дори (във VVols или виртуални томове) директно като iSCSI LUN. Изборът на изпълнение е напълно прозрачен за приложението, тъй като в крайна сметка всички тези протоколи ще изглеждат еднакво за виртуалната машина и администратора; те ще изглеждат като локални физически дискови устройства, свързани към виртуални машини.

По този начин разработчикът на приложения в повечето публични облачни инфраструктури не може да знае какъв протокол за съхранение се използва; всъщност протоколът може дори да се променя динамично. Не знаем какъв протокол за съхранение Amazon използва за Elastic Block Storage, нито е важно за нас да знаем.

Поради разделянето между модела за съхранение и протокола за съхранение, протоколът за съхранение се превръща в проблем, свързан с инфраструктурата, главно важен за разходите и производителността, а не в решение за приложение, което диктува функционалността.

Съхранение в облака

Пейзажът на центъра за данни се променя отново, тъй като виртуализираните среди се превръщат в облачни среди. Облачните среди обхващат модела на виртуалния диск, пионер във виртуализацията, и те предоставят допълнителни модели, за да позволят напълно виртуализиран стек за съхранение. Облачните среди се опитват да виртуализират целия стек за съхранение, така че да могат да осигурят самообслужване и чисто разделяне между инфраструктурата и приложението.

Облачните среди се предлагат в много форми. Те могат да бъдат внедрени от предприятия като частни облаци, като се използват среди като OpenStack, CloudStack и VMware vRealize suite. Те могат да бъдат внедрени и от доставчици на услуги като публични облаци като Amazon Web Services, Microsoft Azure и Rackspace.

Интересното е, че моделите за съхранение, използвани в облачна среда, отразяват тези, използвани във физическа среда. Въпреки това, както при виртуалните дискове, те са модели за съхранение, абстрахирани далеч от множеството протоколи за съхранение, които могат да се използват за тяхното внедряване.

Съхранение на инстанция: Виртуални дискове в облака

Моделът за съхранение на виртуален диск е основният (или единственият) модел за съхранение в конвенционална виртуализирана среда. В облачната среда обаче този модел е един от трите. Следователно моделът получава конкретно име в облачна среда: съхранение на екземпляр, което означава съхранение, консумирано като конвенционалните виртуални дискове.

Важно е да се отбележи, че съхранението на екземпляра е модел за съхранение, а не протокол за съхранение и може да се реализира по множество начини. Например, съхранението на екземпляри понякога се реализира с помощта на DAS на самите изчислителни възли. Реализирано по този начин, често се нарича краткотрайно съхранение, тъй като съхранението обикновено не е много надеждно.

Инстанционното съхранение може също да бъде внедрено като надеждно съхранение, използващо NAS или обемно съхранение, втори модел за съхранение, описан по-нататък Например OpenStack позволява на потребителите да внедрят съхранение на екземпляри като краткотрайно съхранение на хостовете, като файлове в точки за монтиране на NFS или като обеми Cinder, използвайки boot-from-volume.

Обемно съхранение: SAN без физическото

Инстанционното съхранение обаче има своите ограничения. Разработчиците на местни приложения в облака често изрично разграничават данните за конфигурация, като например OS и данни от приложения, от потребителски данни, като таблици на бази данни или файлове с данни. Чрез разделянето на двете, разработчиците могат да направят конфигурацията преходна и подлежаща на възстановяване, като същевременно запазват силна надеждност за потребителските данни.

Това разграничение от своя страна води до друг тип съхранение: обемно съхранение, хибрид на съхранение на екземпляри и SAN. Томът е основната единица за съхранение на тома, а не VM. Том може да се отдели от една виртуална машина и да се прикачи към друга. Въпреки това, подобно на виртуален диск, томът по-скоро прилича на файл, отколкото LUN по мащаб и абстракция. За разлика от съхранението на екземпляри, обемното съхранение обикновено се приема за много надеждно и често се използва за потребителски данни.

Cinder на OpenStack е пример за магазин за томове, както и независимата абстракция на тома на Docker. Отново имайте предвид, че обемното съхранение е модел за съхранение, а не протокол за съхранение. Обемното съхранение може да бъде внедрено върху файлови протоколи като NFS или блокови протоколи като iSCSI прозрачно за приложението.

Съхранение на обект: NAS в уеб мащаб

Облачните приложения в облака също се нуждаят от дом за данни, споделяни между виртуални машини, но често се нуждаят от пространства от имена, които могат да се мащабират до множество центрове за данни в географски региони. Съхранението на обекти осигурява точно този вид съхранение. Например, S3 на Amazon предоставя едно логическо пространство от имена в цял регион и, може би, в целия свят. За да достигне този мащаб, S3 трябваше да жертва силната последователност и фино актуализираните актуализации на конвенционалните NAS.

Съхранението на обекти осигурява подобна на файла абстракция, наречена обект, но осигурява евентуална последователност. Това означава, че докато всички клиенти в крайна сметка ще получат еднакви отговори на своите искания, те могат временно да получат различни отговори. Тази последователност е подобна на последователността, предоставена от Dropbox между два компютъра; клиентите могат временно да излязат от синхрон, но в крайна сметка всичко ще се сближи.

Традиционните хранилища на обекти също предоставят опростен набор от операции с данни, настроени за използване чрез WAN връзки с висока латентност: изброяване на обектите в „кофа“, четене на обект в неговата цялост и замяна на данните в обект с изцяло нови данни. Този модел осигурява по-основен набор от операции от NAS, който позволява на приложенията да четат и пишат малки блокове в даден файл, да съкращават файлове до нови размери, да преместват файлове между директории и т.н.