Кіріспе
Есептеудегі сабақтастықты қамтамасыз ету үшін ақпаратпен бөлісу Есептеудегі репликация сенімділікті, қатеге төзімділікті немесе қол жетімділікті жақсарту үшін бағдарламалық немесе аппараттық компоненттер сияқты артық ресурстар арасындағы сабақтастықты қамтамасыз ету үшін ақпаратты бөлісуді қамтиды.
Replication in computing involves sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault tolerance, or accessibility.
Деректер қорының көшірмесі
Деректер қорының репликациясы көптеген деректер қорын басқару жүйелерінде (ДББЖ) қолданылуы мүмкін, әдетте түпнұсқа мен көшірме арасындағы негізгі / реплика қатынасы болады. Бастапқы жүйе жаңартуларды тіркейді, содан кейін олар көшірмелерге таралады. Әрбір реплика жаңартуды сәтті қабылдағанын мәлімдейтін хабарлама шығарады, осылайша кейінгі жаңартуларды жіберуге мүмкіндік береді. Көп шеберлік репликация кезінде жаңартуларды кез келген деректер қорының тораптарына жіберуге болады, содан кейін басқа серверлерге таралады. Бұл көбінесе қажет, бірақ шығын мен күрделілікті арттырады, бұл кейбір жағдайларда оны практикалық емес етеді. Көп шеберлік репликациядағы ең көп кездесетін қиындық - транзакциялық қақтығыстардың алдын алу немесе шешу. Көптеген синхронды (немесе ынталы) репликация шешімдері қақтығыстардың алдын алуды орындайды, ал асинхронды (немесе жалқау) шешімдер қақтығыстардың шешімін орындауы керек. Мысалы, егер бір жазба екі түйінде бір мезгілде өзгертілсе, ынталы репликация жүйесі келісімді растамас бұрын қайшылықты байқайды және транзакциялардың бірін тоқтатады. Жалқау репликация жүйесі екі транзакцияға да келісім беруге және қайта синхрондау кезінде қақтығысты шешуді жүргізуге мүмкіндік береді. Мұндай қақтығысты шешу транзакцияның уақыт белгісіне, шығу түйіндерінің иерархиясына немесе барлық түйіндер бойынша біркелкі шешім қабылдайтын әлдеқайда күрделі логикаға негізделуі мүмкін. Деректер қорының репликациясы көлденең және тік масштабталғанда күрделірек болады. Көлденең масштабталғанда деректердің көшірмелері көбірек болады, ал тік масштабталғанда физикалық қашықтықта орналасқан деректердің көшірмелері болады. Көлденең масштабталғанда туындаған проблемаларды көп қабатты, көп көріністі қолжетімділік протоколымен жеңілдетуге болады. Вертикальды масштабтауға байланысты алғашқы проблемалар негізінен Интернет сенімділігі мен өнімділігін жақсарту арқылы шешілді. Деректер базасының серверлері арасында деректерді қайталайтын болса, ақпарат базалық жүйеде біркелкі болып қала береді және пайдаланушылар DBMS-те қай серверді қолданатынын айта алмайды немесе тіпті білмейді, онда жүйеде репликация ашықтығы болады. Алайда, репликацияның ашықтығына әрқашан қол жеткізу мүмкін емес. Деректер базасында қайталанғанда, олар CAP теоремасы немесе PACELC теоремасымен шектеледі. NoSQL қозғалысында, әдетте, деректердің тұрақтылығы басқа да қажетті қасиеттер үшін құрбан етіледі, мысалы, қол жетімділік (A), бөлініс толеранттылығы (P) және т.б. Қызмет көрсетушілер мен пайдаланушылар арасындағы қызмет көрсету деңгейі туралы келісім (SLA) ретінде қызмет ету үшін әртүрлі деректер сәйкестігі үлгілері әзірленді.
Дискідегі жадты көшіру
Активті (нақты уақыт) сақтау репликациясы әдетте бірнеше физикалық қатты дискілерге блок құрылғысының жаңартуларын тарату арқылы жүзеге асырылады. Осылайша, операциялық жүйе қолданатын кез келген файл жүйесін өзгертусіз қайталауға болады, өйткені файл жүйесі коды блок құрылғысының драйверлер деңгейінен жоғары деңгейде жұмыс істейді. Ол аппараттық (диск массивтік контроллерде) немесе бағдарламалық жасақтамада (құрылғы драйверінде) іске асырылады. Ең негізгі әдіс - диск айнасы, ол жергілікті қосылған дискілерге тән. Сақтау индустриясы анықтамалар мен сипаттамаларды шектейді, сондықтан айналау жергілікті (қысқа арақашықтық) операция болып табылады. Репликация компьютерлік желіде кеңейтіледі, сондықтан дискілер физикалық жағынан алыс жерлерде орналасуы мүмкін, ал негізгі / репликация деректер қорының репликация моделі әдетте қолданылады. Көшірудің мақсаты бір жерде болуы мүмкін ақаулар мен апаттардан болатын залалдың алдын алу немесе осындай оқиғалар орын алған жағдайда деректерді қалпына келтіру қабілетін жақсарту. Репликация үшін кідіріс негізгі фактор болып табылады, өйткені ол сайттардың қаншалықты алыста екенін немесе репликацияның түрін анықтайды. Мұндай сайттар аралық репликацияның басты ерекшелігі - жазу операциялары синхронды немесе синхронды репликация арқылы қалай орындалады; синхронды репликация кез келген жазу операциясында мақсат серверінің жауабын күтуі керек, ал асинхронды репликация олай емес. Синхронды репликация атомдық жазу операциялары арқылы "деректер жоғалтуды" кепілдендіреді, онда жазу операциясы жергілікті және қашықтағы сақтау арқылы танылмайынша толық болып саналмайды. Көптеген қолданбалар қосымша жұмыс істеуден бұрын жазу транзакциясының аяқталуын күтеді, сондықтан жалпы өнімділік айтарлықтай төмендейді. Әдетте, өнімділік қашықтыққа пропорционалды түрде төмендейді, өйткені ең аз күту уақыты жарық жылдамдығына байланысты. 10 км қашықтықта мүмкіндігінше жылдам оралып-қайту 67 мкм алады, ал жергілікті кэшке жазылған бүкіл жазу шамамен 1020 мкм-де аяқталады. Асинхронды репликация кезінде жазу операциясы оны жергілікті сақтау таныған кезде аяқталды деп саналады. Қашықтан сақтау кішкене кідіріспен жаңартылады. Жүру қабілеті айтарлықтай артты, бірақ жергілікті сақтау бұзылған жағдайда қашықтан сақтаудың деректердің ағымдағы көшірмесі болатыны кепілдендірілмейді (ең соңғы деректер жоғалуы мүмкін). Жартылай синхронды репликация әдетте жазу операциясы жергілікті сақтау арқылы танылғанда және қашықтағы сервер қабылдағанда немесе тіркегенде аяқталды деп есептейді. Шын мәнінде қашықтан жазу асинхронды түрде орындалады, нәтижесінде өнімділік жақсарады, бірақ қашықтан сақтау жергілікті сақтаудан артта қалады, сондықтан жергілікті сақтау сәтсіздікке ұшыраған жағдайда тұрақтылыққа (яғни, үздіксіз ашықтыққа) кепілдік жоқ. Уақыт репликациясы нүктесі бастапқы сақтау орнына қайталанатын мерзімді снэпшоттар шығарады. Бұл бүкіл көлемнің орнына өзгертілген деректерді ғана қайталауға арналған. Бұл әдісті қолдану арқылы аз ақпарат қайталанатындықтан, қайталау сүт-оптика желілерінің орнына iSCSI немесе T1 сияқты арзан жолақты байланыс желілерінде болуы мүмкін.
Қолданылу
Көптеген бөлінген файл жүйелері қатеге төзімділікті қамтамасыз ету және бір сәтсіздікке жол бермеу үшін репликацияны қолданады. Көптеген коммерциялық синхронды репликация жүйелері қашықтан репликация сәтсіз аяқталса немесе қосылымын жоғалтса тоңазытпайды, бұл деректер жоғалуына кепілдік береді, бірақ жергілікті жерде жұмыс істеуді жалғастырады, қалаған нөлдік қалпына келтіру нүктесін жоғалтады. Кең аймақтық желілерді (WAN) оңтайландыру әдістерін кідіріспен қойылған шектеулерді шешу үшін қолдануға болады.
Файлға негізделген репликация
Файлға негізделген репликация деректерді сақтау блогы деңгейінде емес, логикалық деңгейде (яғни жеке дерек файлдары) қайталайды. Мұны орындаудың көптеген түрлі жолдары бар, олар тек бағдарламалық қамтамасыз етуге ғана сүйенеді.
Жадтық драйверімен түсіру
Ядролық драйвер (айрықша сүзгі драйвері) файл жүйесі функцияларына қоңырау шалуды тұтқындау үшін, кез келген әрекетті пайда болған кезде түсіріп алу үшін пайдаланылуы мүмкін. Бұл технология вирусты тексерушілердің нақты уақытында қолданатын технологиясын пайдаланады. Бұл деңгейде логикалық файл операциялары файлдарды ашу, жазу, өшіру және т.б. сияқты түсіріледі. Ядролық драйвер осы командаларды басқа процеске, әдетте желі арқылы басқа машинаға жібереді, ол бастапқы машинаның жұмысын еліктейді. Блок деңгейіндегі сақтау репликациясы сияқты файл деңгейіндегі репликация да синхронды және асинхронды режимдерге мүмкіндік береді. Синхронды режимде бастапқы машинада жазу операциялары өткізіледі және мақсатты машина сәтті репликацияны мойындағанға дейін орындалуға рұқсат етілмейді. Синхронды режим файлдарды репликациялау өнімдерімен жиі кездеспейді, бірақ бірнеше шешім бар. Файл деңгейіндегі репликация шешімдері файлдың орналасуы мен түріне негізделген репликация туралы ақылға қонымды шешімдер қабылдауға мүмкіндік береді. Мысалы, уақытша файлдар немесе бизнес құндылығы жоқ файл жүйесінің бөліктері алынып тасталуы мүмкін. Берілетін деректер де түйіршікті болуы мүмкін; егер қосымша 100 байт жазса, толық диск блогының орнына тек 100 байт ғана жіберіледі (әдетте 4096 байт). Бұл бастапқы машинадан жіберілетін деректердің көлемін және мақсатты машинадағы сақтау жүктемесін айтарлықтай азайтады. Бұл бағдарламалық жасақтамамен жасалатын шешімнің кемшіліктері операциялық жүйе деңгейінде іске асыру мен техникалық қызмет көрсетуді талап етуді және машинаның өңдеу қуатына жүктемені арттыруды қамтиды.
Файл жүйесі журналын қайталау
Деректер қорының транзакция журналына ұқсас көптеген файл жүйелері өздерінің қызметін журналға жазу мүмкіндігіне ие. Журналды басқа машинаға мерзімді түрде немесе ағынды түрде нақты уақытта жіберуге болады. Реплика жағында журнал файл жүйесінің өзгерістерін қайтаруға пайдаланылуы мүмкін. Белгілі бір іске асырулардың бірі - 2005 жылы шығарылған Microsoft-тың System Center Data Protection Manager (DPM), ол мерзімді жаңартуларды орындайды, бірақ нақты уақыт репликациясын ұсынбайды.
Партиялық репликация
Бұл - бастапқы және мақсатты файл жүйелерін салыстыру және мақсаттың бастапқымен сәйкес келуін қамтамасыз ету процесі. Ең бастысы, мұндай шешімдер әдетте тегін немесе арзан. Оның кемшілігі - оларды синхрондау процесі жүйеге өте көп қажет етеді, сондықтан бұл процесс әдетте сирек жүреді. Ерекшеліктерінің бірі rsync.
Файл ішінде қайталау
Беттеу операциялық жүйесінде беттер кейде айналымдық кідіріс уақытын азайту үшін жол ішінде қайталанады. IBM-дің VSAM-інде индекс деректері кейде айналымдық кідіріс уақытын азайту үшін жол ішінде қайталанады.
Бөлінген ортақ жад репликациясы
Репликацияны пайдаланудың тағы бір мысалы - жүйедегі көптеген түйіндер бір жады бетін бөлісетін ортақ жады жүйелерінде пайда болады. Бұл әдетте әрбір түйіннің осы беттің жеке көшірмесі (көшірмесі) бар дегенді білдіреді.
Бастапқы резервтік көшірме және көп негізгі репликация
Көбейтуге арналған көптеген классикалық тәсілдер бір құрылғы немесе процесс бір немесе бірнеше басқа процестерді немесе құрылғыларды біржақты бақылайтын негізгі резервтік модельге негізделген. Мысалы, негізгі кейбір есептеулерді орындауы мүмкін, жаңартулар журналын резервтік (кезек) процеске ағызады, содан кейін негізгі сәтсіздікке ұшыраса, ол өз жұмысын жалғастыра алады. Бұл тәсіл деректер қорын қайталау үшін жиі қолданылады, егер қате кезінде журналдың бір бөлігі жоғалса, резервтік көшірме бастапқымен бірдей күйде болмауы мүмкін, содан кейін транзакциялар жоғалуы мүмкін. Бастапқы сақтық көшірме схемаларының әлсіздігі - олардың тек біреуі ғана операцияларды орындайды. Қатеге төзімділік пайда болады, бірақ бірдей резервтік жүйе шығындарды екі есе көбейтеді. Осы себепті 1985 жылдан бастап, үлестірілген жүйелерді зерттеу қауымдастығы деректерді қайталаудың баламалы әдістерін зерттей бастады. Бұл жұмыстың нәтижесі репликалар тобының бірлесіп жұмыс істейтін схемалардың пайда болуы болды, әр процесс резервтік көшірме ретінде жұмыс істейді, сонымен қатар жұмыс жүктемесінің бір бөлігін басқарады. Компьютерлік ғалым Джим Грей транзакциялық модель бойынша көп негізгі репликация схемаларын талдады және "Репликацияның қауіптілігі және шешімі" деген әдіске күмәнмен қараған кеңінен келтірілген мақала жариялады. Ол деректер қандай да бір табиғи жолмен бөлінбесе, деректер базасын n n ажыратылған қосалқы деректер базасы ретінде қарастыруға болады деп, қатарлас бақылау қақтығыстары өнімділікті нашарлатады және репликалар тобы n функциясы ретінде баяулайды деп дәлелдеді. Грей ең көп таралған тәсілдер O ((n3) сияқты масштабтағы деградацияға әкелуі мүмкін деп болжады. Оның шешімі, яғни деректерді бөлу, деректердің табиғи бөлу кілті бар жағдайларда ғана тиімді. 1985-1987 жылдары виртуалды синхрондық модель кеңінен қабылданған стандарт ретінде ұсынылды (ол Isis Toolkit, Horus, Transis, Ensemble, Totem, Spread, C Ensemble, Phoenix және Quicksilver жүйелерінде қолданылды және CORBA қатеге төзімді есептеу стандартының негізі болып табылады). Виртуалды синхрондылық бірнеше негізгі тәсілге мүмкіндік береді, онда процестер тобы сұрауды өңдеудің кейбір аспектілерін қатарластыру үшін ынтымақтасады. Схеманы тек кейбір формадағы жадтағы деректер үшін пайдалануға болады, бірақ топтың көлемінде сызықтық жылдамдықты қамтамасыз ете алады. Осыған ұқсас бағдарламаларды көптеген заманауи өнімдер қолдайды. Мысалы, Spread Toolkit осы виртуалды синхрондық модельді қолдайды және оны көп негізгі репликация схемасын іске асыруға пайдалануға болады; сондай-ақ C Ensemble немесе Quicksilver-ті осылай пайдалануға болады. WANdisco желідегі әрбір түйін дәл көшірме немесе реплика болып табылатын белсенді репликацияға рұқсат береді және сондықтан желідегі әрбір түйін бір уақытта белсенді болады; бұл схема кең аймақтық желіде (WAN) пайдалану үшін оңтайландырылған. Қазіргі заманғы көп негізгі репликация протоколдары жалпы ақаусыз жұмыс істеу үшін оңтайландырылады. Тізбекті репликация - осындай протоколдардың танымал отбасы. Желілік репликацияның соңғы протокол нұсқалары репликацияларды жазу үшін тізбекке орналастыру арқылы жоғары өнімділік пен берік тұрақтылықты ұсынады. Бұл тәсіл барлық реплика түйіндерінде жергілікті оқуды қамтамасыз етеді, бірақ бірнеше түйіндерді бірізді түрде өтуге тиіс жазулар үшін жоғары күту уақыты бар. Көптеген бастапқы протокол Hermes кэшке сәйкес келетін инвалидацияларды және логикалық уақыт белгілерін біріктіреді, бұл барлық репликалардан жергілікті оқулар мен жоғары өнімді жазулармен берік сәйкестікке қол жеткізуге мүмкіндік береді. Қатесіз жұмыс кезінде оның эфирлік негізде жазылған жазбалары қайшылықсыз және реплика тораптарына тек бір репликалық сапардан кейін ғана орындалады. Бұл дизайн жоғары өнімділік пен оқу мен жазу үшін төмен күту уақытын береді.