ഉബുണ്ടുവിലെ ഒരു mdadm അറേയിൽ ഒരു പരാജയപ്പെട്ട ഡ്രൈവ് മാറ്റിസ്ഥാപിക്കുന്നു
പ്രസിദ്ധീകരിച്ചത്: 2025, ഫെബ്രുവരി 15 10:06:01 PM UTC
ഒരു mdadm RAID അറേയിൽ ഡ്രൈവ് പരാജയപ്പെടുന്നതിന്റെ ഭയാനകമായ സാഹചര്യത്തിലാണെങ്കിൽ, ഉബുണ്ടു സിസ്റ്റത്തിൽ അത് എങ്ങനെ ശരിയായി മാറ്റിസ്ഥാപിക്കാമെന്ന് ഈ ലേഖനം വിശദീകരിക്കുന്നു.
Replacing a Failed Drive in an mdadm Array on Ubuntu
ഈ പോസ്റ്റിലെ വിവരങ്ങൾ ഉബുണ്ടു 18.04 ഉം അതിന്റെ റിപ്പോസിറ്ററികളിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന mdadm പതിപ്പും അടിസ്ഥാനമാക്കിയുള്ളതാണ്; v4.1-rc1 എഴുതുന്ന സമയത്ത്. ഇത് മറ്റ് പതിപ്പുകൾക്ക് സാധുതയുള്ളതോ അല്ലാത്തതോ ആകാം.
എന്റെ ഹോം ഫയൽ സെർവറിൽ അടുത്തിടെ ഒരു പെട്ടെന്നുള്ള ഡ്രൈവ് പരാജയം സംഭവിച്ചു, അതിൽ ഒരു mdadm RAID-6 അറേയിലെ ഒമ്പത് ഡ്രൈവുകൾ ഉൾപ്പെടുന്നു. അത് എപ്പോഴും ഭയപ്പെടുത്തുന്നതാണ്, പക്ഷേ ഭാഗ്യവശാൽ അടുത്ത ദിവസം തന്നെ ഡെലിവറി ചെയ്ത ഒരു റീപ്ലേസ്മെന്റ് ഡ്രൈവ് വേഗത്തിൽ സോഴ്സ് ചെയ്യാൻ എനിക്ക് കഴിഞ്ഞു, അങ്ങനെ എനിക്ക് പുനർനിർമ്മാണം ആരംഭിക്കാൻ കഴിയും.
ഞാൻ ആദ്യം ഫയൽ സെർവർ സജ്ജീകരിച്ചപ്പോൾ എനിക്ക് അൽപ്പം വില കുറവായിരുന്നു എന്ന് സമ്മതിക്കാം; ഡ്രൈവുകളിൽ രണ്ടെണ്ണം മാത്രമേ യഥാർത്ഥ NAS ഡ്രൈവുകളാണ് (സീഗേറ്റ് അയൺ വുൾഫ്), ബാക്കിയുള്ളവ ഡെസ്ക്ടോപ്പ് ഡ്രൈവുകളാണ് (സീഗേറ്റ് ബരാക്യൂഡ). അതിശയിക്കാനില്ല, (ഏകദേശം മൂന്ന് വർഷത്തെ സേവനത്തിന് ശേഷം) ഉപേക്ഷിച്ച ഡെസ്ക്ടോപ്പ് ഡ്രൈവുകളിൽ ഒന്നായിരുന്നു അത്. അത് പൂർണ്ണമായും നിർജ്ജീവമായിരുന്നു; ഒരു ഡെസ്ക്ടോപ്പ് യുഎസ്ബി എൻക്ലോഷറിലേക്ക് മാറ്റിയപ്പോൾ എനിക്ക് അതിൽ നിന്ന് ലഭിച്ചത് ഒരു അലോസരപ്പെടുത്തുന്ന ക്ലിക്കിംഗ് ശബ്ദം മാത്രമാണ്, ഉബുണ്ടു 20.04 നും വിൻഡോസ് 10 നും അത് കണ്ടെത്താൻ കഴിഞ്ഞില്ല.
ശരി, മാറ്റിസ്ഥാപിക്കൽ ഭാഗത്തേക്ക് (അതെ, ഞാൻ വാങ്ങിയ പുതിയ ഡ്രൈവ് ഒരു അയൺ വുൾഫ് ആയിരുന്നു, പാഠം പഠിച്ചു) - റണ്ണിംഗ് അറേയിൽ ഒരു ഡ്രൈവ് നഷ്ടപ്പെടുന്നത് ഭയപ്പെടുത്തുന്നത് പോലെ, അത് മാറ്റിസ്ഥാപിക്കുന്നതിനുള്ള ശരിയായ നടപടിക്രമം നിങ്ങൾക്കറിയില്ലെങ്കിൽ അത് കൂടുതൽ ഭയപ്പെടുത്തുന്നതാണ്. ഒരു mdadm അറേയിൽ പരാജയപ്പെട്ട ഒരു ഡ്രൈവ് മാറ്റിസ്ഥാപിക്കേണ്ടി വരുന്നത് ഇതാദ്യമല്ല, പക്ഷേ ഭാഗ്യവശാൽ അത് വളരെ അപൂർവമായതിനാൽ എനിക്ക് സാധാരണയായി ശരിയായ കമാൻഡുകൾ നോക്കേണ്ടി വരും. ഇത്തവണ ഭാവി റഫറൻസിനായി എന്റെ സ്വന്തം ചെറിയ ഗൈഡ് തയ്യാറാക്കാൻ ഞാൻ തീരുമാനിച്ചു.
അതുകൊണ്ട്, ഒന്നാമതായി, mdadm-ൽ നിന്ന് ഭയാനകമായ പരാജയ ഇവന്റ് ഇ-മെയിൽ ലഭിക്കുമ്പോൾ, ഏത് ഡ്രൈവ് പരാജയപ്പെട്ടുവെന്ന് നിങ്ങൾ തിരിച്ചറിയേണ്ടതുണ്ട്. തീർച്ചയായും, അത് ഉപകരണത്തിന്റെ പേര് നിങ്ങളോട് പറയും (എന്റെ കാര്യത്തിൽ /dev/sdf), പക്ഷേ മെഷീൻ ബൂട്ട് ചെയ്യുമ്പോൾ ആ പേരുകൾ മാറാൻ സാധ്യതയുള്ളതിനാൽ, അത് യഥാർത്ഥത്തിൽ ഏത് ഫിസിക്കൽ ഡ്രൈവാണെന്ന് വ്യക്തമല്ലായിരിക്കാം.
ഏത് ഉപകരണ നാമമാണ് പരാജയപ്പെട്ടതെന്ന് നിങ്ങൾക്ക് ഉറപ്പില്ലെങ്കിൽ, നിങ്ങൾക്ക് അത് കണ്ടെത്താൻ ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കാം (നിങ്ങളുടെ RAID ഉപകരണം ഉപയോഗിച്ച് /dev/md0 മാറ്റിസ്ഥാപിക്കുക):
പറഞ്ഞതുപോലെ, എന്റെ കാര്യത്തിൽ അത് /dev/sdf ആയിരുന്നു, അതിനാൽ നമുക്ക് അത് തുടരാം.
പിന്നെ, ഈ കമാൻഡ് നൽകി പരാജയപ്പെട്ട ഡ്രൈവിന്റെ സീരിയൽ നമ്പർ കണ്ടെത്താൻ ശ്രമിക്കാം:
(smartctl കണ്ടെത്തിയില്ലെങ്കിൽ, നിങ്ങൾ ഉബുണ്ടുവിൽ smartmontools പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്)
തുടർന്ന് സീരിയൽ നമ്പർ ഡ്രൈവുകളിലെ ഫിസിക്കൽ ലേബലിലെ സീരിയൽ നമ്പറുകളുമായി താരതമ്യം ചെയ്ത് ഏതാണ് പരാജയപ്പെട്ടതെന്ന് കണ്ടെത്താനാകും.
ഇത്തവണ എനിക്ക് ഭാഗ്യമുണ്ടായിരുന്നില്ല. ഡ്രൈവ് പൂർണ്ണമായും പ്രവർത്തനരഹിതമായിരുന്നു, സ്മാർട്ട് അല്ലെങ്കിൽ സീരിയൽ നമ്പർ ഉൾപ്പെടെയുള്ള മറ്റ് ഡാറ്റ നൽകാൻ പോലും വിസമ്മതിച്ചു.
എനിക്ക് സെർവറിലേക്ക് ഫിസിക്കൽ ആക്സസ് ഉണ്ടായിരുന്നതിനാലും (നിങ്ങൾ സ്വയം ഒരു ഫിസിക്കൽ ഡ്രൈവ് മാറ്റിസ്ഥാപിക്കാൻ പോകുകയാണെങ്കിൽ നിങ്ങൾക്ക് അത് ശരിക്കും ആവശ്യമാണെന്ന് ഞാൻ കരുതുന്നു ;-)) ഡിസ്ക് പരാജയപ്പെട്ടപ്പോൾ സെർവർ യഥാർത്ഥത്തിൽ പ്രവർത്തിക്കുകയായിരുന്നു എന്നതിനാലും (RAID-6 റിഡൻഡൻസി കാരണം നന്നായി പ്രവർത്തിക്കുന്നത് തുടർന്നു), സെർവറിലേക്ക് ഒരു വലിയ ഫയൽ പകർത്തി ഏത് HDD ലൈറ്റ് മിന്നിമറയുന്നില്ലെന്ന് നിരീക്ഷിക്കുന്ന വളരെ പ്രാകൃതവും എന്നാൽ യഥാർത്ഥത്തിൽ വളരെ ഫലപ്രദവും വ്യക്തവുമായ രീതി ഞാൻ തിരഞ്ഞെടുത്തു. കുറച്ച് നിമിഷങ്ങൾക്കുള്ളിൽ ഞാൻ കുറ്റവാളിയെ തിരിച്ചറിഞ്ഞു.
ഇനി, ഫിസിക്കൽ ഡ്രൈവ് നീക്കം ചെയ്യുന്നതിനു മുമ്പ്, ഈ കമാൻഡ് നൽകിക്കൊണ്ട് mdadm-നെ ഈ ഉദ്ദേശ്യത്തെക്കുറിച്ച് ഔദ്യോഗികമായി അറിയിക്കുന്നത് നല്ലതാണ് (ഉപകരണ നാമങ്ങൾ ഉചിതമായി നിങ്ങളുടേത് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുക):
വിജയകരമാകുമ്പോൾ, ഡ്രൈവ് "ഹോട്ട് നീക്കം ചെയ്തു" എന്ന് പറയുന്ന ഒരു സന്ദേശത്തോടെ mdadm മറുപടി നൽകും, കാരണം ആ സമയത്ത് വെർച്വൽ റെയ്ഡ് ഉപകരണം യഥാർത്ഥത്തിൽ പ്രവർത്തിച്ചുകൊണ്ടിരിക്കുകയായിരുന്നു.
"ഉപകരണം അല്ലെങ്കിൽ റിസോഴ്സ് തിരക്കിലാണ്" എന്നതിന് സമാനമായ ഒരു പിശക് സന്ദേശം ലഭിക്കുകയാണെങ്കിൽ, mdadm ഡ്രൈവ് പൂർണ്ണമായും പരാജയപ്പെട്ടതായി രജിസ്റ്റർ ചെയ്തിട്ടില്ലായിരിക്കാം. അങ്ങനെ ചെയ്യുന്നതിന്, ഈ കമാൻഡ് നൽകുക (വീണ്ടും, ഉചിതമായി ഉപകരണ നാമങ്ങൾ നിങ്ങളുടേത് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കാൻ ഓർമ്മിക്കുക):
അതിനുശേഷം, മുമ്പത്തെ കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഉപകരണം അറേയിൽ നിന്ന് നീക്കംചെയ്യാൻ കഴിയും.
ഇപ്പോൾ ഡ്രൈവ് മാറ്റിസ്ഥാപിക്കേണ്ട സമയമായി. നിങ്ങളുടെ മെഷീനും കൺട്രോളറും ഹോട്ട് സ്വാപ്പിംഗിനെ പിന്തുണയ്ക്കുന്നുണ്ടെന്ന് നിങ്ങൾക്ക് ശരിക്കും ഉറപ്പുണ്ടെങ്കിൽ, മെഷീൻ ഷട്ട്ഡൗൺ ചെയ്യാതെ തന്നെ നിങ്ങൾക്ക് ഇത് ചെയ്യാൻ കഴിയും. യഥാർത്ഥവും ശരിയായതുമായ സെർവർ ഹാർഡ്വെയറിൽ പ്രവർത്തിക്കുന്ന നിർണായക പ്രൊഡക്ഷൻ സിസ്റ്റങ്ങൾ കൈകാര്യം ചെയ്യാൻ കഴിയുമെന്ന് നിങ്ങൾക്കറിയാവുന്ന രീതിയാണിത്. കൂടുതൽ SATA പോർട്ടുകൾ നൽകുന്നതിന് PCIe സ്ലോട്ടുകളിൽ രണ്ട് സെമി-നെയിം SATA കൺട്രോളറുകളുള്ള ഒരു കൺസ്യൂമർ ഗ്രേഡ് ഡെസ്ക്ടോപ്പ് മദർബോർഡിനെ അടിസ്ഥാനമാക്കിയുള്ളതാണ് എന്റെ ഹോം ഫയൽ സെർവർ.
SATA പൊതുവെ ഹോട്ട് സ്വാപ്പിംഗിനെ പിന്തുണയ്ക്കേണ്ടതാണെങ്കിലും , ഈ സജ്ജീകരണത്തിൽ ഞാൻ ഒന്നും അപകടപ്പെടുത്താൻ ഉദ്ദേശിച്ചിരുന്നില്ല, അതിനാൽ ഡ്രൈവ് മാറ്റിസ്ഥാപിക്കുമ്പോൾ മെഷീൻ ഷട്ട്ഡൗൺ ചെയ്യാൻ ഞാൻ തീരുമാനിച്ചു.
അതിനു മുൻപ്, /etc/fstab ഫയലിൽ റെയ്ഡ് ഡിവൈസിനെ കുറിച്ച് കമന്റ് ചെയ്യുന്നത് നല്ലതാണ്, അങ്ങനെ ചെയ്താൽ അടുത്ത ബൂട്ടിൽ ഉബുണ്ടു അത് ഓട്ടോമാറ്റിക്കായി മൗണ്ട് ചെയ്യാൻ ശ്രമിക്കില്ല, കാരണം ഡീഗ്രേഡഡ് RAID അറേ കാരണം അത് ഹാംഗ് ആകുകയും നിങ്ങളെ റിക്കവറി മോഡിലേക്ക് നിർബന്ധിക്കുകയും ചെയ്തേക്കാം. ഡെസ്ക്ടോപ്പ് സിസ്റ്റമാണെങ്കിൽ അത് വലിയ പ്രശ്നമാകില്ലായിരിക്കാം, പക്ഷേ മോണിറ്ററോ കീബോർഡോ ഘടിപ്പിച്ചിട്ടില്ലാത്തതിനാൽ ഞാൻ ഈ സെർവർ ഹെഡ്ലെസ്സായി പ്രവർത്തിപ്പിക്കുന്നു, അതിനാൽ ഇത് അൽപ്പം ബുദ്ധിമുട്ടുള്ളതായിരിക്കും.
തിളങ്ങുന്ന പുതിയ ഡ്രൈവ് ഇൻസ്റ്റാൾ ചെയ്ത് മെഷീൻ ബൂട്ട് ചെയ്ത ശേഷം, അത് തിരിച്ചറിയാൻ lsblk അല്ലെങ്കിൽ മറ്റ് മാർഗങ്ങൾ ഉപയോഗിക്കുക. നിങ്ങൾ മറ്റൊന്നും മാറ്റിയിട്ടില്ലെങ്കിൽ, നിങ്ങൾ മാറ്റിസ്ഥാപിച്ച ഡ്രൈവിന്റെ അതേ പേര് തന്നെ അതിന് ലഭിക്കാൻ സാധ്യതയുണ്ട് (പക്ഷേ നിർബന്ധമില്ല ). എന്റെ കാര്യത്തിൽ അത് അങ്ങനെയായിരുന്നു, അതിനാൽ പുതിയതിനെ /dev/sdf എന്നും വിളിക്കുന്നു.
എന്റെ അറേ ഫിസിക്കൽ ഡിവൈസുകളെ അടിസ്ഥാനമാക്കിയല്ല, പാർട്ടീഷനുകളെ അടിസ്ഥാനമാക്കിയുള്ളതായതിനാൽ, അവ കൃത്യമായി ഒന്നുതന്നെയാണെന്ന് ഉറപ്പാക്കാൻ, വർക്കിംഗ് ഡ്രൈവിൽ നിന്ന് പുതിയ ഡ്രൈവിലേക്ക് പാർട്ടീഷൻ ടേബിൾ പകർത്തേണ്ടി വന്നു. പകരം ഫിസിക്കൽ ഡിവൈസുകളിൽ നിങ്ങളുടെ അറേ പ്രവർത്തിപ്പിക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് ഈ ഘട്ടം ഒഴിവാക്കാം.
ഇതിനായി ഞാൻ sgdisk ഉപയോഗിച്ചു, /dev/sdc-യിൽ നിന്ന് /dev/sdf-ലേക്ക് പാർട്ടീഷൻ ടേബിൾ പകർത്തി. ഉചിതമായ രീതിയിൽ നിങ്ങളുടെ സ്വന്തം പേരുകളുമായി പൊരുത്തപ്പെടുന്നതിന് ഉപകരണ നാമങ്ങൾ മാറ്റിസ്ഥാപിക്കുന്നത് ഉറപ്പാക്കുക.
ഇവിടെ ക്രമം ശ്രദ്ധിക്കുക : ആദ്യം "to" ഡ്രൈവ് ലിസ്റ്റ് ചെയ്യുക! ഇത് എനിക്ക് അൽപ്പം എതിർദിശയിലാണ്, പക്ഷേ അറേയിൽ മറ്റൊരു ഡ്രൈവ് പരാജയം ഉണ്ടാകാതിരിക്കാൻ നിങ്ങൾ അത് ശരിയായി മനസ്സിലാക്കുന്നുവെന്ന് ഉറപ്പാക്കുക ;-)
പിന്നെ UUID വൈരുദ്ധ്യങ്ങൾ ഒഴിവാക്കാൻ, പുതിയ ഡ്രൈവിനായി പുതിയ UUID-കൾ സൃഷ്ടിക്കുക:
ഇനി ഒടുവിൽ പുതിയ ഡ്രൈവ് അറേയിലേക്ക് ചേർത്ത് പുനർനിർമ്മാണ പാർട്ടി ആരംഭിക്കേണ്ട സമയമായി! (ശരി, ഇത് ശരിക്കും ഒരു പാർട്ടി അല്ല, ഇത് യഥാർത്ഥത്തിൽ വളരെ മന്ദഗതിയിലുള്ളതും അസ്വസ്ഥത ഉളവാക്കുന്നതുമായ ഒരു പ്രക്രിയയാണ്, കാരണം ഈ സമയത്ത് മറ്റൊരു ഡ്രൈവ് പരാജയപ്പെടാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നില്ല. എന്നിരുന്നാലും ബിയർ സഹായിച്ചേക്കാം)
എന്തായാലും, അറേയിലേക്ക് പുതിയ ഡ്രൈവ് ചേർക്കാൻ, ഈ കമാൻഡ് നൽകുക (വീണ്ടും, ഉചിതമായി ഉപകരണ നാമങ്ങൾ നിങ്ങളുടേത് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നത് ഉറപ്പാക്കുക):
എല്ലാം ശരിയാണെങ്കിൽ, തടസ്സങ്ങളൊന്നുമില്ലാതെ ഡ്രൈവ് അറേയിലേക്ക് ചേർക്കപ്പെടും. സ്ഥിരസ്ഥിതിയായി ഇത് ഒരു "ഹോട്ട് സ്പെയർ" ആയിട്ടാണ് ചേർക്കുന്നതെന്ന് ഞാൻ വിശ്വസിക്കുന്നു, പക്ഷേ ഈ അറേയിൽ ഒരു ഡിസ്ക് (പരാജയപ്പെട്ട ഡിസ്ക്) ഇല്ലാത്തതിനാൽ, അത് ഉടനടി ഉപയോഗത്തിൽ വരുത്തുകയും പുനർനിർമ്മാണ പ്രക്രിയ ആരംഭിക്കുകയും ചെയ്യും.
നിങ്ങൾക്ക് ഇത് ഇതുപോലെ നിരീക്ഷിക്കാൻ കഴിയും:
ഇതിന് കുറച്ച് സമയമെടുക്കും; എന്റെ ലോലി സെർവറിൽ (പ്രധാനമായും ഉപഭോക്തൃ ഗ്രേഡ് ഹാർഡ്വെയറിനെയും ഡെസ്ക്ടോപ്പ് ഡ്രൈവുകളെയും അടിസ്ഥാനമാക്കിയുള്ളതാണ്, ശ്രദ്ധിക്കുക) ഇതിന് 100 MB/sec-ൽ താഴെ എത്താൻ കഴിഞ്ഞു. ഇത് RAID-6 ആണെന്ന് ഓർമ്മിക്കുക, അതിനാൽ ഒരു പുനർനിർമ്മാണവുമായി ബന്ധപ്പെട്ട് ധാരാളം പാരിറ്റി കണക്കുകൂട്ടലുകൾ ഉണ്ട്; ഒരു RAID-10 വളരെ വേഗതയുള്ളതായിരിക്കും. ഈ പ്രത്യേക മെഷീനിൽ ഒരു AMD A10 9700E ക്വാഡ് കോർ CPU ഉണ്ട് ("E" എന്നതിന്റെ അർത്ഥം ഇത് ഒരു അണ്ടർ-ക്ലോക്ക്ഡ് എനർജി എഫിഷ്യന്റ് മോഡൽ എന്നാണ്, അതായത് സൂപ്പർ ഫാസ്റ്റ് അല്ല), എന്താണ് പ്രതീക്ഷിക്കേണ്ടതെന്ന് നിങ്ങൾക്ക് ഒരു ധാരണ നൽകാൻ വേണ്ടി മാത്രം. എന്റെ സജ്ജീകരണത്തിലുള്ള ഒമ്പത് 8 TB ഡ്രൈവുകൾ ഉപയോഗിച്ച്, പൂർണ്ണ പുനർനിർമ്മാണത്തിന് 24 മണിക്കൂറിലധികം സമയമെടുത്തു.
പുനർനിർമ്മാണ സമയത്ത്, നിങ്ങൾക്ക് ഫയൽസിസ്റ്റം അറേയിൽ മൌണ്ട് ചെയ്ത് നിങ്ങൾക്ക് വേണമെങ്കിൽ സാധാരണ പോലെ ഉപയോഗിക്കാം, പക്ഷേ അത് പൂർത്തിയാകുന്നതുവരെ പുനർനിർമ്മാണത്തിന് വിടാൻ ഞാൻ ആഗ്രഹിക്കുന്നു. ഒരു ഡ്രൈവ് പരാജയപ്പെട്ടാൽ, മറ്റൊന്ന് ഉടൻ തന്നെ പിന്തുടരുമെന്ന് ഓർമ്മിക്കുക, അതിനാൽ പുനർനിർമ്മാണ പ്രക്രിയ കഴിയുന്നത്ര വേഗത്തിൽ പൂർത്തിയാക്കണമെന്ന് നിങ്ങൾ ആഗ്രഹിക്കുന്നു, കാരണം ആ സമയത്ത് മറ്റൊരു ഡ്രൈവ് പരാജയപ്പെടാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നില്ല. അതിനാൽ, കർശനമായി ആവശ്യമില്ലാത്ത മറ്റ് IO ഉപയോഗിച്ച് അതിനെ ഭാരപ്പെടുത്തരുത്.
അത് ചെയ്തുകഴിഞ്ഞാൽ, അത് നിങ്ങളുടെ /etc/fstab ഫയലിലേക്ക് തിരികെ ചേർക്കുക, റീബൂട്ട് ചെയ്ത് നിങ്ങളുടെ ഫയലുകൾ ആസ്വദിക്കുക :-)