दो CentOS 7 सर्वर पर स्टोरेज को दोहराने के लिए DRBD को कैसे सेटअप करें


DRBD (लिनक्स के लिए वितरित वितरित प्रतिकृति ब्लॉक डिवाइस ) एक वितरित, लचीला और बहुमुखी प्रतिकृति भंडारण समाधान है। यह ब्लॉक डिवाइसेस के कंटेंट जैसे हार्ड डिस्क, पार्टीशन, लॉजिकल वॉल्यूम आदि को सर्वर के बीच में मिरर करता है। इसमें दो स्टोरेज डिवाइस पर डेटा की एक कॉपी शामिल है, जैसे कि यदि कोई विफल रहता है, तो दूसरे पर डेटा का उपयोग किया जा सकता है।

आप इसे कुछ हद तक एक नेटवर्क की तरह सोच सकते हैं RAID 1 कॉन्फ़िगरेशन सर्वरों पर प्रतिबिंबित के साथ। हालांकि, यह RAID और यहां तककि नेटवर्क RAID से बहुत अलग तरीके से संचालित होता है।

मूल रूप से, DRBD का उपयोग मुख्य रूप से उच्च उपलब्धता (HA) कंप्यूटर क्लस्टर में किया गया था, हालांकि, संस्करण 9 से शुरू होकर, इसका उपयोग क्लाउड स्टोरेज समाधान को तैनात करने के लिए किया जा सकता है।

इस लेख में, हम यह दिखाएंगे कि कैसे DROS को CentOS में स्थापित किया जाए और दो सर्वरों पर स्टोरेज (पार्टीशन) को दोहराने के लिए इसका उपयोग कैसे करें। लिनक्स में DRBD का उपयोग करके अपनी शुरुआत करने के लिए यह सही लेख है।

इस लेख के उद्देश्य के लिए, हम इस सेटअप के लिए दो नोड क्लस्टर का उपयोग कर रहे हैं।

  • Node1: 192.168.56.101 – tecmint.tecmint.lan
  • Node2: 192.168.10.102 – server1.tecmint.lan

चरण 1: डीआरबीडी पैकेज स्थापित करना

DRBD लिनक्स कर्नेल मॉड्यूल के रूप में कार्यान्वित किया जाता है। यह वर्चुअल ब्लॉक डिवाइस के लिए एक ड्राइवर का गठन करता है, इसलिए यह सिस्टम के I/O स्टैक के निचले भाग के पास स्थापित होता है।

DRBD ELRepo या EPEL रिपॉजिटरी से स्थापित किया जा सकता है। ELRepo पैकेज साइनिंग कुंजी आयात करके शुरू करें, और दोनों नोड्स पर दिखाए अनुसार रिपॉजिटरी को सक्षम करें।

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

फिर हम चलाकर दोनों नोड्स पर DRBD कर्नेल मॉड्यूल और उपयोगिताओं को स्थापित कर सकते हैं:

# yum install -y kmod-drbd84 drbd84-utils

यदि आपके पास SELinux सक्षम है, तो आपको SELBux नियंत्रण से DRBD प्रक्रियाओं को छूट देने के लिए नीतियों को संशोधित करने की आवश्यकता है।

# semanage permissive -a drbd_t

इसके अलावा, यदि आपके सिस्टम में फ़ायरवॉल सक्षम है (फ़ायरवॉल), तो आपको फ़ायरवॉल में DRBD पोर्ट 7789 जोड़ने की आवश्यकता है ताकि दोनों नोड्स के बीच डेटा के सिंक्रनाइज़ेशन की अनुमति मिल सके।

इन आदेशों को पहले नोड पर चलाएँ:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4"  source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

फिर दूसरे नोड पर ये कमांड चलाएं:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

चरण 2: निचले स्तर के भंडारण की तैयारी

अब हमारे पास दो क्लस्टर नोड्स पर DRBD स्थापित है, हमें दोनों नोड्स पर लगभग एक समान आकार का भंडारण क्षेत्र तैयार करना होगा। यह एक हार्ड ड्राइव विभाजन (या पूर्ण भौतिक हार्ड ड्राइव), एक सॉफ्टवेयर RAID डिवाइस, एक LVM लॉजिकल वॉल्यूम या आपके सिस्टम पर पाया गया कोई अन्य ब्लॉक डिवाइस प्रकार हो सकता है।

इस लेख के उद्देश्य के लिए, हम dd कमांड का उपयोग करके आकार का एक डमी ब्लॉक डिवाइस 2GB बनाएंगे।

 
# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024

हम मान लेंगे कि यह एक अप्रयुक्त विभाजन है (/dev/sdb1 ) दोनों नोड्स से जुड़े दूसरे ब्लॉक डिवाइस (/dev/sdb ) पर।

चरण 3: DRBD को कॉन्फ़िगर करना

DRBD की मुख्य कॉन्फ़िगरेशन फ़ाइल /etc/drbd.conf पर स्थित है और अतिरिक्त कॉन्फ़िगरेशन फ़ाइलें /etc/drbd.d निर्देशिका में मिल सकती हैं।

संग्रहण को दोहराने के लिए, हमें /etc/drbd.d/global_common.conf फ़ाइल में आवश्यक कॉन्फ़िगरेशन जोड़ना होगा जिसमें DRBD कॉन्फ़िगरेशन के वैश्विक और सामान्य खंड शामिल हैं और हम में संसाधनों को परिभाषित कर सकते हैं। > .res फ़ाइलें।

चलिए दोनों नोड्स पर मूल फ़ाइल का बैकअप बनाते हैं, फिर संपादन के लिए एक नई फ़ाइल खोलें (अपनी पसंद के पाठ संपादक का उपयोग करें)।

# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf 

दोनों फ़ाइलों में निम्न पंक्तियाँ जोड़ें:

global {
 usage-count  yes;
}
common {
 net {
  protocol C;
 }
}

फ़ाइल सहेजें, और उसके बाद संपादक को बंद करें।

आइए संक्षेप में लाइन प्रोटोकॉल C पर अधिक प्रकाश डालें। DRBD तीन अलग-अलग प्रतिकृति मोड का समर्थन करता है (इस प्रकार प्रतिकृति तुल्यकालन के तीन डिग्री) जो हैं:

  • protocol A: Asynchronous replication protocol; it’s most often used in long distance replication scenarios.
  • protocol B: Semi-synchronous replication protocol aka Memory synchronous protocol.
  • protocol C: commonly used for nodes in short distanced networks; it’s by far, the most commonly used replication protocol in DRBD setups.

लाल

चरण 4: एक संसाधन जोड़ना

एक संसाधन सामूहिक शब्द है जो किसी विशेष प्रतिकृति डेटा सेट के सभी पहलुओं को संदर्भित करता है। हम अपने संसाधन को /etc/drbd.d/test.res नामक फ़ाइल में परिभाषित करेंगे।

फ़ाइल में निम्न सामग्री जोड़ें, दोनों नोड्स पर (अपने पर्यावरण के लिए वास्तविक मूल्यों के साथ सामग्री में चर को बदलने के लिए याद रखें)।

होस्टनाम पर ध्यान दें, हमें नेटवर्क होस्टनाम निर्दिष्ट करने की आवश्यकता है जिसे कमांड uname -n चलाकर प्राप्त किया जा सकता है।

resource test {
        on tecmint.tecmint.lan {
 		device /dev/drbd0;
       		disk /dev/sdb1;
        		meta-disk internal;	
                	address 192.168.56.101:7789;
        }
        on server1.tecmint.lan  {
		device /dev/drbd0;
        		disk /dev/sdb1;
        		meta-disk internal;
                	address 192.168.56.102:7789;
        }
}
}

कहा पे:

  • on hostname: the on section states which host the enclosed configuration statements apply to.
  • test: is the name of the new resource.
  • device /dev/drbd0: specifies the new virtual block device managed by DRBD.
  • disk /dev/sdb1: is the block device partition which is the backing device for the DRBD device.
  • meta-disk: Defines where DRBD stores its metadata. Using Internal means that DRBD stores its meta data on the same physical lower-level device as the actual production data.
  • address: specifies the IP address and port number of the respective node.

यह भी ध्यान दें कि यदि विकल्पों में दोनों मेजबानों पर समान मूल्य हैं, तो आप उन्हें सीधे संसाधन अनुभाग में निर्दिष्ट कर सकते हैं।

उदाहरण के लिए उपरोक्त विन्यास का पुनर्गठन किया जा सकता है:

resource test {
	device /dev/drbd0;
	disk /dev/sdb1;
        	meta-disk internal;	
        	on tecmint.tecmint.lan {
 		address 192.168.56.101:7789;
        	}
        	on server1.tecmint.lan  {
		address 192.168.56.102:7789;
        		}
}

चरण 4: संसाधन शुरू करना और सक्षम करना

DRBD के साथ बातचीत करने के लिए, हम निम्नलिखित प्रशासन उपकरणों का उपयोग करेंगे, जो DRBD संसाधनों को कॉन्फ़िगर और प्रशासित करने के लिए कर्नेल मॉड्यूल के साथ संवाद करते हैं:

  • drbdadm: a high-level administration tool of the DRBD.
  • drbdsetup: a lower-level administration tool for to attach DRBD devices with their backing block devices, to set up DRBD device pairs to mirror their backing block devices, and to inspect the configuration of running DRBD devices.
  • Drbdmeta:is the meta data management tool.

सभी प्रारंभिक संसाधन कॉन्फ़िगरेशन जोड़ने के बाद, हमें संसाधन को दोनों नोड्स पर लाना होगा।

# drbdadm create-md test

अगला, हमें संसाधन को सक्षम करना चाहिए, जो संसाधन को अपने बैकिंग डिवाइस के साथ संलग्न करेगा, फिर यह प्रतिकृति पैरामीटर सेट करता है, और संसाधन को इसके सहकर्मी से जोड़ता है:

# drbdadm up test

अब यदि आप lsblk कमांड चलाते हैं, तो आप देखेंगे कि DRBD डिवाइस/वॉल्यूम drbd0 बैकिंग डिवाइस के साथ जुड़ा हुआ है /dev/sdb1 :

# lsblk

संसाधन को अक्षम करने के लिए, चलाएं:

# drbdadm down test

संसाधन की स्थिति की जाँच करने के लिए, निम्न कमांड चलाएँ (ध्यान दें कि असंगत/असंगत डिस्क स्थिति इस बिंदु पर अपेक्षित है):

# drbdadm status test
OR
# drbdsetup status test --verbose --statistics 	#for  a more detailed status 

चरण 5: प्राथमिक उपकरण / प्रारंभिक उपकरण सिंक्रोनाइज़ेशन का स्रोत सेट करें

इस स्तर पर, DRBD अब ऑपरेशन के लिए तैयार है। अब हमें यह बताने की आवश्यकता है कि प्रारंभिक डिवाइस सिंक्रोनाइज़ेशन के स्रोत के रूप में किस नोड का उपयोग किया जाना चाहिए।

प्रारंभिक पूर्ण सिंक्रनाइज़ेशन प्रारंभ करने के लिए केवल एक नोड पर निम्न आदेश चलाएँ:

# drbdadm primary --force test
# drbdadm status test

एक बार सिंक्रनाइज़ेशन पूरा हो जाने के बाद, दोनों डिस्क की स्थिति UpToDate होनी चाहिए।

चरण 6: परीक्षण DRBD सेटअप

अंत में, हमें परीक्षण करने की आवश्यकता है कि क्या DRBD डिवाइस प्रतिकृति डेटा संग्रहण के लिए अच्छी तरह से काम करेगा। याद रखें, हमने एक खाली डिस्क वॉल्यूम का उपयोग किया है, इसलिए हमें डिवाइस पर एक फाइल सिस्टम बनाना होगा, और इसे माउंट करना होगा, ताकि यह जांचा जा सके कि क्या हम इसे दोहराया डेटा स्टोरेज के लिए उपयोग कर सकते हैं।

हम निम्न कमांड के साथ डिवाइस पर एक फाइल सिस्टम बना सकते हैं, नोड पर जहां हमने प्रारंभिक पूर्ण तुल्यकालन शुरू किया है (जिसमें प्राथमिक भूमिका वाला संसाधन है):

# mkfs -t ext4 /dev/drbd0 

फिर इसे दिखाए अनुसार माउंट करें (आप माउंट पॉइंट को एक उपयुक्त नाम दे सकते हैं):

# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/

अब उपरोक्त आरोह बिंदु में कुछ फ़ाइलों की प्रतिलिपि बनाएँ या बनाएं और ls कमांड का उपयोग करके एक लंबी लिस्टिंग करें:

# cd /mnt/DRDB_PRI/
# ls -l 

अगला, डिवाइस को अनमाउंट करें (सुनिश्चित करें कि माउंट खुला नहीं है, किसी भी त्रुटि को रोकने के लिए इसे अनमाउंट करने के बाद निर्देशिका बदलें) और नोड की भूमिका को प्राथमिक से बदल दें माध्यमिक :

# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary test

दूसरे नोड पर (जिसमें एक माध्यमिक भूमिका वाला संसाधन है), इसे प्राथमिक बनाएं, फिर उस पर डिवाइस माउंट करें और माउंट बिंदु की लंबी सूची का प्रदर्शन करें। यदि सेटअप ठीक काम कर रहा है, तो वॉल्यूम में संग्रहीत सभी फाइलें होनी चाहिए:

# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls  -l 

अधिक जानकारी के लिए, उपयोगकर्ता स्पेस एडमिनिस्ट्रेशन टूल के मैन पेज देखें:

# man drbdadm
# man drbdsetup
# man drbdmeta

संदर्भ : DRBD उपयोगकर्ता की मार्गदर्शिका।

DRBD अत्यंत लचीला और बहुमुखी है, जो इसे स्टोरेज प्रतिकृति समाधान बनाता है जो HA को किसी भी एप्लिकेशन के बारे में जोड़ने के लिए उपयुक्त है। इस लेख में, हमने दिखाया है कि CentOS 7 में DRBD कैसे स्थापित करें और भंडारण को दोहराने के लिए इसका उपयोग करने का संक्षिप्त रूप से प्रदर्शन किया। नीचे दिए गए प्रतिक्रिया फॉर्म के माध्यम से अपने विचार हमारे साथ साझा करने के लिए स्वतंत्र महसूस करें।