Кіріспе

Есептеу жүйелеріне қатеге төзімділікті қосу тәсілі

Тексеру нүктесі – есептеу жүйелеріне қатеге төзімділікті қамтамасыз ететін тәсіл. Ол негізінен қолданбаның күйінің суретін сақтаудан тұрады, осылайша қолданбалар сәтсіздік жағдайында сол жерден қайта бастауға мүмкіндік алады. Бұл, әсіресе, қатеге ұшырау мүмкіндігі жоғары есептеу жүйелерінде ұзақ уақыт жұмыс істейтін қолданбалар үшін маңызды.

Бөлінген жүйелердегі бақылау пункттері

Бөлінген есептеу ортасында, бақылау нүктесі – бұл басқа жағдайда ұзақ уақыт жұмыс істейтін қолданбаны басынан бастап қайта іске қосуға мәжбүр ететін қателерге төзімділік танытуға көмектесетін техника. Бақылау нүктесін іске асырудың ең қарапайым жолы – қолданбаны тоқтату, қажетті барлық деректерді жадтан сенімді сақтау құрылғысына көшіру (мысалы, параллель файлдық жүйе) және одан әрі орындауды жалғастыру. Егер қате туындаса, қолданбаны қайта іске қосу кезінде оны бастапқы күйден қайтадан іске қосудың қажеті жоқ. Керісінше, ол тұрақты сақтаудан соңғы күйін (“бақылау нүктесін”) оқып, сол күйден орындауды бастайды. Бөлінген есептеу жүйелерінде бақылау нүктесі I/O жұмыс жүктемесінің басым бөлігі болып табыла ма, жоқ па деген мәселе бойынша пікірталас жалғасуда, бірақ бақылау нүктесінің I/O жұмыс жүктемесінің маңызды бөлігі екендігіне қатысты жалпы консенсус бар. Бөлінген есептеу жүйелерінде бақылау нүктесін орнатудың екі негізгі тәсілі бар: үйлестірілген бақылау нүктесі және үйлестірілмеген бақылау нүктесі. Үйлестірілген бақылау нүктесі тәсілінде процестер өз бақылау нүктелерінің дұрыс екеніне көз жеткізуі керек. Бұл әдетте екі кезеңді міндеттеме протоколының алгоритмі арқылы жүзеге асырылады. Үйлестірілмеген бақылау нүктесінде әрбір процесс өз күйін тәуелсіз түрде бақылайды. Процестерді белгілі бір уақыт интервалдарында күйін бақылауға мәжбүрлеу ғана жаһандық дұрыстықты қамтамасыз ету үшін жеткіліксіз екенін атап өту қажет. Дұрыс күйді орнату қажеттілігі (яғни, жоғалған немесе қайталанған хабарламалардың болмауы) басқа процестерді өз бақылау нүктелеріне кері қайтаруға мәжбүрлеуі мүмкін, бұл өз кезегінде басқа процестерді тіпті ертерек бақылау нүктелеріне кері қайтаруға әкелуі мүмкін. Ең нашар жағдайда, табылған жалғыз дұрыс күй бастапқы күй болуы мүмкін (бұл домино эффектісі деп аталады).

Сақтау мемлекет

Қолданбаларды бақылаудың бастапқы және қазіргі кездегі ең көп таралған тәсілдерінің бірі – интерактивті қолданбалардағы "күйді сақтау" мүмкіндігі болды. Онда қолданба пайдаланушысы барлық айнымалылардың және басқа да деректердің күйін сақтау құрылғысына, оны пайдаланып жатқан сәтте сақтап, жұмысты жалғастыра немесе қолданбадан шығып, кейінрек қайта іске қосып, сақталған күйді қалпына келтіре алатын еді. Бұл қолданбадағы "сақтау" командасы немесе мәзір таңдауы арқылы іске асырылды. Көп жағдайда қолданбадан шығар алдында сақталмаған жұмысы бар екенін және оны сақтауды қалайтынын пайдаланушыдан сұрау стандартты тәжірибеге айналды. Мұндай мүмкіндік бір отырыста аяқтау мүмкін емес жұмыстар үшін (мысалы, ондаған сағатқа созылатын бейне ойын ойнау немесе жүздеген немесе мыңдаған беттен тұратын кітап немесе ұзақ құжат жазу) немесе ұзақ уақыт бойы жүргізілетін жұмыстар үшін (мысалы, электрондық кестедегі қатарлар сияқты құжаттарға деректерді енгізу) қолданушылар үшін өте маңызды болды. "Күйді сақтаудың" мәселесі – бағдарлама операторының сақтауды қалауын күтуде. Автоматтандырылған немесе пакеттік өңдеуге түсетін жұмыс жүктемелері сияқты интерактивті емес бағдарламалар үшін, мұндай қолданбаларды бақылау мүмкіндігі де автоматтандырылуы тиіс еді.

Бақылау нүктесі/қайта іске қосу

Көлемдік қолданбалар ондағаннан жүз мыңдарға дейін транзакцияларды өңдеуге кіріскенде, әр транзакция бір файлдан бірнеше файлға қарсы бір жазбаны өңдейтін болғандықтан, қосымшаны бүкіл жұмысты бастапқыдан қайта іске қосу қажеттілігі болмайынша, белгілі бір сәтте қайта іске қосу мүмкіндігі аса маңызды болды. Осылайша "тексеру нүктесі/қайта іске қосу" мүмкіндігі пайда болды, онда бірқатар транзакциялар өңделгеннен кейін қосымшаның күйінің "суреті" немесе "тексеру нүктесі" сақталады. Егер келесі тексеру нүктесінен бұрын қосымша жұмысын тоқтатса, оны тексеру нүктесінің ақпараты және транзакция файлындағы соңғы сәтті аяқталған транзакция орны арқылы қайта іске қосуға болады. Содан кейін қосымша сол жерден қайта басталады. Тексеру нүктесі жасау әдетте қымбатқа түседі, сондықтан оны әр жазба үшін жасамайды, бірақ тексеру нүктесінің құны мен жазбалардың партиясын қайта өңдеуге қажетті компьютер уақыты арасындағы орынды шарттылықты ескереді. Осылайша, әр тексеру нүктесі үшін өңделетін жазбалардың саны 25-тен 200-ге дейін болуы мүмкін, бұл шығындар факторларына, қосымшаның күрделілігіне және қосымшаны сәтті қайта іске қосуға қажетті ресурстарға байланысты.

Қатеге төзімділік интерфейсі (FTI)

FTI – есептеу ғылымымен айналысатын мамандарға масштабталатын түрде бақылау-қайта іске қосуды оңай жүзеге асыруға мүмкіндік беретін кітапхана. FTI сенімділік пен өнімділіктің әртүрлі деңгейлерін қамтамасыз ету үшін жергілікті сақтауды, сондай-ақ бірнеше көшірме жасау және деректерді жою әдістерін пайдаланады. FTI қолданба деңгейінде бақылау нүктесін жасау мүмкіндігін ұсынады, бұл пайдаланушыларға тиімділікті арттыру және орын, уақыт және энергияны ысырап етуді болдырмау үшін қорғалатын деректерді таңдауға болады. Ол тікелей деректер интерфейсін ұсынады, сондықтан пайдаланушылар файлдар мен/немесе каталогтар атауларымен айналысу қажеттілігінен босатылады. Барлық метадеректерді FTI пайдаланушы үшін көрінбейтін түрде басқарады. Қажет болған жағдайда, пайдаланушылар қатеге төзімділік жүктемесі мен ғылыми есептеулерді үйлестіру үшін түйінге бір процесті бөліп, бақылау нүктесінен кейінгі тапсырмаларды асинхронды түрде орындауға мүмкіндік алады.

Беркли лабораториясының бақылау-қайта іске қосу пункті (БККК)

Лоуренс ұлттық зертханасындағы Болашақ технологиялар тобы BLCR деп аталатын бақылау нүктесі/қайта іске қосудың гибридті ядролық/пайдаланушылық іске асыруын әзірлеп жатыр. Олардың мақсаты – қолданба кодтарына өзгерістер енгізуді қажет етпей, кең ауқымды қолданбаларды бақылау нүктесінен сақтауға және қайта іске қосуға мүмкіндік беретін сенімді, өндірістік сападағы жүйені құру. BLCR MPI арқылы байланысатын параллель қолданбаларды бақылау нүктесінен сақтауға және SciDAC Scalable Systems Software ISIC өндірген бағдарламалық қамтамасымен үйлесімді болуға баса назар береді. Жұмысы 4 негізгі бағытқа бөлінген: Linux (CR) үшін бақылау нүктесі/қайта іске қосу, бақылау нүктесінен сақтауға болатын MPI кітапханалары, бақылау нүктесі/қайта іске қосу ресурстарын басқару интерфейсі және процестерді басқару интерфейстерін әзірлеу.

DMTCP

DMTCP (Distributed MultiThreaded Checkpointing) – көптеген машиналарға таратылған және сокеттер арқылы байланысқан кез келген бағдарламалар тобының күйін ашық түрде сақтау құралы. Ол пайдаланушы бағдарламасын немесе операциялық жүйені өзгерте алмайды. DMTCP қолдайтын қосымшалардың ішінде Open MPI, Python, Perl және көптеген бағдарламалау тілдері мен қабықшалық скрипттер тілдері бар. TightVNC пайдаланып, ол кеңейтімдерді қолданбаған жағдайда (мысалы, OpenGL немесе бейне болмағанда) X Window бағдарламаларын сақтап, қайта іске қоса алады. DMTCP қолдайтын Linux мүмкіндіктерінің қатарында ашық файл дескрипторлары, құбырлар, сокеттер, сигналдарды өңдеушілер, процесс идентификаторы және жіп идентификаторының виртуализациясы (қайта іске қосылғанда ескі pid-тер мен tid-тер жұмыс істеуін қамтамасыз ету), pty-лер, fifo-лар, процесс тобы идентификаторлары, сессия идентификаторлары, терминал атрибуттары және mmap/mprotect (mmap негізіндегі ортақ жадты қоса алғанда) кіреді. DMTCP InfiniBand үшін OFED API-ді тәжірибелік режимде қолдайды.

Бірлескен бақылау пункттері

Кейбір соңғы протоколдар бақылау нүктесінің фрагменттерін жақын орналасқан түйіндерде сақтау арқылы бірлесіп бақылау нүктесін жүзеге асырады. Бұл пайдалы, себебі ол параллель файлдық жүйеге сақтау шығындарын тудырмайды (ол көбінесе үлкен жүйелер үшін шектеуші факторға айналады) және жақын жердегі жадты пайдаланады. Бұл әсіресе кең ауқымды суперкомпьютерлік кластерлерде қолданыс тапқан. Ең қиын мәселе – ақаулықтан қалпына келтіру кезінде бақылау нүктесі қажет болғанда, бақылау нүктесінің фрагменттерін сақтаған жақын түйіндердің қолжетімді болуын қамтамасыз ету.

Докер

Докер және оның негізгі технологиясы тексеру нүктесі мен қалпына келтіру механизмін қамтиды.

CRIU

CRIU – пайдаланушы кеңістігіндегі тіркеу кітапханасы.

Еске алу

Mementos – электр қуатының үзілуі сияқты жиі үзілістерге ұшырайтын платформалар үшін жалпы мақсаттағы тапсырмаларды үзіліске ұшырауға болатын бағдарламаларға түрлендіретін бағдарламалық жүйе. Ол, қоршаған ортадан энергия жинауға сүйенетін RFID тегтері және смарт-карталар сияқты батареясыз кіріктірілген құрылғылар үшін әзірленген. Mementos жүйедегі қолжетімді энергияны үнемі бақылайды және күтілетін қуат жоғалуына қарсы бағдарламаның жай-күйін сақтау қажеттігіне, немесе есептеуді жалғастыруға шешім қабылдайды. Егер жай-күй сақталса, деректер бұрынғы жадта сақталады. Энергия қайта іске қосу үшін жеткілікті болғанда, деректер бұрынғы жадтан алынып, бағдарлама сақталған жай-күйінен жалғасады. Mementos микробасқарушылардың MSP430 отбасысында іске асырылған. Mementos атауы Кристофер Ноланның "Memento" фильмінен алынған.

Идетикалық

Idetic – қолданбаға арналған интегралды схемаларды (ASIC) әзірлеушілерге жобаларына автоматты түрде бақылау нүктелерін енгізуге көмектесетін автоматты құралдар жиынтығы. Ол жоғары деңгейдегі синтез құралдарын қолдайды және тіркелімдік алмасу деңгейінде (Verilog коды) бақылау нүктелерін қосады. Жобаның күй машинасының аздағы жүктемелі нүктелерін анықтау үшін динамикалық бағдарламалау тәсілін пайдаланады. Аппараттық деңгейде бақылау нүктелерін енгізу үшін тәуелді тіркелімдердің деректері тұрақталмайтын жадқа жіберілуі керек болғандықтан, ең қолайлы нүктелерде сақтау үшін ең аз тіркелімдер болуы тиіс. Idetic энергия жинақтайтын RFID тег құрылғысында қолданылып, бағаланған.