Ngaganti Drive Gagal dina Array mdadm dina Ubuntu
Diterbitkeun: 15 Pébruari 2025 jam 22.07.54 UTC
Panungtungan diropéa: 12 Januari 2026 jam 8.50.20 UTC
Upami anjeun aya dina kaayaan anu pikasieuneun sapertos kagagalan drive dina array RAID mdadm, tulisan ieu ngajelaskeun kumaha carana ngagentosna kalayan leres dina sistem Ubuntu.
Replacing a Failed Drive in an mdadm Array on Ubuntu
Inpormasi dina tulisan ieu dumasar kana Ubuntu 18.04 sareng vérsi mdadm anu kalebet dina gudangna; dina waktos nyerat v4.1-rc1. Éta tiasa valid atanapi henteu pikeun vérsi anu sanés.
Nembe waé kuring ngalaman masalah drive anu ujug-ujug dina server file bumi kuring, anu diwangun ku salapan drive dina array mdadm RAID-6. Éta sok pikasieuneun, tapi untungna kuring tiasa gancang milarian drive pangganti anu parantos dikirimkeun énjingna supados kuring tiasa ngamimitian ngawangun deui.
Kuring diaku rada murahan teuing nalika mimitina nyetél server file; ngan dua drive anu mangrupa drive NAS (Seagate IronWolf), sedengkeun sésana nyaéta drive desktop (Seagate Barracuda). Teu anéh, éta salah sahiji drive desktop anu geus eureun (sanajan ampir tilu taun dipaké). Drive éta paéh sagemblengna; sanggeus dipindahkeun ka wadah USB desktop, anu karasa ngan ukur sora klik anu pikasieuneun sareng boh Ubuntu 20.04 boh Windows 10 teu bisa ngadeteksina.
Nya, ayeuna mah ngeunaan bagian panggantina (enya, drive anyar anu kuring mésér téh IronWolf, geus diajar ti heula) - sanajan pikasieuneun kaleungitan drive dina array anu keur jalan, tapi leuwih pikasieuneun deui lamun anjeun teu nyaho prosedur anu bener pikeun ngagantina. Ieu lain kahiji kalina kuring kudu ngaganti drive anu rusak dina array mdadm, tapi untungna jarang pisan nepi ka kuring biasana kudu néangan paréntah anu bener. Ayeuna kuring mutuskeun pikeun nyieun pituduh leutik kuring sorangan pikeun rujukan ka hareup.
Janten, anu mimiti, nalika anjeun nampi email kajadian gagal anu pikasieuneun ti mdadm, anjeun kedah ngaidentipikasi drive mana anu gagal. Tangtosna, éta bakal ngawartosan anjeun nami alatna (dina kasus kuring /dev/sdf), tapi sigana henteu jelas drive fisik mana anu saleresna sabab nami éta tiasa robih nalika mesin di-boot.
Upami anjeun teu yakin nami alat mana anu gagal, anjeun tiasa nganggo paréntah ieu pikeun milarian (ganti /dev/md0 ku alat RAID anjeun):
Sapertos anu parantos disebatkeun, dina kasus kuring éta /dev/sdf, janten hayu urang teraskeun.
Teras, anjeun tiasa nyobian milarian nomer seri drive anu gagal ku ngaluarkeun paréntah ieu:
(upami smartctl teu kapendak, anjeun kedah masang pakét smartmontools dina Ubuntu)
Nomer seri teras tiasa dibandingkeun sareng nomer seri dina labél fisik dina drive pikeun nangtoskeun mana anu rusak.
Tapi ayeuna mah, kuring teu pati untung. Drive-na pareum pisan jeung malah teu bisa nyadiakeun data SMART atawa data séjénna, kaasup nomer seri.
Kusabab kuring boga aksés fisik ka server (anu anjeun peryogikeun upami anjeun badé ngagentos drive fisik nyalira, sigana mah ;-)) sareng serverna leres-leres jalan nalika diskna rusak (sareng teras-terasan jalan kalayan saé hatur nuhun kana redundansi RAID-6), kuring milih metode anu primitif pisan, tapi saleresna épéktip pisan sareng atra, nyaéta ngan saukur nyalin file ageung ka server sareng ningali lampu HDD mana anu henteu kedip-kedip. Dina sababaraha detik kuring parantos ngaidentipikasi panyababna.
Ayeuna, sateuacan ngaluarkeun drive fisik, langkung sae upami anjeun sacara resmi ngawartosan mdadm ngeunaan tujuan ieu, ku cara ngaluarkeun paréntah ieu (ganti nami alat ku nami anjeun nyalira):
Upami suksés, mdadm bakal ngawaler ku pesen anu nyatakeun yén éta "ngahapus drive sacara otomatis", sigana kusabab alat serangan virtual sabenerna nuju jalan dina waktos éta.
Upami gagal kalayan pesen kasalahan anu sami sareng "alat atanapi sumber daya sibuk", tiasa waé mdadm henteu ngadaptarkeun drive éta parantos gagal sapinuhna. Pikeun ngalakukeun éta, jalankeun paréntah ieu (deui, émut pikeun ngagentos nami alat ku nami anjeun nyalira):
Saatos éta, anjeun kedah tiasa ngahapus alat tina array nganggo paréntah sateuacana.
Ayeuna waktuna pikeun ngaganti drive na. Upami anjeun leres-leres - sapertos, leres-leres - yakin mesin sareng controller anjeun ngadukung hot swapping, anjeun tiasa ngalakukeun ieu tanpa mareuman mesin. Éta bakal janten cara anu kedah dilakukeun dina sistem produksi penting anu dijalankeun dina perangkat keras server anu leres sareng anjeun terang pasti tiasa nanganan éta. Server file bumi kuring dumasar kana motherboard desktop kelas konsumen kalayan sababaraha controller SATA semi-noname dina slot PCIe pikeun nyayogikeun langkung seueur port SATA.
Sanaos SATA sacara umum kedah ngadukung hot swapping, kuring henteu badé nyandak résiko naon waé dina setélan ieu, janten kuring milih mareuman mesin bari ngagentos drive.
Sateuacan ngalakukeun éta, langkung sae upami anjeun masihan koméntar kana alat raid dina file /etc/fstab supados Ubuntu henteu nyobian masangna sacara otomatis dina boot salajengna, sabab éta tiasa macét sareng maksa anjeun kana mode pamulihan kusabab array RAID anu rusak. Éta panginten sanés masalah ageung upami éta sistem desktop, tapi kuring ngajalankeun server ieu tanpa headless tanpa monitor atanapi keyboard anu dipasang, janten ieu bakal rada repot.
Saatos mesin di-boot sareng drive énggal anu tos dipasang, anggo lsblk atanapi cara sanés pikeun ngaidentipikasina. Upami anjeun teu acan ngarobih nanaon, éta sigana (tapi teu kedah) bakal kéngingkeun nami anu sami sareng drive anu anjeun gentos. Dina kasus kuring éta leres, janten anu énggal ogé disebut /dev/sdf.
Kusabab array kuring dumasar kana partisi tinimbang alat fisik, kuring kedah nyalin tabel partisi tina drive anu tiasa dianggo ka drive énggal pikeun mastikeun aranjeunna sami persis. Upami anjeun ngajalankeun array anjeun dina alat fisik, anjeun tiasa ngalangkungan léngkah ieu.
Kuring nganggo sgdisk pikeun tujuan ieu, nyalin tabel partisi ti /dev/sdc ka /dev/sdf. Pastikeun pikeun ngaganti nami alat supados cocog sareng nami anjeun nyalira.
Perhatikeun urutanana di dieu: daptarkeun heula drive "ka"! Ieu rada kontra-intuitif kanggo kuring, tapi pastikeun anjeun leres supados anjeun henteu ngalaman kagagalan drive deui dina array ;-)
Teras pikeun nyingkahan konflik UUID, jieun UUID anyar pikeun drive anyar:
Ayeuna waktuna pikeun nambahkeun drive anyar kana array sareng ngamimitian rebuild party! (Oke, ieu sanés pesta, tapi prosés anu rada laun sareng pikasieuneun sabab anjeun leres-leres henteu hoyong drive anu sanés gagal dina waktos ayeuna. Nanging, bir tiasa ngabantosan)
Kumaha waé, pikeun nambihan drive énggal kana array, pasihan paréntah ieu (deui, pastikeun pikeun ngagentos nami alat ku nami anjeun nyalira):
Upami sadayana lancar, drive éta bakal ditambahkeun kana array tanpa aya masalah. Kuring yakin éta sabenerna ditambahkeun salaku "hot spare" sacara standar, tapi kumargi array ieu leungit disk (anu gagal), éta langsung dianggo sareng prosés ngawangun deui bakal dimimitian.
Anjeun tiasa ngajaga éta sapertos kieu:
Ieu sigana bakal butuh sababaraha lami; dina server kuring anu handap (seuseueurna dumasar kana hardware kelas konsumen sareng drive desktop, émut) éta tiasa ngahontal kirang ti 100 MB/detik. Émut yén ieu RAID-6, janten aya seueur itungan paritas anu kalibet dina ngawangun deui; RAID-10 bakal langkung gancang. Mesin khusus ieu ngagaduhan CPU quad core AMD A10 9700E ("E" anu hartosna éta mangrupikeun modél anu hemat énergi anu kirang ti clock, nyaéta henteu super gancang), ngan ukur pikeun masihan anjeun gambaran ngeunaan naon anu kedah diarepkeun. Kalayan salapan drive 8 TB dina setélan kuring, ngawangun deui lengkep ngan ukur nyandak langkung ti 24 jam.
Salila ngawangun deui, anjeun tiasa masang sistem file dina array sareng nganggo éta sapertos biasana upami anjeun hoyong, tapi kuring langkung milih ngantepkeun éta ngawangun deui dugi ka réngsé. Émut yén upami hiji drive gagal, anu sanés tiasa nuturkeun, janten anjeun hoyong ngawangun deui dilakukeun gancang-gancang sabab anjeun leres-leres henteu hoyong drive sanés gagal salami éta. Ku alatan éta, tong ngabeungbeuratan ku IO sanés anu henteu diperyogikeun pisan.
Saatos réngsé, tambahkeun deui kana file /etc/fstab anjeun, reboot teras nikmati file anjeun :-)
