Кіріспе

Компьютерлік файл жүйесі

Write Anywhere File Layout (WAFL) – үлкен, жоғары өнімді RAID массивтерін қолдайтын, апат немесе қуат көзінің ақаулығы жағдайында ұзаққа созылатын дәйектілік тексерусіз жылдам қайта іске қосылуға және файлдық жүйенің көлемін жылдам кеңейтуге мүмкіндік беретін, авторлық құқықпен қорғалған файлдық жүйе. Ол NetApp FAS, AFF, Cloud Volumes ONTAP және ONTAP Select сияқты сақтау құрылғыларында пайдалану үшін NetApp компаниясымен әзірленген. Оның авторы WAFL – файлдық жүйе емес екенін мәлімдейді, бірақ оның құрамында файлдық жүйе бар. WAFL өзгерістерді журналға жазатын файлдық жүйелерге ұқсас, арнайы жад сақтағыш құрылғысындағы (NVRAM немесе NVMEM деп аталады) журналдар (NVLOG деп белгіленеді) арқылы қадағалайды. WAFL диск блоктарына қол жеткізуді қалайтын әртүрлі файлдық жүйелер мен технологияларды қолдау үшін механизмдерді ұсынады.

Дизайн

WAFL деректермен қатар метадеректерді де файлдарда сақтайды; метадеректер, мысалы, томдағы блоктардың қайсысы бөлінгенін көрсететін инодтар мен блок карталары файлдық жүйеде белгілі бір орындарда сақталмайды. Томдағы жоғарғы деңгейдегі файл – inode файлы, онда басқа барлық файлдардың инодтары бар; inode файлының өзінің иноды, root inode деп аталады, ол белгілі бір орынға ие блокта сақталады. Шағын файлдың иноды файлдың мазмұнын қамтиды; әйтпесе, ол файл деректері блоктарына сілтемелер тізімін немесе файл деректері блоктарына сілтемелер тізімін қамтитын жанама блоктар тізімін және т.б. қамтиды, қажет болған жағдайда жанама блоктардың қабаттарын құрайды, бұл блоктар ағашын құрайды. Файл жүйесіндегі барлық деректер мен метадеректер блоктары, root inode-ты қамтитын блоктан басқа, файлдық жүйедегі файлдарда сақталады. Осылайша, root inode файлдан басқа барлық файлдардың барлық блоктарын табу үшін пайдаланылуы мүмкін. Негізгі жад файлдардан блоктар үшін беттік кэш ретінде қолданылады. Файлдың блогына өзгеріс енгізілген кезде, беттік кэштегі көшірме жаңартылады және «ластанған» деп белгіленеді, ал айырмашылық NVLOG деп аталатын тұрақты емес жадта тіркеледі. Егер беттік кэштегі «ластанған» блок тұрақты сақтауға жазылуы керек болса, ол оқылған блокқа қайта жазылмайды; керісінше, тұрақты сақтау үшін жаңа блок бөлінеді, блоктың мазмұны жаңа орынға жазылады және сұраныс бойынша бұл блокқа сілтеме берген инод немесе жанама блок негізгі жадта жаңартылады. Егер инодты немесе жанама блокты қамтитын блок тұрақты сақтауға жазылуы керек болса, ол бұрынғы орнында жазылудың орнына жаңа орынға жазылады. «Write Anywhere File Layout» атауының «Қайда болса да жазу» дегені осыны білдіреді.

Шын-тұрақты суреттер

WAFL файлдық жүйенің тек оқуға арналған көшірмесі болып табылатын снэпшоттарды қолдайды. Снэпшоттар консистенциялық нүктеде орындалатын операциялардың өзін орындау арқылы жасалады, бірақ файлдық жүйенің қазіргі күйіне сәйкес түбірлік inode-ты жаңарту орнына, түбірлік inode-тың көшірмесі сақталады. Файлдық жүйенің барлық деректері мен метадеректерін түбірлік inode-тан табуға болатындықтан, снэпшот жасалған кездегі файлдық жүйенің барлық деректері мен метадеректерін снэпшоттың түбірлік inode-ының көшірмесінен табуға болады. Снэпшот жасау үшін басқа деректерді көшірудің қажеті жоқ. Кіруді бақылау тізімдері (ACL) немесе қарапайым биттік маска қолданылады, ал Windows-тың жаңа моделі кіруді бақылау тізімдеріне негізделген. Бұл екі мүмкіндік файлды SMB типті желілік файлдық жүйеге жазуға және одан кейін Unix жұмыс станциясынан NFS арқылы оған қол жеткізуге мүмкіндік береді. Қарапайым файлдармен қатар, WAFL LUN деп аталатын файл контейнерлерін де қамти алады, оларға блок құрылғылары үшін LUN сериялық нөмірі сияқты арнайы атрибуттар қажет, оларға ONTAP OS бағдарламалық қамтамасымен жұмыс істейтін SAN протоколдары арқылы қол жеткізуге болады.

FlexVol

Әрбір икемді том (FlexVol) – бұл агрегатта орналасқан және агрегаттағы барлық дискілерге таралған жеке WAFL файлдық жүйе. Әрбір агрегат бірнеше FlexVol көлемін қамти алады және әдетте қамтиды. ONTAP деректерді оңтайландыру процесінде, соның ішінде "Tetris" алгоритмі арқылы консистенциялық нүктелерге (NVRAM қараңыз) қол жеткізеді, FlexVol-дің әрбір томындағы дерек блоктарын барлық дискілерге мүмкіндігінше тепе-тең бөлуге бағдарланған. Бұл әрбір FlexVol-ге агрегаттағы барлық дерек дискілерінің барлық қолжетімді өнімділігін пайдалану мүмкіндігін береді. Агрегаттағы барлық дерек дискілерінде дерек блоктарын тепе-тең тарату арқасында FlexVol үшін өнімділікті динамикалық түрде сақтау QoS арқылы жүзеге асырылуы мүмкін, және әр FlexVol үшін арнайы агрегаттар немесе RAID топтарын құру қажеттілігі жоқ. Бұл пайдаланылмаған өнімділікті қажет ететін FlexVol көлеміне беруге мүмкіндік береді. Әрбір FlexVol қалың немесе жұқа бөлінген кеңістік ретінде конфигурациялануы мүмкін және кейін кез келген уақытта динамикалық түрде өзгертілуі мүмкін. iSCSI, Fibre Channel (FC) және Fibre Channel over Ethernet (FCoE) сияқты сақтау аймақтық желісі (SAN) протоколдарымен блок құрылғысына қол жеткізу FlexVol томының үстінде Loop құрылғысының принципіне ұқсас LUN эмуляциясы арқылы жүзеге асырылады. Осылайша, WAFL файлдық жүйесіндегі әрбір LUN файл ретінде көрінеді, бірақ блок құрылғылары үшін қажетті қосымша қасиеттерге ие. LUN-дар да қалың немесе жұқа бөлінген ретінде конфигурациялануы мүмкін және кейіннен динамикалық түрде өзгертілуі мүмкін. WAFL архитектурасының арқасында FlexVols және LUN-дар конфигурацияланған кеңістікті пайдалануды динамикалық түрде ұлғайтуға немесе азайтуға мүмкіндік береді. Егер FlexVol деректерді қамтитын болса, ішкі кеңістік пайдаланылған кеңістікке тең немесе одан артық емес деңгейге дейін азайтылуы мүмкін. WAFL файлдық жүйесінде деректермен LUN өлшемі азайтылса да, ONTAP SAN архитектурасының ерекшелігіне байланысты жоғарғы деңгейдегі блок құрылымы туралы ақпаратқа ие болмайды. Сондықтан, ол деректерді қысқартып, сол LUN-дағы файлдық жүйені зақымдауы мүмкін. Осылайша, хост деректерді қамтитын блоктарды жаңа LUN шекарасына көшіруі керек, бұл деректердің жоғалуын болдырмау үшін қажет. Әрбір FlexVol өзінің QoS, FlashPool, FlashCache немесе FabricPool саясатына ие болуы мүмкін. Егер екі FlexVol көлемі құрылса, әрқайсысы екі түрлі агрегатта орналасқан және бұл агрегаттар екі түрлі контроллерлерге тиесілі болса, және жүйе әкімшісі NAS протоколы арқылы осы көлемдерден орын пайдалануы керек болса, онда олар екі файлдық ортақ пайдалану құрады, әр көлемге біреуден. Бұл жағдайда әкімші, әдетте, әрқайсысы арнайы файлдық ортақ пайдалануға қол жеткізу үшін қолданылатын екі түрлі IP-адресті де құруы мүмкін. Әр көлемде бір ғана жазу аффиниттігі болады және екі кеңістік бөлігі болады. Тіпті егер екі көлем бір контроллерде, мысалы, бір агрегатта орналасқан болса (егер екінші агрегат бар болса, ол осы жағдайда қолданылмайды) және екі көлемге бір IP-адресі арқылы қол жеткізілсе де, әр көлемде екі жазу аффиниттігі болады және әрқашан екі бөлек кеңістік бөлігі болады. Сондықтан, сізде неғұрлым көп көлем болса, соғұрлым көп жазу аффиниттігі болады (жақсырақ параллельдеу және осылайша CPU-дың тиімді пайдалануы), бірақ содан кейін сізде бірнеше көлем (және кеңістік үшін бірнеше бөлік, демек, бірнеше файлдық ортақ пайдаланулар) болады.

Плекстер

RAID 1-ге ұқсас, ONTAP жүйелеріндегі плекстер айналдырылған деректерді екі орында сақтай алады, бірақ дәстүрлі RAID 1 бір сақтау жүйесінің шегінде болуы керек, ал екі плекс екі сақтау жүйесі арасында бөлінуі мүмкін. Әрбір агрегатта бір немесе екі плекс болады. Дәстүрлі Жоғары Жұмысқа қабілетті (HA) сақтау жүйелерінде әрбір агрегатта тек бір плекс болады, ал SyncMirror жергілікті немесе MetroCluster конфигурацияларында әрбір агрегатта екі плекс болуы мүмкін. Екінші жағынан, әрбір плекс RAID 0-ға ұқсас, бір плексте NetApp RAID тобының бірінен немесе бірнешесінен немесе үшінші тараптың сақтау жүйелерінен алынған LUN-дерден (FlexArray қараңыз) тұратын негізгі сақтау кеңістігін қамтиды. Егер агрегат екі плекстен тұрса, онда біреуі басқарылғыш, екіншісі – бағынышты болып саналады; бағынышты плекстер дәл сол RAID конфигурациясымен және дискілермен құрылуы тиіс. Мысалы, егер бізде екі плекстен тұратын агрегат болса, онда басқарылғыш плекс RAID TEC-те 21 дерек және 3 1,8 ТБ SAS паритетті дискісінен тұрады, онда бағынышты плекс RAID TEC-те 21 дерек және 3 1,8 ТБ SAS паритетті дискісінен тұруы керек. Екінші мысал, егер агрегатымыз екі плекстен тұрса, онда басқарылғыш плекс бір RAID 17 дерек және 3 паритетті SAS дискісінен 1,8 ТБ құралады, ол RAID TEC ретінде конфигурацияланған, ал басқарылғыш плекстегі екінші RAID – 2 дерек және 2 паритетті SSD 960 ГБ-тан тұратын RAID DP. Екінші плекс бірдей конфигурацияға ие болуы керек: RAID 17 дерек және 3 паритетті SAS дискісінен 1,8 ТБ RAID TEC ретінде конфигурацияланған, ал бағынышты плекстегі екінші RAID – 2 дерек және 2 паритетті SSD 960 ГБ-тан тұратын RAID DP. MetroCluster конфигурациялары синхронды дерек көшіру үшін SyncMirror технологиясын пайдаланады. SyncMirror-дың екі нұсқасы бар: MetroCluster және Local SyncMirror, екеуі де екі плекс арасында деректерді синхронды көшіру үшін бірдей плекс техникасын қолданады. Local SyncMirror екі плексті де бір контроллерде жасайды және көбінесе сақтау жүйесіндегі бүкіл дискілік сөренің істен шығуын болдырмау үшін қосымша қауіпсіздік үшін қолданылады. MetroCluster деректерді екі сақтау жүйесі арасында көшіруге мүмкіндік береді. Әрбір сақтау жүйесі бір контроллерден тұруы немесе екі контроллермен Жоғары Жұмысқа қабілетті (HA) жұп ретінде конфигурациялануы мүмкін. Бір HA жұбында екі контроллер бөлек шассиде орналасуы мүмкін және олардың арақашықтығы ондаған метрге жете алады, ал MetroCluster конфигурациясында арақашықтық 300 км-ге дейін болуы мүмкін.

Ұшпаған жады

Көптеген бәсекелестер сияқты, NetApp ONTAP жүйелері хосттардан деректерді қабылдау және кэштеу үшін, ең бастысы, жазу алдында деректерді оңтайландыру үшін жадыны әлдеқайда жылдам сақтау ортасы ретінде пайдаланады, бұл мұндай сақтау жүйелерінің өнімділігін айтарлықтай жақсартады. Бәсекелестер күтпеген оқиғалар кезінде, мысалы, қайта жүктеу кезінде жазу кэші мен деректерді оңтайландыру үшін ұдайы өзгермейтін кездейсоқ қолжетімділік жадысын (NVRAM) кеңінен қолданса, NetApp ONTAP жүйелері деректерді оңтайландыру үшін қарапайым кездейсоқ қолжетімділік жадысын (RAM) және бастапқы деректерді өзгермеген күйде тіркеуге арналған NVRAM немесе NVDIMM пайдаланады, хосттардан келгендей, реляциялық деректер базасындағы транзакцияларды тіркеуге ұқсас. Сондықтан, апат жағдайында RAM қайта жүктелгеннен кейін автоматты түрде тазаланады, ал NVLOG деп аталатын журналдар түріндегі ұшпалы емес жадта сақталған деректер қайта жүктелгеннен кейін сақталады және тұрақтылықты қалпына келтіру үшін қолданылады. ONTAP жүйелеріндегі барлық өзгерістер мен оңтайландырулар тек RAM-да жасалады, бұл ONTAP жүйелері үшін ұшпалы емес жад көлемін азайтуға көмектеседі. Оптимизациялаудан кейін, Tetris сияқты құрылымдалған хосттардан алынған деректер, бірнеше кезеңнен (мысалы, WAFL және RAID) өтіп, оңтайландырылады және дайындалады, содан кейін деректер сақталатын агрегаттағы RAID топтарындағы негізгі дискілерге жазылады. Оптимизациялаудан кейін деректер бірінен соң бірі, Консистенция нүктесі (CP) транзакциясының бөлігі ретінде дискілерге жазылады. Агрегаттарға жазылған деректерде қажетті WAFL метадеректері мен RAID паритеттері болады, сондықтан деректер дискілерінен қосымша оқу, есептеу және паритетті дискілерге жазу операциялары, дәстүрлі RAID 6 және RAID 4 топтары сияқты болмайды. CP бастапқыда деректер жазылатын агрегатта жүйелік снэпшотты жасайды, содан кейін RAM-нан бірізді түрде агрегатқа бір транзакция ретінде жазылған оңтайландырылған және дайындалған деректерді жасайды, егер ол сәтсіз болса, WAFL файлдық жүйесін үнемі сәйкес етуді қамтамасыз ететін кенеттен қайта жүктеу жағдайында бүкіл транзакция сәтсіз болады. CP транзакциясы сәтті аяқталған жағдайда, жаңа белсенді файлдық жүйе нүктесі таратылады және тиісті NVLOG тазартылады. Барлық деректер әрқашан жаңа орынға жазылады, қайта жазу болмайды. Хосттар жойылған деп белгілеген деректер блоктары бос деп таңбаланады, осылайша келесі CP циклдарында оларды пайдалануға болады, және WAFL-дың әрқашан жаңа деректерді жаңа орынға жазу саясатымен жүйеде орын бітпейді. HA сақтау жүйелеріндегі NVLOG-тар ғана HA сақтау жүйесінің ақаулыққа төзімділігі үшін екі контроллер арасында синхронды түрде көшіріледі, бұл жүйелік жадты қорғауға кеткен жалпы шығындарды азайтуға көмектеседі. ХА конфигурациясындағы екі контроллері бар немесе әрбір участе бір контроллері бар MetroCluster сақтау жүйесінде екі контроллердің әрқайсысы өзінің ұшпалы емес жадын екі бөлікке бөледі: жергілікті және оның серіктесі. MetroCluster конфигурациясында төрт түйін бар, әрбір ұшпалы емес жад келесі бөліктерге бөлінеді: жергілікті, жергілікті серіктес және қашықтағы серіктес. All Flash FAS A800 жүйесімен бастап, NetApp NVRAM PCI модулін жад шинасына қосылған NVDIMM-мен алмастырды, бұл өнімділікті арттырды.