यूएफएस से जेडएफएस पर स्विच करना, रूट विभाजन के साथ खतरनाक संचालन

आज मैंने ZFS में संक्रमण के संबंध में एक दिलचस्प सवाल पर विचार करने का फैसला किया।
आरंभ करने के लिए, आइए हम इसके साथ प्रयोग के लिए परिचित हों, एक SunFire T2000 सर्वर है, जिसमें 4 एसएएस डिस्क हैं।

छवि


उपलब्ध ड्राइव ब्राउज़ करें:
  रूट @ T2000 # प्रारूप
 डिस्क खोज रहा है ... किया

 उपलब्ध डिस्क चयन:
        0. c0t0d0 <SUN72G सिलेंडर 14087 alt 2 एचडी 24 सेकंड 424> मुख्य
           / pci @ 780 / pci @ 0 / pci @ 9 / scsi @ 0 / sd @ 0,0
        1.c0t1d0 <SUN72G सिलेंडर 14087 alt 2 एचडी 24 सेकंड 424>
           / pci @ 780 / pci @ 0 / pci @ 9 / scsi @ 0 / sd @ 1.0
        2.c0t2d0 <SUN72G सिलेंडर 14087 alt 2 एचडी 24 सेकंड 424> फ़ाइल नाम
           / pci @ 780 / pci @ 0 / pci @ 9 / scsi @ 0 / sd @ 2.0
        3.c0t3d0 <SUN72G सिलेंडर 14087 alt 2 एचडी 24 सेकंड 424>
           / pci @ 780 / pci @ 0 / pci @ 9 / scsi @ 0 / sd @ 3.0 


सिस्टम शून्य ड्राइव पर स्थापित है:

 रूट @ T2000 # uname -a
 SunOS T2000 5.10 Generic_142909-17 sun4v स्पार्क SUNW, सन-फायर-टी 200 


ईआईएस-डीवीडी का उपयोग करके सभी ओरेकल मानकों द्वारा पैच किया गया।
अंतिम लक्ष्य ZFS पर एक कार्य प्रणाली प्राप्त करना है, जिसमें एक zfs दर्पण स्थापित है।
हम अपने हार्ड डिस्क को रूट फाइल सिस्टम के माइग्रेशन के लिए तैयार करते हैं, हमारे मामले में ये डिस्क 2 हैं और 3. हम प्रारूप उपयोगिता का उपयोग करके ऐसा करेंगे:

  प्रारूप> डिस्क

 उपलब्ध डिस्क चयन:
        0. c0t0d0 <SUN72G सिलेंडर 14087 alt 2 एचडी 24 सेकंड 424> मुख्य
           / pci @ 780 / pci @ 0 / pci @ 9 / scsi @ 0 / sd @ 0,0
        1.c0t1d0 <SUN72G सिलेंडर 14087 alt 2 एचडी 24 सेकंड 424>
           / pci @ 780 / pci @ 0 / pci @ 9 / scsi @ 0 / sd @ 1.0
        2.c0t2d0 <SUN72G सिलेंडर 14087 alt 2 एचडी 24 सेकंड 424> फ़ाइल नाम
           / pci @ 780 / pci @ 0 / pci @ 9 / scsi @ 0 / sd @ 2.0
        3.c0t3d0 <SUN72G सिलेंडर 14087 alt 2 एचडी 24 सेकंड 424>
           / pci @ 780 / pci @ 0 / pci @ 9 / scsi @ 0 / sd @ 3.0
 डिस्क निर्दिष्ट करें (इसकी संख्या दर्ज करें) [0]: 2
 c0t2d0 का चयन: फ़ाइल नाम
 [डिस्क स्वरूपित]
 प्रारूप> पी
 विभाजन> 0
 भाग टैग ध्वज सिलेंडर आकार ब्लॉक
   0 अप्रकाशित wm 0 0 (0/0/0) 0
 विभाजन आईडी टैग दर्ज करें [अप्रकाशित]: रूट
 विभाजन अनुमति झंडे दर्ज करें [wm]: 
 नया प्रारंभिक सिलेंडर दर्ज करें [0]: 
 विभाजन का आकार दर्ज करें [28665792b, 2817c, 2816e, 13996.97mb, 13.67gb]: 7850c
 विभाजन> पी 


मैं समझाता हूं कि आकार 7850s क्यों है, ताकि भविष्य में मौजूदा रूट सिस्टम और इससे संबंधित वर्गों की सभी जानकारी को बिना किसी समस्या के कॉपी करना संभव होगा।

  विभाजन> लेबल
 डिस्क को लेबल करने के लिए तैयार हैं, जारी रखें?  y
 विभाजन> नाम
 तालिका नाम दर्ज करें (उद्धरण याद रखें): ZFS
 विभाजन> q
 प्रारूप> सहेजें
 नई डिस्क सहेजना और विभाजन परिभाषाएँ
 फ़ाइल नाम ["./ format.dat"] दर्ज करें: 


हम डिस्क नंबर 3 के लिए सटीक ऑपरेशन करेंगे। और हम अपने पूल दर्पण को इन दो डिस्क पर बनाए गए स्लाइस से बनाते हैं।

  root @ T2000 # zpool create -f mainpool दर्पण c0t2d0s0 c0t3d0s0
 रूट @ T2000 # ज़ूलू सूची
 NIZ SIZE ALLOC FREE CAP HEALTH ALTROOT
 मेनपूल 38G 1.69G 36.3G 4% ऑनलाइन - 


इसके बाद, बूट वातावरण (BE) बनाएं। ऐसा करने के लिए, एक विशेष कमांड है जिसे हम उन कुंजियों के साथ लॉन्च करेंगे जिनकी हमें आवश्यकता है:

  रूट @ T2000 # ल्यूक्रिएट -c ufsBE -n zfsBE -p मेनपूल
 सिस्टम कॉन्फ़िगरेशन का विश्लेषण करना।
 स्रोत बूट वातावरण की तुलना करें <ufsBE> फ़ाइल सिस्टम फ़ाइल के साथ 
 सिस्टम जो आपने नए बूट वातावरण के लिए निर्दिष्ट किया है।  जिसका निर्धारण हो 
 फ़ाइल सिस्टम नए बूट वातावरण में होना चाहिए।
 सभी बीई पर बूट पर्यावरण विवरण डेटाबेस को अद्यतन करना।
 सिस्टम कॉन्फ़िगरेशन फ़ाइलों को अद्यतन करना।
 डिवाइस </ dev / dsk / c0t2d0s0> किसी भी बूट वातावरण के लिए एक रूट डिवाइस नहीं है;  BE ID प्राप्त नहीं कर सकता।
 बूट वातावरण के लिए कॉन्फ़िगरेशन बनाना <zfsBE>।
 स्रोत बूट वातावरण <ufsBE> है।
 बूट वातावरण बनाना <zfsBE>।
 बूट वातावरण पर फ़ाइल सिस्टम बनाना <zfsBE>।
 ज़ोन में </> के लिए <zfs> फाइल सिस्टम बनाना <ग्लोबल> पर <mainpool / ROOT / zfsBE>।
 बूट वातावरण पर फ़ाइल सिस्टम पॉपुलेट करना <zfsBE>।
 चयन अखंडता की जाँच करना।
 अखंडता की जाँच ठीक है।
 माउंट बिंदु </> की पॉपुलेटिंग सामग्री।
 प्रतिलिपि बनाई जा रही।
 साझा फ़ाइल सिस्टम माउंट पॉइंट बनाना।
 बूट वातावरण के लिए डेटाबेस की तुलना करना <zfsBE>।
 फ़ाइल सिस्टम के लिए तुलना डेटाबेस बनाना </ var>।
 फाइल सिस्टम के लिए तुलना डेटाबेस बनाना </>।
 बूट परिवेश पर डेटाबेस की तुलना करना अपडेट करना <zfsBE>।
 बूट वातावरण बनाना <zfsBE> बूट करने योग्य।
 /_Alt.tmp.b-tDb.mnt के लिए boot_archive बनाना
 अपडेट कर रहा है / .alt.tmp.b-tDb.mnt/platform/sun4v/boot_archive
 बूट वातावरण की जनसंख्या <zfsBE> सफल।
 बूट वातावरण का निर्माण <zfsBE> सफल। 


आइए देखें कि हमने क्या किया।

  रूट @ T2000 # लस्टैटस
 बूट पर्यावरण सक्रिय सक्रिय प्रतिलिपि बना सकता है      
 रिबूट हटाने की स्थिति पर अब पूरा नाम    
 -------------------------- -------- ------ --------- - ----- ----------
 ufsBE हां हां हां नहीं -         
 zfsBE हां नहीं नहीं हां - 


यह देखने के बाद कि सब कुछ ठीक हो गया है, हम नए zfsBE बूट वातावरण को सक्रिय कर सकते हैं।

  रूट @ T2000 # luactivate zfsBE
 बूट पर्यावरण <zfsBE> के स्टार्टअप पर एक लाइव अपग्रेड सिंक ऑपरेशन किया जाएगा।


 ************************************************** ********************

 लक्ष्य बूट वातावरण सक्रिय किया गया है।  इसका उपयोग जब आप करेंगे 
 रिबूट।  नोट: आप रिबूट, पड़ाव, या उडमिन आदेशों का उपयोग नहीं करना चाहिए।  आप 
 जब आप रीबूट करते हैं तो या तो init या शटडाउन कमांड का उपयोग करना चाहिए।  अगर आप 
 init या शटडाउन का उपयोग न करें, सिस्टम बूट का उपयोग नहीं करेगा 
 लक्ष्य बी.ई.

 ************************************************** ********************

 लक्ष्य बीई को बूट करते समय विफलता के मामले में, निम्नलिखित प्रक्रिया 
 वर्तमान में काम कर रहे बूट परिवेश में कमबैक करने की आवश्यकता है:

 1. PROM मॉनिटर (ओके प्रॉम्प्ट) डालें।

 2. टाइप करके बूट डिवाइस को मूल बूट वातावरण में बदलें:

      setenv बूट-डिवाइस डिस्क: a

 टाइप करके मूल बूट वातावरण के लिए बूट:

      बूट

 ************************************************** ********************

 बूट संग्रह सेवा को संशोधित करना
 बूट वातावरण की सक्रियता <zfsBE> सफल। 


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

रूट @ T2000 # init 6

और बूट करने के बाद, हम सही बूट के लिए हमारे सिस्टम की जांच करते हैं।

  रूट @ T2000 # लस्टैटस
 बूट पर्यावरण सक्रिय सक्रिय प्रतिलिपि बना सकता है      
 रिबूट हटाने की स्थिति पर अब पूरा नाम    
 -------------------------- -------- ------ --------- - ----- ----------
 ufsBE हां नहीं नहीं हां -         
 zfsBE हां हां हां नहीं - 


यहाँ हम देखते हैं कि फिलहाल मुख्य बूट वातावरण zfsBE है, बस हमारे द्वारा बनाया गया है। अब हम ufsBE को सुरक्षित रूप से हटा सकते हैं।
नतीजतन, हमें एक प्रणाली मिली जिसमें बिना किसी समस्या के और न्यूनतम डाउनटाइम के साथ एक ZFS प्रणाली की सभी सुविधाएं हैं।
आपका ध्यान देने के लिए धन्यवाद।

Source: https://habr.com/ru/post/In126508/


All Articles