Кіріспе
Linux үшін үлестірілген көшірмелі сақтау жүйесі (DRBD) – Linux платформасы үшін арналған үлестірілген көшірмелі сақтау жүйесі. Ол ядро драйвері, бірнеше пайдаланушы кеңістігінің басқару бағдарламалары және бірқатар қабықша скрипттері түрінде жүзеге асырылады. DRBD дәстүрлі түрде жоғары қолжетімділік (HA) компьютер кластерлерінде қолданылып келген, бірақ DRBD 9 нұсқасынан бастап, бұлтты интеграцияға баса назар аудара отырып, ірі бағдарламалық қамтамасыз етумен анықталатын сақтау қоймаларын құру үшін де пайдаланылуы мүмкін. DRBD құрылғысы – логикалық томдық схемадағы логикалық блок құрылғысына сілтеме жасайтын DRBD блок құрылғысы. DRBD бағдарламалық жасақтамасы GNU General Public License нұсқасы 2 шарттарымен таратылатын тегін бағдарламалық жасақтама болып табылады. DRBD Lisog ашық кодтық жиынтық бастамасының бір бөлігі.
Distributed Replicated Block Device (DRBD) is a distributed replicated storage system for the Linux platform. It is implemented as a kernel driver, several userspace management applications, and some shell scripts. DRBD is traditionally used in high availability (HA) computer clusters, but beginning with DRBD version 9, it can also be used to create larger software defined storage pools with a focus on cloud integration. A DRBD device is a DRBD block device that refers to a logical block device in a logical volume schema. The DRBD software is free software released under the terms of the GNU General Public License version 2. DRBD is part of the Lisog open source stack initiative.
Жұмыс істеу тәртібі
DRBD логикалық блок құрылғыларын (әдетте /dev/drbdX деп аталады, мұнда X – құрылғының кіші нөмірі) қатысушы кластер тораптарындағы қолданыстағы жергілікті блок құрылғыларының үстіне орналастырады. Басты торапқа жазылған деректер төменгі деңгейдегі блок құрылғысына жіберіліп, бірден екінші торапқа(тарға) таратылады. Екінші торап(тар) деректерді тиісті төменгі деңгейдегі блок құрылғысына жібереді. Оқу I/O операциялары жергілікті түрде орындалады, егер оқу теңгерімдеуі конфигурацияланбаса. Басты торап істен шыққан жағдайда, кластерді басқару процесі екінші торапты басты торапқа көтереді. Бұл өту кезінде DRBD-ге орналасқан файлдық жүйенің тұтастығын файлдық жүйені тексеру немесе журналды қайта ойнату арқылы қосымша тексеру қажет болуы мүмкін. Бұрынғы басты торап қайта іске қосылғанда, жүйе құрылғы деректерін қайта синхрондағаннан кейін оны қайтадан басты деңгейге көтеруі мүмкін (немесе көтермейді). DRBD-ның синхрондау алгоритмі тиімді, себебі құрылғыны толығымен емес, тек істен шығу кезінде өзгертілген блоктарды ғана қайта синхрондау қажет. DRBD көбінесе Pacemaker немесе Heartbeat кластерлік ресурстар менеджерлерімен бірге қолданылады, бірақ ол басқа кластерлік басқару жүйелерімен де үйлеседі. Ол Xen сияқты виртуализация шешімдерімен үйлеседі және Linux LVM стегінің астында да, үстінде де қолданылуы мүмкін. DRBD жүктемені теңдестіру конфигурацияларын қолдайды, бұл екі торапқа да белгілі бір DRBD құрылғысына ортақ сақтау семантикасымен оқу/жазу режимінде қол жеткізуге мүмкіндік береді. Бірнеше басты (бірнеше оқу/жазу тораптары) конфигурациясы үшін таратылған құлып менеджерін пайдалану қажет. 2018 жылдан бері DRBD блоктық сақтауды басқару бағдарламалық жасақтамасы LINSTOR-да әртүрлі тораптар арасында көшіру үшін және пайдаланушылар мен қосымшаларға блоктық сақтау құрылғыларын ұсыну үшін де пайдаланылуы мүмкін.
Ортақ кластерлік сақтауды салыстыру
Көптеген компьютерлік кластерлік жүйелер кластерлік ресурстар қолданатын деректер үшін ортақ сақтауды пайдаланады. Бұл тәсілдің бірнеше кемшіліктері бар, оларды DRBD азайтуға көмектеседі: Ортақ сақтау ресурстарына әдетте сақтау аймағы желісі немесе желіге қосылған сақтау сервері арқылы қол жеткізу қажет, бұл оқу I/O операцияларында қосымша шығындар тудырады. DRBD-де барлық оқу операциялары жергілікті түрде орындалғандықтан, бұл қосымша шығындар азаяды. Ортақ сақтау көбінесе қымбатқа соғады және көп орын (2U және одан да көп) мен қуатты қажет етеді. DRBD тек 2 машинамен жоғары қолжетімділік (HA) конфигурациясын құруға мүмкіндік береді. Ортақ сақтау міндетті түрде жоғары қолжетімділікке ие болмайды. Мысалы, бірнеше виртуализациялық хосттар қол жеткізетін бір сақтау аймағы желісі ортақ сақтау болып есептеледі, бірақ егер сол желі істен шықса, сақтау деңгейінде жоғары қолжетімділік қамтамасыз етілмейді, нәтижесінде кластердегі ешбір хост ортақ сақтауға қол жеткізе алмайды. DRBD ортақ және жоғары қолжетімді сақтау мақсатына қол жеткізуге мүмкіндік береді. Бір кемшілігі – деректерді басқа түйін арқылы бағыттап жіберуге қарағанда, ортақ сақтау құрылғысына тікелей жазуға аз уақыт талап етіледі.
Shared storage resources must typically be accessed over a storage area network or on a network attached storage server, which creates some overhead in read I/O. In DRBD that overhead is reduced as all read operations are carried out locally. Shared storage is usually expensive and consumes more space (2U and more) and power. DRBD allows for an HA setup with only 2 machines. Shared storage is not necessarily highly available. For example, a single storage area network accessed by multiple virtualization hosts is considered shared storage, but is not considered highly available at the storage level if that single storage area network fails, neither host within the cluster can access the shared storage. DRBD allows for a storage target that is both shared and highly available. A disadvantage is the lower time required to write directly to a shared storage device than to route the write through the other node.
RAID-1мен салыстыру
DRBD, RAID 1-ге сырттай ұқсас, себебі ол екі сақтау құрылғысында деректердің көшірмесін сақтайды, сол себепті біреуі істен шықса, екіншісіндегі деректерді пайдалануға болады. Дегенмен, ол RAID-тен және тіпті желілік RAID-тен өте әртүрлі жұмыс істейді. RAID-де артық көшірмелер сақтауды пайдаланатын бағдарламаға көрінбейтін деңгейде болады. Екі сақтау құрылғысы болғанымен, бағдарламаның тек бір ғана данасы бар және бағдарлама бірнеше көшірме бар екенін білмейді. Бағдарлама деректерді оқығанда, RAID деңгейі оқу үшін сақтау құрылғысын таңдайды. Сақтау құрылғысы істен шыққанда, RAID деңгейі екінші құрылғыдан оқиды, ал бағдарламаның данасы бұл ақаулықтан хабарсыз болады. Ал DRBD-де бағдарламаның екі данасы бар, және олардың әрқайсысы екі сақтау құрылғысының тек біреуінен ғана дерек оқи алады. Егер бір сақтау құрылғысы істен шықса, сол құрылғыға байланысты бағдарламаның данасы деректерді оқи алмайды. Осының салдарынан, ол бағдарламаның данасы тоқтатылады, ал деректердің сақталған көшірмесіне байланысты басқа бағдарламаның данасы жұмысты өз мойнына алады. Керісінше, RAID-де егер жалғыз бағдарламаның данасы істен шықса, екі сақтау құрылғысындағы ақпарат тиімсіз болып қалады, бірақ DRBD-де басқа бағдарламаның данасы оны өз үзіндісіне алады.
Linux ядросына кіру
DRBD авторлары бағдарламалық құралды 2007 жылдың шілдесінде Linux ядросы қауымдастығына, ресми Linux ядросының org нұсқасына енгізу мүмкіндігін қарастыру үшін ұсынды. Ұзақ қарастырудан және бірнеше талқылаулардан кейін Линус Торвальдс DRBD-ді ресми Linux ядросының құрамына қосуға келісті. DRBD 2009 жылдың 8 желтоқсанында Linux ядросының 2.6.33 нұсқасы үшін ашық терезе кезеңінде біріктірілді.