Кіріспе

Параллельді үлестірілген файл жүйесі

Lustre – параллельді үлестірілген файл жүйесінің бір түрі, көбінесе ірі масштабты кластерлік есептеулер үшін қолданылады. Lustre атауы Linux және кластер сөздерінің қосылуынан пайда болған. Lustre файлдық жүйе бағдарламалық жасақтамасы GNU General Public License (тек 2-ші нұсқасы) лицензиясы бойынша қолжетімді және кішкентай жұмыс тобы кластерлерінен бастап, үлкен масштабты, көп орынды жүйелерге дейінгі компьютер кластерлері үшін жоғары өнімділікке ие файлдық жүйелерді ұсынады. 2005 жылдың маусым айынан бері Lustre әлемдегі ең жылдам суперкомпьютерлердің кемінде жартысы және 100-ге жуық ең жылдам суперкомпьютерлердің 60-тан астамында тұрақты түрде қолданылып келеді, оның ішінде 2022 жылдың қараша айындағы TOP500 тізіміндегі бірінші орындағы Frontier, Titan және Sequoia суперкомпьютерлері де бар. Lustre файлдық жүйелері кеңейтілуге қабілетті және ондаған мың клиенттік түйіндері, жүздеген серверде жүздеген петабайт (PB) сақтау көлемі және секундтық ондаған терабайт (TB/с) жиынтық I/O өткізу қабілеті бар бірнеше компьютер кластерлерінің құрамына кіре алады. Бұл Lustre файлдық жүйелерін ірі деректер орталықтарына ие компаниялар үшін танымал таңдауға айналдырады, олар метеорология, модельдеу, жасанды интеллект және машиналық оқыту, мұнай және газ, өмір ғылымдары, мультимедиа және қаржы сияқты салаларды қамтиды. Lustre-дің I/O өнімділігі осы қолданбаларға кеңінен әсер етеді және көптеген мамандардың назарына ілігеді.

Шығару тарихы

Lustre файлдық жүйесі алғаш рет 2003 жылдың наурыз айында Лоуренс Ливермор ұлттық зертханасындағы MCR Linux кластерінде пайдалануға орнатылды, ол сол кезде Top500 тізіміндегі үшінші ірі суперкомпьютер болды. Lustre 1.0.0 2003 жылдың желтоқсанында жарық көрді және Lustre файлдық жүйесінің негізгі функционалдығын, соның ішінде сервердің істен шығуын және қалпына келтіруін қамтамасыз етті. 2004 жылдың наурыз айында шыққан Lustre 1.2.0 Linux ядросы 2.6-мен жұмыс істеді және жазу кезінде файлдардағы құлыптауларды болдырмау үшін "өлшемді көру" мүмкіндігіне ие болды, сондай-ақ клиенттік жақтан деректерді кэш-есепке (grant) қайта жазу мүмкіндігі болды. 2004 жылдың қарашасында шыққан Lustre 1.4.0 нұсқалары арасында протокол үйлесімділігі қамтамасыз етілді, InfiniBand желілерін қолдануға және дискідегі ldiskfs файлдық жүйесінде extents/mballoc пайдалануға мүмкіндік берді. 2007 жылдың сәуірінде шыққан Lustre 1.6.0 серверлерді "mkfs" және "mount" командаларымен конфигурациялауға мүмкіндік беретін монтаждау конфигурациясын (mountconf) енгізді, объект сақтау мақсаттарын (OST) динамикалық түрде қосуға, Lustre үлестірілген құлыптау басқарушысының (LDLM) симметриялық көппроцессорлық (SMP) серверлердегі кеңейтімділігін қамтамасыз етті және объекттарды бөлу үшін бос орынды басқаруды ұсынды. 2009 жылдың мамырында шыққан Lustre 1.8.0 OSS Read Cache-ті қамтамасыз етті, бірнеше сәтсіздік жағдайында қалпына келтіруді жақсартты, OST Pool арқылы гетерогенді сақтауды басқарудың негізгі мүмкіндіктерін қосты, желілік уақыт кешігуін бейімдеуге және нұсқаға негізделген қалпына келтіруге мүмкіндік берді. Бұл Lustre 1.6 және Lustre 2.0 екеуімен де өзара әрекеттесетін көшкінші релиз болды. 2010 жылдың тамызында шыққан Lustre 2.0 маңызды архитектуралық жетістіктерге дайындық үшін ішкі құрылымын толығымен өзгертіп жаңартқан кодқа негізделді. Lustre 2.x клиенттері 1.8 және одан ертерек нұсқадағы серверлермен өзара әрекеттесе алмайды. Дегенмен, Lustre 1.8.6 және одан кейінгі клиенттер Lustre 2.0 және одан кейінгі серверлермен өзара жұмыс істей алады. Метадеректер мақсаты (MDT) және OST дискідегі форматы 1.8 нұсқасынан 2.0 және одан кейінгі нұсқаларға файлдық жүйені қайта форматтау қажеттілігінсіз жаңартуға болады. 2011 жылдың қыркүйегінде шыққан Lustre 2.1 – Lustre 2.x нұсқасының дамуын тоқтатқан Oracle компаниясына жауап ретінде бүкіл қауымдастықтың бастамасы болды. Ол Red Hat Linux 6 серверлерін іске қосу мүмкіндігін қосты және ext4 негізіндегі OST-нің максималды көлемін 24 ТБ-тан 128 ТБ-ға дейін арттырды, сондай-ақ өнімділік пен тұрақтылықты жақсартулар енгізді. Lustre 2.1 серверлері 1.8.6 және одан кейінгі клиенттермен өзара әрекеттеседі. 2012 жылдың наурыз айында шыққан Lustre 2.2 метадеректердің өнімділігін жақсартуға және жаңа мүмкіндіктерді ұсынуға бағытталды. Ол бірнеше клиенттерге бір үлкен каталогты бір мезгілде қарауға және өзгертуге мүмкіндік беретін параллель каталог операцияларын қосты, сервердің істен шығуынан жылдам қалпына келтіруді қамтамасыз етті, бір файл үшін жолақтың санын арттырды (2000 OST-ге дейін) және бір клиенттің каталогты қарау өнімділігін жақсартты. 2012 жылдың қазан айында шыққан Lustre 2.3 көп ядролы процессорлары бар (16-дан астам) түйіндердегі ішкі құлыптаудың шектеулерін жою үшін метадеректер серверінің кодын жақсартуды жалғастырды. Объект сақтағышы ZFS файлдық жүйесін резервтік файлдық жүйе ретінде пайдаланудың алдын ала мүмкіндігін қосты. Lustre File System ChecK (LFSCK) мүмкіндігі файлдық жүйе жұмыс істеп тұрғанда, файл деңгейіндегі сақтық көшірмеден/қалпына келтіруден кейін немесе MDS зақымданған жағдайда MDS Object Index (OI) -ды тексеруге және жөндеуге мүмкіндік береді. Серверлік жақтан IO статистикасы SLURM сияқты жұмыс кестелеушілермен интеграциялануға мүмкіндік беру үшін жұмыстың статистикасын бақылауға мүмкіндік берді. Клиенттік бағдарламалық қамтамасыз ету Linux ядросының 3.0 нұсқасына дейінгі нұсқаларымен жұмыс істеу үшін жаңартылды. 2013 жылдың мамырында шыққан Lustre 2.4 көптеген маңызды мүмкіндіктерді қосты, олардың көпшілігі OpenSFS арқылы тікелей қаржыландырылды. Бөлінген атау кеңістігі ортасы (DNE) 2.4 клиенттері үшін көлденең метадеректер сыйымдылығы мен өнімділігін кеңейтуге мүмкіндік береді, өйткені бір атау кеңістігінің кіші каталог ағаштарын бөлек MDT-да орналастыруға мүмкіндік береді. ZFS енді MDT және OST сақтау үшін резервтік файлдық жүйе ретінде қолданылуы мүмкін. LFSCK мүмкіндігі MDT FID және LinkEA атрибуттарының ішкі сәйкестігін сканерлеу және тексеру мүмкіндігін қосты. Желілік сұрауды жоспарлаушы (NRS) дискіні реттеу немесе әділеттілік үшін клиенттік сұрауды өңдеуді оңтайландыру үшін ережелерді қосады. Клиенттер 4 МБ-қа дейінгі көлемде RPC-терді жіберуге мүмкіндік алады. Клиенттік бағдарламалық қамтамасыз ету Linux ядросының 3.6 нұсқасына дейінгі нұсқаларымен жұмыс істеу үшін жаңартылды және 1.8 клиенттерімен де үйлесімді. 2013 жылдың қазан айында шыққан Lustre 2.5 көптен күткен мүмкіндік – Иерархиялық сақтау басқаруын (HSM) қосты. Кәсіпорын ортасындағы маңызды талап болып табылатын HSM клиенттерге операциялық ортада деңгейлі сақтау шешімдерін оңай жүзеге асыруға мүмкіндік береді. Бұл релиз Lustre-дің ағымдағы OpenSFS белгіленген техникалық қолдау бөлімі болып табылады. Соңғы техникалық қолдау нұсқасы 2.5.3 және 2014 жылдың қыркүйегінде жарық көрді. 2014 жылдың шілдесінде шыққан Lustre 2.6 мүмкіндіктер жағынан шағын релиз болды, OST-де жергілікті сәйкестікті тексеруге және MDT және OST объектілері арасындағы сәйкестікті тексеруге мүмкіндік беретін LFSCK функционалдығын қосты. NRS Token Bucket Filter (TBF) саясаты қосылды. Бұрынғы релиздерге қарағанда бір клиенттік IO өнімділігі жақсартылды. Бұл релиз сонымен қатар DNE жолақты каталогтарының алдын ала қарауын қосты, бұл бір үлкен каталогты өнімділікті және кеңейтімділікті жақсарту үшін бірнеше MDT-да сақтауға мүмкіндік береді. 2015 жылдың наурыз айында шыққан Lustre 2.7 бірнеше MDT арасындағы қашық және жолақты каталогтардың DNE сәйкестігін тексеруге мүмкіндік беретін LFSCK функционалдығын қосты. Dynamic LNet Config LNet желілік интерфейстерін, маршруттарды және маршруттандырғыштарды жұмыс істеп тұрғанда конфигурациялауға және өзгертуге мүмкіндік береді. Әртүрлі әкімшілік домендері бар клиенттер үшін UID/GID бейнелеуін бағалауға жаңа мүмкіндік қосылды, сондай-ақ DNE жолақты каталог функционалдығы жақсартылды. 2016 жылдың наурыз айында шыққан Lustre 2.8 DNE жолақты каталог мүмкіндігін аяқтады, соның ішінде каталогтарды MDT арасында көшіруге және MDT арасындағы қатты сілтемелер мен қайта аталғандарды қолдауға мүмкіндік берді. Сонымен қатар, ол клиенттегі Security Enhanced Linux (SELinux) қолдауын, Kerberos аутентификациясын және желідегі RPC шифрлауын, сондай-ақ LFSCK өнімділігін жақсартты. Lustre 2.9 2016 жылдың желтоқсанында жарық көрді және қауіпсіздік және өнімділікке қатысты көптеген мүмкіндіктерді қамтыды. Shared Secret Key қауіпсіздік таңдауы клиент және сервер түйіндерін аутентификациялау және RPC хабарламаларының тұтастығы мен қауіпсіздігін (шифрлау) қамтамасыз ету үшін Kerberos сияқты GSSAPI механизмін пайдаланады. Nodemap мүмкіндігі клиенттік түйіндерді топтарға жіктеуге және содан кейін осы клиенттер үшін UID/GID-ді бейнелеуге мүмкіндік береді, бұл қашықтан басқарылатын клиенттерге барлық клиенттік түйіндер үшін жалғыз UID/GID жиынтығынсыз түсінікті файлдық жүйені пайдалануға мүмкіндік береді. Кіші каталогты орнату мүмкіндігі клиенттерге MDS-ден файлдық жүйенің атау кеңістігінің бір бөлігін орнатуға мүмкіндік береді. Бұл релиз дискіге тиімді I/O жіберу үшін 16 МиБ-қа дейінгі RPC-терді қолдауды қосты, сондай-ақ серверлік кэшке файлдық деректерді алдын ала жүктеуге немесе файлдық деректерді серверлік кэштен шығаруға клиенттерге кеңес беруге мүмкіндік беретін ladvise интерфейсін қосты. Файл жүйесі үшін әдепкі OST пулдерін белгілеуге жақсартылған қолдау және басқа файлдық макет параметрларымен байланыста OST пулдерін мұраға алу жақсартылды. Lustre 2.10 2017 жылдың шілдесінде жарық көрді және көптеген маңызды жақсартуларға ие. LNet Multi Rail (LMR) мүмкіндігі клиент пен сервердегі бірнеше желілік интерфейстерді (InfiniBand, Omni Path және/немесе Ethernet) байланыстыруға мүмкіндік береді, бұл агрегаттық I/O өткізу қабілетін арттырады. Жеке файлдар файлдық офсетке негізделген файлдық аймақтар болып табылатын, жолақтың саны, OST пулы/сақтау түрі және т.б. сияқты әртүрлі макет параметрларын құруға мүмкіндік беретін композиттік файлдық макеттерді пайдалана алады. Progressive File Layout (PFL) композиттік макеттарды пайдаланатын алғашқы мүмкіндік болып табылады, бірақ реализация басқа файлдық макеттармен, мысалы, көшірме жасау және өшіру кодтаумен пайдалану үшін икемді. Желілік сұрауды жоспарлаушы (NRS) Token Bucket Filter (TBF) серверлік жақтан жоспарлаушы жаңа ереже түрлерін, соның ішінде RPC түрінің жоспарлауын және ережелерді сәйкестендіру үшін JobID және NID сияқты бірнеше параметрлерді белгілеу мүмкіндігін енгізді. Lustre файлдық жүйесінің ZFS суретін басқару құралдары қосылды, бұл MDT және OST ZFS суреттерін жеке Lustre орнату нүктесі ретінде жасауды, орнатуды және басқаруды жеңілдету үшін.

Іске асыру

Linux клиентіне Lustre орнатылғанда, Lustre файлдық жүйе драйвер модулі ядроға жүктеледі және файлдық жүйе кез келген басқа жергілікті немесе желілік файлдық жүйе сияқты орнатылады. Клиенттік қолданбалар бірыңғай, біріктірілген файлдық жүйені көреді, тіпті ол ондаған немесе мыңдаған жеке серверлер мен MDT/OST файлдық жүйелерінен құралған болса да. Кейбір үлкен параллель процессорлар (MPP) орналымдарында есептеу процессорлары Lustre клиенті ретінде конфигурацияланған арнайы I/O түйініне I/O сұраныстарын қайта бағыттау арқылы Lustre файлдық жүйесіне қол жеткізе алады. Бұл тәсіл Лоуренс Ливермор Ұлттық зертханасындағы Blue Gene орналымында қолданылады. Lustre-дің алғашқы жылдарында қолданылған тағы бір тәсіл – бұл Cray XT3-те Catamount операциялық жүйесін пайдаланатын liblustre кітапханасы, мысалы, Sandia Red Storm жүйелерінде, ол пайдаланушы кеңістігі қолданбаларына файлдық жүйеге тікелей қол жеткізуді қамтамасыз етті. Liblustre – Lustre файлдық жүйесін клиент ретінде орнатуға және пайдалануға мүмкіндік беретін пайдаланушы деңгейіндегі кітапхана. Liblustre-ді пайдалану арқылы есептеу процессорлары Lustre файлдық жүйесіне тіпті жұмыс іске қосылған қызмет түйіні Linux клиенті болмаса да, қол жеткізе алады. Liblustre деректерді қолданба кеңістігі мен Lustre OSS арасында тікелей жылжытуға мүмкіндік берді, ядро арқылы аралық дерек көшірмесін қажет етпей, осылайша есептеу процессорларынан Lustre файлдық жүйесіне шектеулі операциялық ортада тікелей қол жеткізуді қамтамасыз етті. Liblustre функционалы 2.6.0 нұсқасынан бастап өшірілді және 2.7.0 нұсқасында алынып тасталды, ал 2.3.0 нұсқасынан бері сынақтан өтпеді. Linux Kernel 4.18 нұсқасында Lustre клиентінің толық емеспелігі ядроның сатылатын аймағынан алынып тасталды, жаңа ядроларды әзірлеу және порттау процесін жеделдету үшін. Lustre клиенті мен серверінің ядродан тыс нұсқасы RHEL, SLES және Ubuntu дистрибутивтерінің ядролары үшін, сондай-ақ стандартты ядролар үшін әлі де қол жетімді.

Деректер объектілері мен файлдарды жолақтау

Дәстүрлі Unix дискілік файл жүйесінде inode дерек құрылымы әр файл туралы негізгі ақпаратты қамтиды, мысалы, файлдағы деректер қайда сақталады. Lustre файл жүйесі де inode-тарды қолданады, бірақ MDT-дегі inode-тар файлға қатысты бір немесе бірнеше OST нысанына сілтеме жасайды, дерек блоктарына емес. Бұл нысандар OST-де файл ретінде іске асырылады. Клиент файлды ашқанда, файлды ашу операциясы объектілердің идентификаторларын және олардың орналасуын MDS-тен клиентке жібереді, осылайша клиент объектіні сақтайтын OSS түйінімен тікелей өзара әрекеттесе алады. Бұл клиентке файлдағы барлық OST нысандарында параллель I/O операцияларын орындауға мүмкіндік береді, орталық блоктарды және құлыптауды басқарудан туындайтын кедергілерден аулақтап, қосымша байланыс қажет болмайды. Егер MDT inode-ымен бір ғана OST нысаны байланысты болса, онда бұл нысан Lustre файлындағы барлық деректерді қамтиды. Егер бір файлға бірнеше нысан қосылған болса, файлдағы деректер RAID 0 сияқты OST нысандары бойынша дөңгелек тәртіппен 1 МБ немесе одан да үлкен бөліктерге "бөлінеді". Бір файлды бірнеше OST нысанына бөлу, егер бір үлкен файлға жоғары өткізгіштікпен қол жеткізу қажет болса, өнімділіктің айтарлықтай артуын қамтамасыз етеді. Бөлу қолданылған кезде файлдың максималды көлемі бір нысанның көлемімен шектелмейді. Сыйымдылық және жиынтық I/O өткізгіштігі файл бөлінген OST нысандарының санымен пропорционалды түрде өседі. Сонымен қатар, әр нысанның құлыпталуы әр OST үшін дербес басқарылатындықтан, жолақтардың санын арттыру (әр OST үшін бір жолақ) файлдың I/O құлыптау қабілетін пропорционалды түрде арттырады. Файл жүйесінде құрылған әр файл әртүрлі орналасу параметрларын көрсетуі мүмкін, мысалы, жолақтардың саны (файлды құрайтын OST нысандарының саны), жолақтың көлемі (келесі OST-қа көшу алдында әр OST-да сақталатын деректердің бірлігі) және OST таңдауы, осылайша әр файл үшін өнімділікті және сыйымдылықты оңтайлы деңгейде реттеуге болады. Егер көптеген қолданба жіптері жеке файлдарды параллельде оқып немесе жазып жатса, файлға бір жолақ болғаны тиімді, себебі қолданба өзінің параллельдігін қамтамасыз етеді. Егер көптеген жіптер бір үлкен файлды бір уақытта оқып немесе жазып жатса, онда әр OST-да кемінде бір жолақ болғаны тиімді, бұл файлдың өнімділігі мен сыйымдылығын максималды деңгейге көтереді. Lustre 2.10 нұсқасында композиттік орналасуларды белгілеу мүмкіндігі қосылды, бұл файлдың әртүрлі аймақтары үшін әртүрлі орналасу параметрлерін беруге мүмкіндік береді. Прогрессивті файл орналасуы (PFL) мүмкіндігі кең ауқымдағы жұмыс жүктемелерінде файлдың I/O өнімділігін жақсарту үшін композиттік орналасуларды пайдаланады, сондай-ақ пайдалануды және басқаруды жеңілдетеді. Мысалы, кішкентай PFL файлында флэш-жадта төменгі кіру шығындары үшін бір жолақ болуы мүмкін, ал үлкен файлдарда жоғары жиынтық өткізгіштік пен жақсы OST жүктемесін теңестіру үшін көптеген жолақтар болуы мүмкін. Композиттік орналасу 2.11 нұсқасында файл деңгейіндегі резервтік көшірме (FLR) мүмкіндігімен толықтырылды, бұл файлдың бірнеше жапсарлас орналасуына ие болуына мүмкіндік береді, бұл файлдар үшін RAID 0+1 резервтік көшірмесін және оқу өнімділігін жақсартады. Lustre 2.11 нұсқасында метадеректердегі деректер (DoM) мүмкіндігі де қосылды, бұл PFL файлының бірінші компонентін тікелей MDT-да inode-мен бірге сақтауға мүмкіндік береді. Бұл кішкентай файлдарға қол жеткізу үшін шығындарды азайтады, кеңістікті пайдалану (OST нысаны қажет емес) және желілік трафикті (деректерге қол жеткізу үшін аз RPC қажет) ескере отырып. DoM сондай-ақ, MDT SSD негізінде болса және OST дискіде болса, кішкентай файлдар үшін өнімділікті жақсартады. Lustre 2.13-те OST Overstriping мүмкіндігі бір компоненттің бір OST-да бірнеше жолақты болуына мүмкіндік береді, бұл құлыптаудың параллельдігін одан әрі жақсартады, ал Self Extending Layout мүмкіндігі компоненттің көлемін жазу кезінде динамикалық түрде өзгертуге мүмкіндік береді, осылайша бүкіл файл жүйесі орын жетіспейтінге дейін жеке (флэш) OST-тың орын жетіспеуіне төтеп беруге болады.

Метадеректер объектілері және DNE қашықтағы немесе жолақты каталогтар

Клиент файлдық жүйені бастапқыда орнатқанда, оған 128 биттік Lustre File Identifier (FID, 64 биттік реттік нөмір, 32 биттік нысан идентификаторы және 32 биттік нұсқадан тұрады) орнату нүктесінің түбір каталогы беріледі. Файл атауын іздеу кезінде клиент, әрбір жол атауы компонентін іздеуді жүргізеді, аталық каталогтың FID реттік нөмірін FID орналасу дерекқоры (FLDB) арқылы белгілі бір MDT-ға сәйкестендіріп, содан кейін аталық FID және файл атауын пайдалана отырып, осы MDT-ді басқаратын MDS-де іздейді. MDS сұралған жол атауы компонентінің FID-ін DLM құлпымен бірге қайтарады. Жолдағы соңғы каталогтың MDT анықталғаннан кейін, басқа каталог операциялары (жолақталмаған каталогтар үшін) әдетте осы MDT-да орындалады, бұл MDT арасындағы қақтығыстарды болдырмайды. DNE жолақты каталогтар үшін, бас каталогта сақталған каталог макеті хэш функциясын және каталог бөлінген MDT каталог FID-терінің тізімін ұсынады. Клиенттегі Логикалық метадеректер томы (LMV) файл атауын хэштейді және оны нақты MDT каталог бөлігіне сәйкестендіреді, ол осы файлдағы келесі операцияларды жолақталмаған каталогқа ұқсас түрде орындайды. Readdir операциялары үшін әр каталог бөлігінен жазбалар клиентке жергілікті MDT каталогының хэш ретімен сұрыпталған күйде қайтарылады, ал клиент файл атауларын хэш ретімен араластыру үшін біріктіру сұрыптауын орындайды, осылайша каталогтың ішіндегі ағымдағы офсетті анықтау үшін бір 64 биттік cookie файлын пайдалануға болады. Lustre 2.15-те клиенттік LMV дөңгелек робинді және кеңістікті теңдестіретін әдепкі каталог макеттерін іске асырады, сондықтан клиенттер бір файлдық жүйеде көптеген MDT-ді тиімдірек пайдалана алады. Файл жүйесінің түбіріне жақын жаңа ішкі каталогтар құрылған кезде (әдеттегідей жоғарғы 3 каталог деңгейлері), ол автоматты түрде қашықтағы каталог ретінде құрылады, қолжетімді MDT-лердің бірінде (реттік тәртіппен таңдалған) кеңістік пайдалануын және серверлердегі жүктемені теңгеріп орнату үшін. Егер MDT-лердегі бос орын теңгерімсіз болса (бос орын мен inode-тардың 5%-дан артық айырмашылығы), клиенттер теңгерімді қалпына келтіру үшін жаңа ішкі каталогтарды құруды көбірек бос орынға ие MDT-ға қарай бағыттайды.

Қалқалау

OpenVMS стилімен іске асырылған Lustre үлестірілген құлып менеджері (LDLM) әр файлдың деректері мен метадеректерінің тұтастығын қорғайды. Lustre файлына қол жеткізу және оны өзгерту барлық клиенттер арасында кэшпен толық үйлесімді болады. Метадеректер құлыптарын файлдың inode-ын сақтайтын MDT басқарады, ресурс атауы ретінде FID қолданылады. Метадеректер құлыптары файлды іздеуді (файл иесі мен тобы, рұқсаттары мен режимі және кіруді бақылау тізімі (ACL)), inode-тың күйін (директорияның өлшемі, каталогтың мазмұны, сілтемелер саны, уақыт белгілері), орналасуын (файлдың жолақтылығы, Lustre 2.4 нұсқасынан бастап) және кеңейтілген атрибуттарды (xattrs, Lustre 2.5 нұсқасынан бастап) қорғайтын жеке биттерге бөлінеді. Клиент бір RPC сұранысы арқылы бір inode үшін бірнеше метадеректер құлыптарын алуға болады, бірақ қазіргі уақытта оларға тек inode үшін оқу құлпы ғана беріледі. MDS ресурстарды құлыптау қақтығыстарын болдырмау үшін inode-қа барлық өзгерістерді басқарады және қазіргі уақытта inode-тарға жазу құлпын алатын жалғыз түйін болып табылады. Файл деректерінің құлыптарын OST басқарады, онда файлдың әрбір объектісі байттық диапазон бойынша құлыпталады. Клиенттерге файлдың бір бөлігіне немесе барлық бөлігіне қабаттасатын оқу құлыптары берілуі мүмкін, бұл бір файлды бірнеше рет оқуға мүмкіндік береді, және/немесе файлдың тәуелсіз аймақтарына қабаттаспайтын жазу құлыптары берілуі мүмкін. Бұл көптеген Lustre клиенттеріне файл I/O кезінде тұйықтардан аулақ болу үшін оқуға және жазуға бір мезгілде бір файлға қол жеткізуге мүмкіндік береді. Іс жүзінде, Linux клиенттері өздерінің деректер кэшін беттер бірліктері бойынша басқаратындықтан, клиенттер әрқашан бет өлшеміне (көптеген клиенттерде 4096 байт) толық есеулі құлыптарды сұрайды. Клиент диапазондық құлыпты сұраған кезде, OST клиенттің құлып сұраныстарын азайту үшін бастапқыда сұралғаннан үлкен диапазонды құлыпты бере алады. Берілген құлыптың нақты көлемі бірнеше факторларға байланысты, соның ішінде сол объектіге берілген құлыптардың саны, сұралған құлып диапазонына қатысты жазу құлыптарының болуы және сол объектіге күтіліп жатқан құлып сұраныстарының саны. Берілген құлып бастапқыда сұралған диапазоннан ешқашан кіші болмайды. OST диапазондық құлыптары құлыптың ресурс атауы ретінде объектінің Lustre FID-ін пайдаланады. Диапазондық құлып серверлерінің саны файлдық жүйедегі OST санымен пропорционалды болғандықтан, бұл файлдық жүйенің жалпы құлыптау өнімділігін және бірнеше OST-да жолақты болған жағдайда, бір файлды да пропорционалды түрде арттырады.

Желі құру

Lustre клиенттері мен серверлері арасындағы байланыс Lustre Networking (LNet) арқылы жүзеге асырылады, ол бастапқыда Sandia Portals желілік бағдарламалау қолданбалық интерфейсіне негізделген. Дискілік сақтау Lustre MDS және OSS серверлік түйіндеріне тікелей қосылған сақтау (SAS, FC, iSCSI) немесе клиенттен сервер желісіне тәуелсіз дәстүрлі сақтау аймақтық желісі (SAN) технологияларын пайдалана отырып қосылады. LNet InfiniBand және TCP (әдетте Ethernet) желілері сияқты көптеген қолданылатын желі түрлерін пайдалана алады және олардың арасында маршрутизация арқылы бірнеше желі түрлерінде бір мезгілде қолжетімділікке мүмкіндік береді. Remote Direct Memory Access (RDMA) деректерді және метадеректерді түйіндер арасында беру үшін қолданылады, егер оларды InfiniBand, RoCE, iWARP және Omni Path сияқты негізгі желілер, сондай-ақ Cray Aries және Gemini және Atos BXI сияқты меншік жоғары жылдамдықты желілер ұсынса. Жоғары қолжетімділік және қалпына келтіру мүмкіндіктері, резервтік серверлермен бірлесіп, деректерді жоғалтусыз қалпына келтіруді қамтамасыз етеді. Lustre 2.10 нұсқасынан бастап LNet Multi Rail (MR) мүмкіндігі клиент пен сервер арасындағы екі немесе одан көп желілік интерфейстерді біріктіруге мүмкіндік береді, бұл өткізу қабілетін арттырады. LNet интерфейс түрлері бірдей желі түрі болуы міндетті емес. 2.12 нұсқасында Multi Rail мүмкіндігі жақсартылды, егер пірлер арасында бірнеше желілік интерфейстер болса, бұл қателерге төзімділікті арттырады. LNet Gigabit Ethernet желілері арқылы 100 МБ/с-тан жоғары өткізуді, InfiniBand кеңейтілген деректер жылдамдығы (EDR) байланыстарын пайдалана отырып 11 ГБ/с-қа дейін, ал 100 ГБ/с интерфейстер арқылы 11 ГБ/с-тан жоғары өткізуді қамтамасыз етеді.

Жоғары қол жетімділік

Lustre файлдық жүйесінің жоғары сенімділік мүмкіндіктеріне, сервердің істен шығуы мен қайта жүктелуін көзге көрінбей жасайтын, берік ауысу және қалпына келтіру механизмі кіреді. Lustre бағдарламалық қамтамасының екі бірге үйлесімді шағын нұсқалары арасындағы нұсқалардың өзара жұмыс істеуі, серверді жеке (немесе резервтік серверге ауыстырып) жаңартуға, жаңартуды орындауға және қайта іске қосуға мүмкіндік береді, ал барлық жұмыс істеп жатқан тапсырмалар үздірілмей жалғаса береді, тек резервтік сервер сақтауды қолға алғанда ғана қысқа уақытқа тоқтап қалады. Lustre MDS бір MDT экспорттайтын белсенді/пассивті жұп ретінде немесе DNE арқылы екі немесе одан көп жеке MDT экспорттайтын бір немесе бірнеше белсенді/белсенді MDS жұптары ретінде конфигурацияланады, ал OSS әдетте артықшылықты қамтамасыз ету үшін қосымша жүйелік жүктемесіз жеке OST экспорттайтын белсенді/белсенді конфигурацияда орналастырылады. Бір MDT файлдық жүйелерінде, бір файлдық жүйе үшін резервтік MDS – MGS және/немесе мониторинг торабы немесе басқа файлдық жүйе үшін белсенді MDS болып табылады, сондықтан кластерде ешбір торап бос тұрмайды.

Жұмысқа орналастыру

Lustre-ді көптеген TOP500 суперкомпьютерлері мен ірі көп кластерлік орталықтар пайдаланады. Топ-10 суперкомпьютерлердің 6-сы және топ-100 суперкомпьютерлердің 60-тан астамы Lustre файлдық жүйелерін қолданады. Олардың ішінде Оук Ридж Ұлттық зертханасының (ORNL) Frontier суперкомпьютері үшін құрылған 700ПБ, 13ТБ/с жылдамдығына ие Orion файлдық жүйесі, Fugaku және K Computer, сондай-ақ Солтүстік Америкадағы NASA, Азиядағы Токио технология институты, Еуропадағы CEA және тағы да басқалары бар.

Коммерциялық техникалық қолдау

Lustre жүйесіне коммерциялық техникалық қолдау көбінесе сатушы сататын есептеу жүйесімен немесе сақтау аппараттық құралдарымен бірге ұсынылады. Кейбір сатушыларға Hewlett Packard (HP StorageWorks Scalable File Share, шамамен 2004 жылдан 2008 жылға дейін), ATOS, Fujitsu кіреді. Lustre қолдауын бірге ұсынатын сақтау аппараттық құралдарын сататын сатушыларға Hitachi Data Systems (2012), DataDirect Networks (DDN), Aeon Computing және басқалары жатады. Сонымен қатар, кейбір сатушылардан, оның ішінде Whamcloud-тан Lustre файлдық жүйелеріне ғана бағдарламалық қолдау алуға болады. Amazon Web Services компаниясы толық басқарылатын Amazon FSx for Lustre қызметін ұсынады, бұл олардың бұлттық қызметінде жоғары өнімділікке ие файлдық жүйелерді тиімді пайдалануға және іске қосуға мүмкіндік береді.