Кіріспе
Бөлінген файл жүйесінің түрі Параллельді виртуалды файл жүйесі (PVFS) - ашық бастапқы кодты параллельді файл жүйесі. Параллель файл жүйесі - файл деректерін бірнеше серверлерге тарататын және қатардағы қосымшаның бірнеше тапсырмаларының бір мезгілде қол жеткізуін қамтамасыз ететін үлестірілген файл жүйесінің түрі. PVFS ірі масштабтағы кластерлік есептеулерде пайдалану үшін жасалған. PVFS үлкен деректер жиынтығына жоғары өнімділікпен қол жеткізуге бағытталған. Ол сервер процесінен және клиент кітапханасынан тұрады, екеуі де толығымен пайдаланушы деңгейіндегі кодтан жазылған. Linux ядросының модулі мен pvfs клиенттік процесі файл жүйесін стандартты утилиталармен орнатуға және пайдалануға мүмкіндік береді. Клиент кітапханасы хабарламаны өткізу интерфейсі (MPI) арқылы жоғары өнімділікпен қол жеткізуді қамтамасыз етеді. PVFS-ті Clemson университетінің Параллельдік архитектура ғылыми-зерттеу зертханасы, Аргонн ұлттық зертханасының математика және компьютерлік ғылымдар бөлімі және Огайо суперкомпьютерлік орталығы бірлесіп әзірлейді. PVFS-ті әзірлеуді NASA Годдард ғарыш ұшу орталығы, DOE Office of Science Advanced Scientific Computing Research бағдарламасы, NSF PACI және HECURA бағдарламалары және басқа да мемлекеттік және жеке агенттіктер қаржыландырады. PVFS енді OrangeFS деп аталады.
The Parallel Virtual File System (PVFS) is an open source parallel file system. A parallel file system is a type of distributed file system that distributes file data across multiple servers and provides for concurrent access by multiple tasks of a parallel application. PVFS was designed for use in large scale cluster computing. PVFS focuses on high performance access to large data sets. It consists of a server process and a client library, both of which are written entirely of user level code. A Linux kernel module and pvfs client process allow the file system to be mounted and used with standard utilities. The client library provides for high performance access via the message passing interface (MPI). PVFS is being jointly developed between The Parallel Architecture Research Laboratory at Clemson University and the Mathematics and Computer Science Division at Argonne National Laboratory, and the Ohio Supercomputer Center. PVFS development has been funded by NASA Goddard Space Flight Center, The DOE Office of Science Advanced Scientific Computing Research program, NSF PACI and HECURA programs, and other government and private agencies. PVFS is now known as OrangeFS in its newest development branch.
Тарих
PVFS алғаш рет 1993 жылы Уолт Лигон мен Эрик Блюмер параллель виртуалды машиналар (PVM) үшін параллель файл жүйесі ретінде NASA грантының бөлігі ретінде параллель бағдарламалардың I / O үлгілерін зерттеу үшін әзірледі. PVFS 0 нұсқасы Vesta-ға негізделген, IBM T. J. Watson Research Center-де әзірленген параллель файл жүйесі. 1994 жылдан бастап Роб Росс PVFS-ті TCP/IP пайдалану үшін қайта жазды және Vesta-ның бастапқы дизайнынан көп нәрсені алып тастады. PVFS 1-ші нұсқасы коммутацияланған FDDI-ді пайдалана отырып желіге қосылған DEC Alpha жұмыс станцияларының кластеріне бағытталған. Vesta сияқты PVFS бірнеше серверлердегі деректерді жолақты түрде бөліп, файл көрінісіне негізделген I / O сұраныстарына рұқсат берді. Vesta-дан айырмашылығы, жолақ пен көрініс жалпы жазба өлшеміне тәуелді емес. Росс зерттеулері бірнеше клиенттер бір файлға қол жеткізген кезде диск I / O-ны жоспарлауға бағытталған. Бұрынғы нәтижелер дискке қол жеткізудің ең жақсы үлгісіне сәйкес жоспарлаудың артық екендігін көрсетті. Росс бұл желі жылдамдығы мен файл көрінісінің егжей-тегжейін қоса алғанда, бірқатар факторларға байланысты екенін көрсетті. Кейбір жағдайларда желілік трафикке негізделген кестелеу артық болды, сондықтан динамикалық бейімделетін кесте ең жақсы жалпы өнімділікті қамтамасыз етті. 1994 жылдың соңында Лигон Годдард ғарыш ұшу орталығында Томас Стерлинг пен Джон Дорбандпен кездесіп, олардың алғашқы Беовульф компьютерін жасау жоспарларын талқылады. PVFS Linux-қа көшіріліп, жаңа машинада пайда болады деп келісілді. Келесі бірнеше жыл ішінде Лигон мен Росс GSFC тобымен жұмыс істеді, оның ішінде Дональд Бекер, Дэн Ридж және Эрик Хендрикс. 1997 жылы Пасаденада өткен кластерлік кездесуде CA Sterling PVFS-ті ашық бастапқы кодты пакет ретінде шығаруды сұрады.
PVFS2
1999 жылы Ligon PVFS-тің жаңа нұсқасын әзірлеуді ұсынды, ол бастапқыда PVFS2000, кейін PVFS2 деп аталды. Дизайнды бастапқыда Лигон, Росс және Фил Карнс әзірлеген. Росс 2000 жылы докторлық диссертациясын аяқтап, Аргон Ұлттық зертханасына ауысты. Дизайн мен іске асыруды Клемсон университетінің Лигон, Карнс, Дейл Уичерч және Хариш Рамачандран, Аргон Ұлттық зертханасының Росс, Нил Миллер және Роб Латам және Огайо суперкомпьютер орталығында Пит Уайкофф жүргізді. Жаңа файл жүйесі 2003 жылы шығарылды. Жаңа дизайнға объект серверлері, бөлінген метадеректер, MPI негізделген көріністер, бірнеше желі түрлерін қолдау және оңай эксперименттер мен кеңейту үшін бағдарламалық жасақтама архитектурасы кірді. PVFS 1-ші нұсқасы 2005 жылы тоқтатылды. PVFS 2-ші нұсқасын Clemson және Argonne әлі де қолдайды. Карнс докторлық дәрежесін 2006 жылы аяқтады және Axicom, Inc-ке қосылды, онда PVFS деректер өндіру үшін бірнеше мың түйінге орналастырылды. 2008 жылы Карнс Аргоннеге көшіп барды және Росс, Латэм және Сэм Лэнгпен бірге PVFS-те жұмыс істеуді жалғастырды. Брэд Сеттлмайер Клемсонда айналандыратын ішкі жүйені, ал кейіннен жаңа әзірлемелерді зерттеу үшін пайдаланылатын PVFS-тің егжей-тегжейлі симуляциясын жасады. Сетлмайер қазір Оук Ридж ұлттық зертханасында. 2007 жылы Аргонн PVFS-ті IBM Blue Gene/P-де пайдалану үшін порттауды бастады. 2008 жылы Clemson шағын файлдардың үлкен каталогтарын, қауіпсіздікті жақсарту және артық мүмкіндіктерді қолдау үшін кеңейтулерді әзірлеуді бастады. Бұл мақсаттардың көпшілігі Blue Gene-нің дамуына қайшы келгендіктен, CVS-тің бастапқы ағашының екінші тармағы құрылды және "Orange" деп аталды, ал бастапқы тармақ "Blue" деп аталды. PVFS және OrangeFS бір-біріне өте жақын, бірақ пайдаланушылардың екі түрлі топтарын білдіреді. Көптеген түзетулер мен жаңартулар екі тармаққа да қолданылады. 2011 жылдан бастап OrangeFS негізгі даму желісі болып табылады.
Ерекшеліктері
PVFS пайдаланатын кластерде түйіндер мыналардың бірі немесе көбі ретінде белгіленеді: клиент, деректер сервері, метадеректер сервері. Дерек серверлері файл деректерін сақтайды. Метадеректер серверлері метадеректерді қамтиды, олардың ішінде статистикалық ақпарат, атрибуттар, дерек файлдар, сондай-ақ каталогтар кірулері бар. Клиенттер файл жүйесін пайдалану үшін желі арқылы серверлерге сұраулар жібереді.
Нысанға негізделген жобалау
PVFS объектке негізделген дизайнға ие, яғни PVFS серверінің барлық сұраныстары деректер кеңістігі деп аталатын объектілерді қамтиды. Деректер кеңістігі файл деректерін, файл метадеректерін, каталог метадеректерін, каталог жазбаларын немесе символикалық сілтемелерді сақтауға пайдаланылуы мүмкін. Файл жүйесіндегі әрбір деректер кеңістігінің бірегей тұтқасы бар. Кез келген клиент немесе сервер тұтқаға негізделген деректер кеңістігін қандай серверде ұстайтынын көре алады. Дерек кеңістігінде екі компонент бар: байт-тест ағыны және кілт/саны жұптарының жиынтығы. Байт ағымы - бұл байттардың реттелген реті, әдетте файл деректерін сақтауға арналған, ал кілт / мән жұптары әдетте метадеректерді сақтауға арналған. Объектке негізделген дизайн көптеген бөлінген файл жүйелеріне тән болды, соның ішінде Lustre, Panasas және pNFS.
Деректер мен метадеректерді бөлу
PVFS клиенттің метадеректер үшін серверге бір рет кіруіне, содан кейін метадеректер серверлерімен одан әрі өзара әрекеттесусіз дерек серверлеріне кіруіне арналған. Бұл жүйедегі маңызды бөтелкелерді алып тастайды және әлдеқайда жоғары өнімділікке мүмкіндік береді.
МКИ-ге негізделген сұраулар
Клиенттік бағдарлама PVFS-тен деректерді сұрағанда, ол MPI дерек түрлері негізінде деректердің сипаттамасын бере алады. Бұл мүмкіндік MPI файл көріністерін файл жүйесімен тікелей іске асыруға мүмкіндік береді. MPI дерек түрлері деректердің күрделі жалғаспайтын үлгілерін сипаттай алады. PVFS сервері мен деректер кодтары бірнеше серверлер мен клиенттер арасында деректерді тиімді түрде беретін дерек ағындарын іске асырады.
Бірнеше желілерді қолдау
PVFS файл жүйелері үшін арнайы жасалған бұғаттамайтын хабарлама интерфейсін қамтамасыз ететін BMI деп аталатын желілік қабатты пайдаланады. BMI-де TCP/IP, Myrinet, Infiniband және Порталдарды қоса алғанда, жоғары өнімділіктегі есептеуде қолданылатын бірнеше түрлі желілер үшін бірнеше іске асыру модульдері бар.
Мемлекетсіз (бұғатталмаған) серверлер
PVFS серверлері бір-бірімен немесе клиенттермен кез келген жағдайды бөліспейді. Егер бір сервер бұзылса, оның орнына басқасын оңай іске қосуға болады. Жаңартулар бұғаздарды қолданбай орындалады.
Пайдаланушы деңгейінде іске асыру
PVFS клиенттері мен серверлері пайдаланушы деңгейінде жұмыс істейді. Ядроға өзгерістер енгізу қажет емес. PVFS файл жүйесін кез-келген басқа файл жүйесі сияқты орнатуға мүмкіндік беретін ерікті өзекті модуль бар, немесе бағдарламалар MPI IO немесе Posix сияқты интерфейс сияқты пайдаланушы интерфейсіне тікелей қосыла алады. Бұл мүмкіндіктер PVFS-ті орнатуды оңай және жүйелік апатқа ұшырауға аз бейім етеді.
Жүйелік деңгейдегі интерфейс
PVFS интерфейсі жүйелік деңгейде интеграциялауға арналған. Ол Linux VFS-мен ұқсастықтарға ие, бұл оны орнатылатын файл жүйесі ретінде іске асыруды жеңілдетеді, бірақ MPI IO немесе Posix сияқты пайдаланушы деңгейіндегі интерфейстерге бірдей бейімделеді. Ол негізгі файл жүйесінің көптеген мүмкіндіктерін ашып көрсетеді, сондықтан интерфейстер оларды қалаған жағдайда пайдалана алады.
Сәулет
PVFS 4 негізгі компоненттен және бірқатар пайдалы бағдарламалардан тұрады. Компоненттер - PVFS2 сервері, pvfslib, PVFS клиент өзегі және PVFS өзек модулі. Пайдалануға арналған құралдарға карманы басқару құралы, пайдалы құралдар (мысалы, pvfs ping, pvfs ls, pvfs cp және т.б.) кіреді. барлығы файл жүйесінде тікелей жұмыс істейді, ядро модулін пайдаланбайды (негізінен техникалық қызмет көрсету және сынау үшін). Тағы бір маңызды жобалау нүктесі - бұл PVFS протоколы, ол клиент пен сервер арасында жіберілетін хабарламаларды сипаттайды, бірақ бұл қатаң компонент емес.
PVFS2 сервері
PVFS сервері I/O торабы ретінде белгіленген торапта процесс ретінде жүреді. I/O түйіндері көбінесе арнайы түйіндер болып табылады, бірақ олар қосымша тапсырмаларды орындайтын тұрақты түйіндер болуы мүмкін. PVFS сервері әдетте root ретінде жүреді, бірақ егер қаласаңыз, пайдаланушы ретінде іске қосылуы мүмкін. Әрбір сервер бірнеше файл жүйелерін басқара алады және метадеректер сервері, деректер сервері немесе екеуі ретінде жұмыс істеуге тағайындалады. Барлық конфигурация командалық жолда көрсетілген конфигурациялық файлмен басқарылады және берілген файл жүйесін басқаратын барлық серверлер бірдей конфигурациялық файлды қолданады. Сервер желі арқылы сұрауларды қабылдайды, дискке енгізу-шығаруды қамтитын сұрауды орындайды және бастапқы сұрау салушыға жауап береді. Сұраулар әдетте қолданба тапсырмаларын орындайтын клиенттік түйіндерден келеді, бірақ басқа серверлерден де келуі мүмкін. Сервер сұраныс процессорынан, жұмыс қабатынан, Trove, BMI және ағым қабаттарынан тұрады.
Сұрау салуды өңдеуші
Сұрау процессоры сервер процесінің негізгі циклынан және бірқатар мемлекеттік машиналардан тұрады. Мемлекеттік машиналар сервер мен клиент ішіндегі бір мезгілдестікті басқаратын PVFS үшін әзірленген қарапайым тілге негізделген. Мемлекетті машина бірнеше күйден тұрады, олардың әрқайсысы не C-шекелік әрекет функцияларын орындайды, не ұялы (қосалқы) күй машинасын шақырады. Екі жағдайда да қайту кодтары келесі мемлекетке өтуді таңдайды. Мемлекеттік іс-қимыл функциялары әдетте Trove немесе BMI арқылы I / O түрін орындайтын жұмыс қабаты арқылы тапсырма береді. Жұмыстар бұғатталмайды, сондықтан жұмыс берілгеннен кейін, басқа мемлекеттік машина басқа өтінішті қызмет көрсету үшін басқа мемлекеттік машинаны орындау кейінге қалдырылады. Жұмыстар аяқталған кезде негізгі цикл байланысты күй машинасын қайта бастайды. Сұрау процессорында PVFS сұрау протоколында анықталған әр түрлі сұрау түрлеріне арналған мемлекеттік машиналар бар, сонымен қатар ішкі түрде қолданылатын бірнеше тігілген мемлекеттік машиналар бар. Мемлекеттік машина архитектурасы ерекшеліктерді қосу немесе белгілі бір жағдайларға оңтайландыру үшін серверге жаңа сұраныстарды қосуды салыстырмалы түрде оңай етеді.
Жұмыс қабаты
Жұмыстар қабаты Trove, BMI және ағымдық жұмыстарды тапсыру және олардың аяқталғаны туралы есеп беру үшін ортақ интерфейсті ұсынады. Ол сондай-ақ сұрауды жоспарлауды блоктамайтын жұмыс ретінде іске асырады, ол қандай сұраулар жүргізіліп жатқанын тіркейді және бір файл деректерімен бір мезгілде жұмыс істеуден туындайтын сәйкестік қателерін болдырмайды.
Табыс
Trove жергілікті серверде сақталған объектілерге I/O-ны басқарады. Trove деректер кеңістіктерінің жинақтауымен жұмыс істейді. Жинақтың өз дербес тұтқасы бар және ол PVFS файл жүйелерін іске асыруға қолданылады. Деректер кеңістігі PVFS объектісі болып табылады және өзінің бірегей (жинақ ішінде) тұтқасы бар және бір серверде сақталады. Орындаушылар конфигурация файлындағы кесте арқылы серверлерге сәйкестендіріледі. Дерек кеңістігі екі бөліктен тұрады: байт-тест ағыны және кілт/саны жұптарының жиынтығы. Байт-тест ағыны - бұл ұзындығы белгісіз байттар тізбегі және файл деректерін, әдетте жергілікті файл жүйесіндегі файлда сақтау үшін қолданылады. Кілт/саны жұптары метадеректерді, атрибуттарды және каталог жазуларын сақтау үшін қолданылады. Trove-дің жақсы анықталған интерфейсі бар және оны әртүрлі жолдармен іске асыруға болады. Бүгінгі күнге дейін жалғыз іске асыру болып табылады Trove dbfs іске асыру, бұл файлдар мен кілт / мән жұптары байт-тесті ағынын Беркли DB деректер базасында сақтайды. Трав операциялары бұғатталмайды, API әртүрлі компоненттерді оқу немесе жазу үшін пост функцияларын және тексеру немесе аяқталуын күту функцияларын ұсынады.