सभी को शुभकामनाएं!
जैसा कि आप अनुमान लगा सकते हैं, यह बैकअप के बारे में होगा।
समय पर बैकअप सिस्टम प्रशासक के काम का एक अत्यंत महत्वपूर्ण हिस्सा है। समय पर बैकअप नींद को शांत करता है, और तंत्रिकाएं स्टील होती हैं, शक्ति प्रदान करती हैं और स्वास्थ्य की रक्षा करती हैं।
मुझे लगता है कि यह मानना उचित होगा कि यह विषय पहले ही छिन चुका है, लेकिन फिर भी मैं अपने अनुभव को साझा करने का जोखिम उठाऊंगा। बैकअप योजना का क्लाइंट-सर्वर कार्यान्वयन पाठक के लिए प्रस्तुत किया जाएगा। एक उपकरण के रूप में, मैंने ओपन सोर्स प्रोजेक्ट बकुला को चुना। इसके उपयोग के छह महीने से अधिक के अनुभव के लिए, मैं अपनी पसंद से संतुष्ट हूं।
बकुला में कई राक्षस होते हैं, जिनमें से प्रत्येक का अपना कार्यात्मक भार होता है। योजनाबद्ध रूप से नीचे का आंकड़ा इन राक्षसों के संबंध को दर्शाता है।
हैबरकट के तहत मैं सभी राक्षसों का विस्तार से वर्णन करूंगा
मेरे मामले में, बैकअप निम्नलिखित हैं:- सभी सर्वरों से विभिन्न डेमों की विन्यास फाइल।
- MySQL डेटाबेस।
- Windows फ़ाइल सर्वर से वर्कफ़्लो।
- निक्स सर्वर (साइट / फोरम इंजन आदि) से विभिन्न महत्वपूर्ण डेटा।)
1. बकुला दानवों का विवरण
सिस्टम क्लाइंट-सर्वर तकनीक पर बनाया गया है, और डेटा ट्रांसफर के लिए टीसीपी प्रोटोकॉल का उपयोग करता है। बैकअप एक मालिकाना, पूरी तरह से खुले प्रारूप में बनाए जाते हैं।
बकुला डेटा बैकअप सिस्टम में चार मुख्य तत्व होते हैं: डायरेक्टर डेमन, स्टोरेज डेमॉन, फाइल डेमन और बैकुला कंसोल। इन सभी तत्वों को स्टैंड-अलोन अनुप्रयोगों के रूप में लागू किया जाता है।
निदेशक डेमन (डीडी) प्रणाली का केंद्रीय तत्व है जो इसके अन्य घटकों का प्रबंधन करता है। उनके कार्यों में बैकअप / पुनर्स्थापना प्रक्रिया का प्रबंधन, प्रशासकों के लिए एक प्रबंधन इंटरफ़ेस प्रदान करना और बहुत कुछ शामिल है। सीधे शब्दों में कहें, यह एक प्रेषण है जो सभी प्रक्रियाओं को शुरू करता है और उनकी प्रगति की निगरानी करता है।
स्टोरेज डेमॉन (एसडी) - सीधे स्टोरेज डिवाइस पर डेटा पढ़ने / लिखने के लिए जिम्मेदार एप्लिकेशन। यह डीडी से नियंत्रण आदेशों को स्वीकार करता है, साथ ही साथ / फाइल डेमॉन से अनावश्यक डेटा भी।
फ़ाइल डेमन (एफडी) - इस तत्व को एक एजेंट भी कहा जा सकता है। आखिरकार, यह वह है जो ऑपरेटिंग सिस्टम के ढांचे के भीतर काम करता है, जिसके डेटा का बैकअप होना चाहिए। फ़ाइल Daemon बैकअप फ़ाइलों तक पहुँचने और उन्हें एसडी में स्थानांतरित करके पूरी दिनचर्या करता है। इसके अलावा, एफडी की ओर, बैकअप का एन्क्रिप्शन प्रदर्शन किया जाता है, अगर यह कॉन्फ़िगरेशन द्वारा निर्धारित किया जाता है।
बकुला कंसोल (बीसी) - सिस्टम प्रशासक इंटरफ़ेस। इसके मूल में, यह बकुला के प्रबंधन के लिए एक खोल है। कड़ाई से बोलते हुए, बकुला कंसोल को ग्राफिकल कंट्रोल सिस्टम के साथ विस्तारित किया जा सकता है, जो एक नियम के रूप में, बीसी के लिए सिर्फ एक ऐड-ऑन है। इन प्रणालियों में ट्रे मॉनिटर और बैट शामिल हैं। पहला सिस्टम व्यवस्थापक के कंप्यूटर पर स्थापित किया गया है और बैकअप सिस्टम के संचालन की निगरानी करता है, और दूसरा एक ग्राफिकल इंटरफ़ेस के माध्यम से नियंत्रित करने की क्षमता प्रदान करता है।
बकुला कैटलॉग - एक डेटाबेस जो सभी आरक्षित फ़ाइलों और बैकअप में उनके स्थान के बारे में जानकारी संग्रहीत करता है। आवश्यक फ़ाइलों के कुशल पते को सुनिश्चित करने के लिए एक निर्देशिका आवश्यक है। MySql, PostgreSql और SqLite समर्थित हैं।
यह संरचनात्मक विभाजन आपको एक बहुत लचीली बैकअप प्रणाली को व्यवस्थित करने की अनुमति देता है जब स्टोरेज डेमन कई स्टोरेज डिवाइस के साथ एक समर्पित सर्वर पर तैनात होता है। बकुला निदेशक भी एसडी के कई उदाहरणों का प्रबंधन कर सकते हैं, एक भंडारण उपकरण के लिए डेटा के हिस्से का बैकअप प्रदान करते हैं, और दूसरे भाग में।
2. ओएस और हार्डवेयर
अब जब पाठक ने बकुला दानवों के काम का एक विचार बनाया है, तो मैं यह वर्णन करने जाऊंगा कि कैसे मैंने इस सुंदरता को अपने आप में महसूस किया।
डीडी, एसडी और बकुला कैटलॉग के लिए हार्डवेयर के रूप में, मेरे पास निम्नलिखित विशेषताओं वाला एक पीसी है
युक्ति | आदर्श | संख्या | क्षमता / आवृत्ति |
HDD | हिताची HDS723020BLA642 | 3 | 2TB |
सीपीयू | AMD Phenom (tm) II X4 970 प्रोसेसर | 1 | 3500 mhz |
मदरबोर्ड | गीगाबाइट GA-880GA-UD3H | 1 | - |
रैम | | | 3541 एमबी |
सर्वर पर उपयोग किए जाने वाले OS और सॉफ़्टवेयर संस्करणों के बारे में
डेटा संग्रहण में कई सॉफ़्टवेयर (mdadm) RAID सरणियाँ शामिल हैं।
तीन डिस्क पर सिस्टम के लिए तीन विभाजन हैं, यह उनमें से किसी से लोड किया जा सकता है, बैकअप के लिए दो विभाजन का एक सरणी।
अर्रे नाम | किन विभाजनों से | माउंट पॉइंट | फाइल सिस्टम | एरे स्तर |
md0 | / देव / sda1, / देव / sdb1, / देव / sdc1 | बूट | ext2 | 1 |
md1 | / देव / sda2, / देव / sdb2, / देव / sdc2 | / | ext3 | 1 |
MD2 | / देव / sda3, / देव / sdb3 | / बैकअप | ext4 | 1 |
3. बैकअप योजना और बकुला डेमन्स के विन्यास का विवरण
कुल मिलाकर, मेरे पास 19 बकुला क्लाइंट कॉन्फ़िगर हैं, लेकिन मैं विंडोज़ फ़ाइल सर्वर से बिलिंग सर्वर और दस्तावेजों के बैकअप के विवरण पर ध्यान केंद्रित करूंगा। इन दोनों सर्वरों पर ध्यान इस तथ्य के कारण है कि अन्य क्लाइंट समान रूप से कॉन्फ़िगर किए गए हैं, और आप इन क्लाइंट सर्वरों के उदाहरण का उपयोग करके अपने स्वयं के कॉन्फ़िगरेशन का निर्माण कर सकते हैं।
बिलिंग सर्वर बैकअप अनिवार्य रूप से mysql डेटाबेस और डेमोंस की कॉन्फ़िगरेशन फ़ाइलों का बैकअप है।
BD आपको नौकरी से पहले और बाद में ग्राहक पर एक स्थानीय स्क्रिप्ट चलाने की अनुमति देता है।
हर रात, जब कार्य बैकअप सर्वर पर शुरू होता है, तो एक स्थानीय स्क्रिप्ट को चलाया जाता है (बिलिंग सर्वर पर ही), जो बिलिंग डेटाबेस संग्रह बनाता है, फिर यह संग्रह बीडी लेता है और इसे संबंधित वॉल्यूम पूल पर डालता है (वास्तव में, एसडी पढ़ने / लिखने के संचालन को नियंत्रित करता है, लेकिन यह अब मायने नहीं रखता) कार्य पूरा करने के तुरंत बाद, एक और स्क्रिप्ट लॉन्च की जाती है, जो बदले में, बिलिंग सर्वर पर एक अलग फ़ोल्डर में बनाए गए संग्रह को अधिक विश्वसनीयता के लिए स्थानांतरित करती है। इस प्रकार, डेटाबेस संग्रह बकुला में और स्थानीय रूप से बिलिंग सर्वर पर दोनों होगा (हां, मैं पागल हूं)। इन तंत्रों और लिपियों को नीचे और अधिक विवरण में वर्णित किया जाएगा।
विंडोज फ़ाइल सर्वर से, हम सभी आवश्यक वर्कफ़्लो को सहेजते हैं। रविवार को, फुल बैकअप बनाया जाता है, हर अगले दिन, सोमवार से शनिवार तक, डिफ बैकअप।
अब बकुला डेमन्स की कॉन्फ़िगरेशन फ़ाइलों के बारे में। आइए सबसे अधिक ज्वालामुखी से शुरू करें - बकुला-दिर.कॉनफ।
सभी बकुला डेमों के लिए विन्यास फाइल में तथाकथित संसाधनों का वर्णन है। प्रत्येक संसाधन डेमॉन के एक निश्चित कार्यात्मक की विशेषता है।
मैं विन्यास में प्रत्येक पंक्ति पर टिप्पणी करूंगा, इसलिए निम्नलिखित में बकुला फ़ाइलों के संसाधन ब्लॉक होंगे (bacula-dir.conf, bacula-sd.conf, bacula-fd.conf), अगर किसी चीज़ को अधिक विस्तार से समझाया जाना है, तो टिप्पणियों में इसे इंगित करें।
संसाधन डर्टेक्टर
Director {
संसाधन कैटलॉग, हम डेटाबेस से कनेक्शन का वर्णन करते हैं
Catalog { Name = MyCatalog dbname = "bacula"; dbuser = "bacula"; dbpassword = "edsfweo8vhwpe" }
संदेश संसाधन
Messages {
प्रत्येक क्लाइंट के लिए, कार्य पूल और स्टोरेज का संकेत देते हैं।
पूल, टॉटोलॉजी के लिए खेद है, यह वॉल्यूम पूल है जिस पर ग्राहक डेटा की बैकअप प्रतियां स्थित हैं। मेरे संस्करणों में बैकुला प्रारूप फाइलें हैं जो एक सॉफ्टवेयर छापे सरणी पर रखी गई हैं। विभिन्न क्लाइंट के लिए अलग-अलग वॉल्यूम पूल को परिभाषित किया जा सकता है। उदाहरण के लिए, मैंने विभिन्न प्रकार के ग्राहकों के लिए 6 पूल बनाए हैं। नीचे दिया गया उदाहरण बिलिंग डेटा के लिए उनमें से केवल एक का वर्णन करता है।
भंडारण का वर्णन है कि किन भौतिक उपकरणों का उपयोग वॉल्यूम के रूप में किया जाएगा।
(स्टोरेज बीजीबी-एसटी को एसडी कॉन्फिगर में वर्णित किया गया है)
संसाधन पूल
Pool {
संसाधन भंडारण
Storage {
बैकअप बिलिंग डेटाबेस के उदाहरण पर कार्य करें।
संसाधन ग्राहक
Client {
कार्य ही।
नौकरी का संसाधन
Job {
मैंने नौकरी से पहले और बाद में चलने वाली स्क्रिप्ट पर ध्यान केंद्रित करने का वादा किया।
नौकरी से पहले की स्क्रिप्ट
$ sudo cat /root/sh/before_bg_db_backup.sh
नौकरी के बाद की स्क्रिप्ट
$ sudo cat /root/sh/after_bg_db_backup.sh
FileSet संसाधन (बैकअप क्या है और क्या नहीं है)
FileSet { Name = "bgbilling-set" Include { Options {
एक कार्य शुरू करने के लिए अनुसूची।
अनुसूची संसाधन
Schedule {
मैंने विंडोज सर्वर से दस्तावेजों के विस्तार के लिए संसाधनों पर टिप्पणी नहीं की है, मैं पूरी तरह से बकुला-दिर.कॉन्फ़ कॉन्फिगरेशन का संगत हिस्सा दूंगा
Storage { Name = WINDOWS-F Address = backupsrv.domain.ru
BD कॉन्फ़िगरेशन फ़ाइल अब पूरी हो गई है। चलो एसडी विन्यास पर चलते हैं - बकुला-एसडी.कॉन्फ़ फ़ाइल का वर्णन
संसाधन भंडारण
Storage {
निदेशक संसाधन (बीडी के लिए लिंक Bacula-dir.conf config में वर्णित है)
Director {
विभिन्न उपकरणों का वर्णन शुरू होता है, कुल मिलाकर मैं 4 विभिन्न उपकरणों का उपयोग करता हूं। मैं उदाहरण के लिए दो, बिलिंग के लिए और विंडोज के लिए दूंगा।
बिलिंग के लिए संसाधन उपकरण।
Device {
Windows फ़ाइल सर्वर के लिए डिवाइस संसाधन
Device { Name = WINDOWS-ST Media Type = File Archive Device = /backup/windows LabelMedia = yes; Random Access = Yes; AutomaticMount = yes; RemovableMedia = no; AlwaysOpen = no; }
संसाधन संदेश।
Messages {
कॉन्फ़िगरेशन फ़ाइल bconsole.conf, बकुला कंसोल तक पहुंच।
Director { Name = backupsrv.ray-com.ru-dir DIRport = 9101 address = 10.1.19.2 Password = "bacula_paS$w0rD10*" }
उचित संग्रहण फ़ोल्डर बनाना और इन फ़ोल्डरों का स्वामी बैकुंठ बनाना याद रखें।टिप्पणी से टिप
@ / usr / स्थानीय / आदि / bacula / client.conf
@ / usr / स्थानीय / आदि / bacula / job.conf
@ / usr / स्थानीय / आदि / bacula / pool.conf
@ / usr / स्थानीय / आदि / bacula / fileset.conf
कन्फ़िगल्स को विभिन्न फ़ाइलों में विभाजित किया जा सकता है,
विकल्प {हस्ताक्षर = MD5 संपीड़न = GZIP}
और संपीड़न सक्षम करें।
सर्वर साइड कॉन्फ़िगरेशन पूरा हुआ।
ग्राहक विन्यास
यह ध्यान रखना महत्वपूर्ण है कि प्रत्येक ग्राहक को अपने आईपी पते पर fqdn सर्वर नाम को हल करना होगा! इसे डीएनएस टूल प्रदान करें या मेजबानों में रजिस्टर करें!
संसाधन निदेशक।
Director {
कॉन्फ़िगरेशन फ़ाइलों की टिप्पणियों में, मैंने विभिन्न कॉन्फ़िगरेशन फ़ाइलों में पासवर्ड और डेमन नामों के मिलान के पैटर्न का उल्लेख किया है, इसलिए यदि आप कहीं उलझन में हैं, तो नीचे दी गई तस्वीर का उपयोग करें।

4. उदाहरण वसूली प्रक्रिया
अपने बैकअप की निगरानी और पुनर्स्थापित करने के लिए बल्ले की उपयोगिता का उपयोग करना सुविधाजनक है।
उबंटू में इसे इस तरह लगाया जाता है
मुझे यह गेंटू पोर्टल्स में नहीं मिला, इसलिए मैंने इसे स्रोत से एकत्र किया।
कॉन्फ़िगरेशन फ़ाइल bat.conf पूरी तरह से पहले दिए गए bconsole.conf के समान है।इसलिए, उदाहरण के लिए, मैं एक निश्चित संख्या के लिए बिलिंग डेटाबेस संग्रह को पुनर्स्थापित करना चाहता हूं। मैं जिस एल्गोरिथ्म का उपयोग करता हूं वह इस प्रकार है:
1. हम बल्ले खोलते हैं और हम आवश्यक कार्य करते हैं

2. यह सुनिश्चित करने के लिए कि कार्य के लिए आवश्यक फाइलें हैं, आदेश सूची फाइलों को jobid = 3059 में दर्ज करें

3. अब कंसोल पर जाएं (यह मेरे लिए अधिक सुविधाजनक है =))। कंसोल में, मैं दूसरे क्लाइंट को बिलिंग संग्रह पुनर्स्थापित करूंगा
$ sudo bconsole [sudo] password for onotole: Connecting to Director 10.1.19.2:9101 1000 OK: backupsrv.domain.ru-dir Version: 5.0.3 (30 August 2010) Enter a period to cancel a command. *restore Automatically selected Catalog: MyCatalog Using Catalog "MyCatalog" First you select one or more JobIds that contain files to be restored. You will be presented several methods of specifying the JobIds. Then you will be allowed to select which files from those JobIds are to be restored. To select the JobIds, you have the following choices: 1: List last 20 Jobs run 2: List Jobs where a given File is saved 3: Enter list of comma separated JobIds to select 4: Enter SQL list command 5: Select the most recent backup for a client 6: Select backup for a client before a specified time 7: Enter a list of files to restore 8: Enter a list of files to restore before a specified time 9: Find the JobIds of the most recent backup for a client 10: Find the JobIds for a backup for a client before a specified time 11: Enter a list of directories to restore for found JobIds 12: Select full restore to a specified Job date 13: Cancel Select item: (1-13): 9 Defined Clients: 1: 192.168.15.12-fd 2: 1.1.1.1-fd 3: 1.1.1.75-fd 4: ASTERISK-configs-fd 5: DHCPD-configs-fd 6: GW1-configs-fd 7: GW2-configs-fd 8: NAS-20-configs-fd 9: NAS-21-configs-fd 10: NAS-6-configs-fd 11: NAS-ololo-configs-fd 12: NS_AND_MAIL-configs-fd 13: RADIUS-ololo-configs-fd 14: VIRTSRV1-configs-fd 15: bgbilling-fd 16: configs-fd 17: domain.ru-fd 18: mydomain.ru-fd 19: tv.domain.ru-fd 20: zabbix.domain.ru-fd Select the Client (1-20): 15 Automatically selected FileSet: bgbilling-set +-------+-------+----------+----------------+---------------------+------------+ | JobId | Level | JobFiles | JobBytes | StartTime | VolumeName | +-------+-------+----------+----------------+---------------------+------------+ | 3,292 | F | 1,666 | 10,874,552,420 | 2011-12-19 02:31:08 | Vol0014 | +-------+-------+----------+----------------+---------------------+------------+ To select the JobIds, you have the following choices: 1: List last 20 Jobs run 2: List Jobs where a given File is saved 3: Enter list of comma separated JobIds to select 4: Enter SQL list command 5: Select the most recent backup for a client 6: Select backup for a client before a specified time 7: Enter a list of files to restore 8: Enter a list of files to restore before a specified time 9: Find the JobIds of the most recent backup for a client 10: Find the JobIds for a backup for a client before a specified time 11: Enter a list of directories to restore for found JobIds 12: Select full restore to a specified Job date 13: Cancel Select item: (1-13): 12 Enter JobId to get the state to restore: 3059 Selecting jobs to build the Full state at 2011-12-06 02:28:47 You have selected the following JobId: 3059 Building directory tree for JobId(s) 3059 ... +++++++++++++++++++++++++++++++++++++++++++++ 1,535 files inserted into the tree. You are now entering file selection mode where you add (mark) and remove (unmark) files to be restored. No files are initially added, unless you used the "all" keyword on the command line. Enter "done" to leave this mode. cwd is: / $ ls etc/ root/ usr/ $ ls usr usr/ $ mark usr 1,667 files marked. $ done Bootstrap records written to /backup/bacula-work//backupsrv.domain.ru-dir.restore.8.bsr The job will require the following Volume(s) Storage(s) SD Device(s) =========================================================================== Vol0010 BGB-F BGB-ST Volumes marked with "*" are online. 1,667 files selected to be restored. Run Restore job JobName: restore Bootstrap: /backup/bacula-work//backupsrv.domain.ru-dir.restore.8.bsr Where: /usr/restore Replace: always FileSet: bgbilling-set Backup Client: bgbilling-fd Restore Client: bgbilling-fd Storage: BGB-F When: 2011-12-26 15:01:38 Catalog: MyCatalog Priority: 10 Plugin Options: *None* OK to run? (yes/mod/no): mod Parameters to modify: 1: Level 2: Storage 3: Job 4: FileSet 5: Restore Client 6: When 7: Priority 8: Bootstrap 9: Where 10: File Relocation 11: Replace 12: JobId 13: Plugin Options Select parameter to modify (1-13): 5 The defined Client resources are: 1: bgbilling-fd 2: GW1-configs-fd 3: GW2-configs-fd 4: NAS-6-configs-fd 5: NAS-20-configs-fd 6: NAS-21-configs-fd 7: NAS-ololo-configs-fd 8: DHCPD-configs-fd 9: ASTERISK-configs-fd 10: NS_AND_MAIL-configs-fd 11: VIRTSRV1-configs-fd 12: mydomain.ru-fd 13: tv.domain.ru-fd 14: domain.ru-fd 15: 1.1.1.1-fd 16: 1.1.1.75-fd 17: zabbix.domain.ru-fd 18: 192.168.15.12-fd Select Client (File daemon) resource (1-18): 2 Run Restore job JobName: restore Bootstrap: /backup/bacula-work//backupsrv.ray-com.ru-dir.restore.8.bsr Where: /usr/restore Replace: always FileSet: bgbilling-set Backup Client: bgbilling-fd Restore Client: GW1-configs-fd Storage: BGB-F When: 2011-12-26 15:01:38 Catalog: MyCatalog Priority: 10 Plugin Options: *None* OK to run? (yes/mod/no): yes Job queued. JobId=3453 You have messages. *
4. हम कार्य के सफल होने की प्रतीक्षा कर रहे हैं, उसी बैट में स्थिति को ट्रैक किया जा सकता है

कुछ और स्क्रीनशॉट



मैं उन सभी को धन्यवाद देता हूं जिन्होंने मेरे ऑप्स को अंत तक पढ़ा।
अंत में, मैं अपने आप को कुछ और सुझाव दूंगा।
यह न केवल बैकअप बनाने और मॉनिटर करने के लिए महत्वपूर्ण है कि उन्होंने त्रुटियों के बिना प्रदर्शन किया, बल्कि उन्हें नियमित रूप से तैनात करने और जांचने के लिए भी। इस तरह की प्रथा शुरुआत में इंगित की गई शांति, नसों की ताकत और स्वास्थ्य को एक और +100 देती है। यह भी नियमित रूप से Bacula डेटाबेस और bsr फ़ाइलों को वापस करने के लिए बहुत अच्छा अभ्यास है।
आपको नया साल मुबारक हो !!!
प्रयुक्त स्रोत:
1.
www.ibm.com/developerworks/en/library/l-Backup_42.
www.bacula.org/en/?page=documentation