आप एक चल उदाहरण के लिए एक कीपर लागू नहीं कर सकते। आप एक नया उदाहरण लॉन्च करने के लिए केवल नई कीपर का उपयोग कर सकते हैं।
पुनर्प्राप्ति के लिए, यदि यह ईबीएस बूट एएमआई है, तो आप इसे रोक सकते हैं, वॉल्यूम का स्नैपशॉट बना सकते हैं। इसके आधार पर एक नया वॉल्यूम बनाएं। और पुराने उदाहरण को शुरू करने, एक नई छवि बनाने, या डेटा को पुनर्प्राप्त करने के लिए इसका उपयोग करने में सक्षम हो।
हालांकि अल्पकालिक भंडारण में डेटा खो जाएगा।
इस सवाल और जवाब की लोकप्रियता के कारण, मैं लिंक में जानकारी को कैप्चर करना चाहता था जो रॉडनी ने अपनी टिप्पणी पर पोस्ट किया था।
इस जानकारी के लिए क्रेडिट एरिक हैमंड को जाता है ।
ईसी 2 इंस्टेंस के रूट ईबीएस वॉल्यूम पर फाइलें फिक्स करना
आप EC2 उदाहरण पर रूट EBS वॉल्यूम पर फ़ाइलों की जांच कर सकते हैं और संपादित कर सकते हैं, भले ही आप उस स्थिति में हों, जिसे आप एक विनाशकारी स्थिति मानते थे:
- आपने अपनी ssh कुंजी खो दी या अपना पासवर्ड भूल गए
- आपने / etc / sudoers फ़ाइल को संपादित करने में गलती की है और इसे ठीक करने के लिए sudo के साथ रूट एक्सेस प्राप्त नहीं कर सकता है
- आपका लंबे समय तक चलने का उदाहरण किसी कारण से लटका हुआ है, संपर्क नहीं किया जा सकता है, और ठीक से बूट करने में विफल रहता है
- आपको फ़ाइलों को आवृत्ति से पुनर्प्राप्त करने की आवश्यकता है, लेकिन इसे प्राप्त नहीं कर सकते
आपके डेस्क पर बैठे एक भौतिक कंप्यूटर पर, आप सिस्टम को सीडी या यूएसबी स्टिक के साथ बूट कर सकते हैं, हार्ड ड्राइव को माउंट कर सकते हैं, फाइलों को ठीक कर सकते हैं, फिर कंप्यूटर को व्यवसाय में वापस लाने के लिए रिबूट कर सकते हैं।
जब आप इनमें से किसी एक स्थिति में होते हैं तो एक सुदूर EC2 उदाहरण दूर और दुर्गम लगता है। सौभाग्य से, AWS हमें इस तरह की प्रणाली को पुनर्प्राप्त करने में सक्षम होने के लिए शक्ति और लचीलापन प्रदान करता है, बशर्ते कि हम ईबीएस बूट इंस्टेंस चला रहे हों, उदाहरण के लिए नहीं।
EC2 पर दृष्टिकोण कुछ हद तक भौतिक समाधान के समान है, लेकिन हम दोषपूर्ण "हार्ड ड्राइव" (रूट ईबीएस वॉल्यूम) को एक अलग उदाहरण में स्थानांतरित करने और माउंट करने जा रहे हैं, इसे ठीक करें, फिर इसे वापस ले जाएं।
कुछ स्थितियों में, नए EC2 उदाहरण को शुरू करना और खराब को फेंकना आसान हो सकता है, लेकिन अगर आप वास्तव में अपनी फ़ाइलों को ठीक करना चाहते हैं, तो यहां वह दृष्टिकोण है जो कई के लिए काम कर रहा है:
सेट अप
मूल उदाहरण (ए) और मात्रा को पहचानें जिसमें टूटी हुई रूट ईबीएस मात्रा उन फ़ाइलों के साथ है जिन्हें आप देखना और संपादित करना चाहते हैं।
instance_a=i-XXXXXXXX
volume=$(ec2-describe-instances $instance_a |
egrep '^BLOCKDEVICE./dev/sda1' | cut -f3)
दूसरे ईसी 2 उदाहरण (बी) को पहचानें जो आप मूल ईबीएस वॉल्यूम पर फ़ाइलों को ठीक करने के लिए उपयोग करेंगे। यह उदाहरण उदाहरण A के समान उपलब्धता ज़ोन में चल रहा होना चाहिए ताकि इसमें EBS वॉल्यूम संलग्न हो सके। यदि आपके पास पहले से चल रहा उदाहरण नहीं है, तो एक अस्थायी शुरुआत करें।
instance_b=i-YYYYYYYY
टूटी हुई आवृत्ति ए को रोकें (इसके लिए पूरी तरह से आने के लिए प्रतीक्षा कर रहा है), रूट ईबीएस मात्रा को उदाहरण से अलग करें (इसके लिए प्रतीक्षा की जा रही है), फिर वॉल्यूम को किसी अप्रयुक्त डिवाइस पर संलग्न करें।
ec2-stop-instances $instance_a
ec2-detach-volume $volume
ec2-attach-volume --instance $instance_b --device /dev/sdj $volume
S को B पर सेट करने और वॉल्यूम माउंट करने के लिए ssh ताकि आप इसकी फाइल सिस्टम तक पहुंच सकें।
ssh ...instance b...
sudo mkdir -p 000 /vol-a
sudo mount /dev/sdj /vol-a
इसे ठीक करो
इस बिंदु पर उदाहरण ए से आपका पूरा रूट फाइल सिस्टम ए / बी पर उदाहरण के तहत देखने और संपादन के लिए उपलब्ध है। उदाहरण के लिए, आप चाहते हैं:
- / Sol-a/home/ubuntu/.ssh/authorized_keys में सही ssh कीज लगाएं
- संपादित करें और / vol-a / etc / sudoers को ठीक करें
- / Vol-a / var / log / syslog में त्रुटि संदेश देखें
- महत्वपूर्ण फाइलों को कॉपी करें / vol-a /…
नोट: दो उदाहरणों पर uids समान नहीं हो सकते हैं, इसलिए ध्यान रखें कि यदि आप गैर-रूट उपयोगकर्ताओं से संबंधित फ़ाइलों का निर्माण, संपादन या प्रतिलिपि बना रहे हैं। उदाहरण के लिए, उदाहरण के लिए आपके mysql उपयोगकर्ता के पास उदाहरण U पर आपके पोस्टफ़िक्स उपयोक्ता के समान UID हो सकता है, जो समस्याओं का कारण बन सकता है यदि आप फ़ाइलों को एक नाम से जोड़ते हैं और फिर वॉल्यूम वापस A में ले जाते हैं।
लपेटें
आपके द्वारा किए जाने के बाद और आप / vol-a के तहत आने वाली फाइलों से खुश हैं, फ़ाइल सिस्टम को अनमाउंट करें (अभी भी उदाहरण-बी पर):
sudo umount /vol-a
sudo rmdir /vol-a
अब, ec2-api-tools के साथ अपने सिस्टम पर वापस जाएं, मूल उदाहरण A पर घर में ईबीएस वॉल्यूम को वापस ले जाना जारी रखें और फिर से उदाहरण शुरू करें:
ec2-detach-volume $volume
ec2-attach-volume --instance $instance_a --device /dev/sda1 $volume
ec2-start-instances $instance_a
उम्मीद है, आपने समस्या को ठीक कर दिया है, उदाहरण ए ठीक है, और आप इसे पूरा कर सकते हैं जो आप मूल रूप से करने के लिए तैयार हैं। यदि नहीं, तो आपको इन चरणों को दोहराते रहने की आवश्यकता हो सकती है जब तक कि आपके पास यह काम न हो।
नोट: यदि आपके पास जब आप इसे बंद करने के लिए A को सौंपा गया एक इलास्टिक IP पता था, तो उसे फिर से शुरू करने के बाद आपको इसे फिर से लिखना होगा।
याद है! यदि आपका उदाहरण B अस्थायी रूप से इस प्रक्रिया के लिए शुरू किया गया था, तो इसे अभी समाप्त करना न भूलें।
ssh-add
आपको जो चाहिए वो करना चाहिए।