Wuwejův zápisník

Výměna disků v diskovém poli (v serveru)

13.04.2025 21:00, Wu | počítače | komentáře -

Logo Tux – authors Larry Ewing, Simon Budig, Anja GerwinskiChtělo by se mi napsat „už je to tu zase“ jenže koukám, že domácí server jsem si stavěl skoro před devíti lety, takže ty čtyři disky už mají na nějakou závadu morální právo… Začalo to jako obvykle prozaicky – přišel mi mail, že diskové pole je degradované a že bych s tím asi měl něco zkusit udělat:

This is an automatically generated mail message from mdadm running on server
A DegradedArray event had been detected on md device /dev/md1.
Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities : [raid1]
md1 : active raid1 sde1[1]
976630464 blocks super 1.2 [2/1] [_U]
bitmap: 3/8 pages [12KB], 65536KB chunk
(...)


Kontrola disku

Disky mají smart diagnostiku, takže první kontrolní kroky míří k ní. Základní výpis:

smartctl -a /dev/sdd

neukázal nic, vše vpořádku.

Takže jsem pustil dvouminutový selftest:

smartctl -t short /dev/sdd

A naásledně jeho výpis:

smartctl -l selftest /dev/sdd

smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1160.119.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 58944 -

Krása, podle diagnostiky je disk v naprostém pořádku. Až na to, že nefunguje, no.

(Zkusil jsem i dlouhý test se stejným výsledkem.)

Pokusné vrácení do pole

Když je v pořádku, tak ho zkusíme vrátit zpátky, ne? Nejdřív odebrat z pole:

mdadm /dev/md1 --remove /dev/sdd1

A pak znovu přidat:

mdadm /dev/md1 --add /dev/sdd1

Následovalo dlouhé čekání a hláška:

mdadm: Failed to write metadata to /dev/sdd1

Ještě jsem našel příkaz na prozkoumání disku

mdadm --examine /dev/sdd1
mdadm: No md superblock detected on /dev/sdd1.

Také jsem se chtěl podívat na jeho rozdělení - jenže po prodlevě to vzdal i fdisk!

fdisk /dev/sdd
fdisk: /dev/sdd nelze otevřít: Chyba vstupu/výstupu

Tak už jen pohled na messages

dmesg | tail -n 50

kde to byla celá hitparáda errorů:

[ 262.261306] sd 2:0:0:0: [sdd] tag#7 Sense Key : Medium Error [current] [descriptor]
[ 262.261310] sd 2:0:0:0: [sdd] tag#7 Add. Sense: Unrecovered read error - auto reallocate failed
[ 262.261316] blk_update_request: I/O error, dev sdd, sector 0
[ 262.262327] Buffer I/O error on dev sdd, logical block 0, async page read
[ 262.263372] sdd: unable to read partition table
[ 269.277518] ata3.00: cmd 60/08:78:00:6d:70/00:00:74:00:00/40 tag 15 ncq 4096 in
res 41/40:00:00:6d:70/00:00:74:00:00/00 Emask 0x409 (media error)
[ 269.742586] blk_update_request: I/O error, dev sdd, sector 1953524992

atd. atd.

Jinými slovy, už zase mi celá SMART diagnostika byla úplně k ničemu. Funguje to vůbec?

Identifikace vadného disku

Server má krásně vycvakávací šuplíky, jenže jak poznám, který disk je ten vadný? Poradil jsem se s umělou inteligencí a hned jsem věděl, jak si k diskům vypsal i jejich sériová čísla (která jsou na nálepkách)

lsblk -o NAME,MODEL,SERIAL,SIZE,VENDOR,TRAN


sda WDC WD10EFRX-68F WD-WCC4J0VHVLKR 931,5G ATA sata
└─sda1 880G
└─md0 879,9G
sdb WDC WD10EFRX-68F WD-WCC4J1SV16SH 931,5G ATA sata
└─sdb1 880G
└─md0 879,9G
sdd WDC WD10EFRX-68F WD-WCC4J5LXJKD4 931,5G ATA sata
sde WDC WD10EADS-11M WD-WMAV52327587 931,5G ATA sata
└─sde1 931,5G
└─md1 931,4G

Druhý způsob pomocí

udevadm info --query=all --name=/dev/sdd | grep ata

jsem už ani nepotřeboval.

Disk byl tedy venku (a dva nové 2TB na stole). Tentokrát jsem po letech zase dal šanci Seagate. A protože nové disky jsou větší, byly to vlastně dvě výměny za sebou. Nejdřív byl vadný starý nahrazen novým velkým, a pak i zdravý starý novým velkým.

První nový disk a neúplné nové pole

Do uvolněného šuplíku jsem zašrouboval nový disk, vrátil do serveru a po startu si dal krátké zakládací kolečko. Nejprve rozdělit pomocí fdsiku:

fdisk /dev/sdd
n->p->enter (číslo 1)->enter (první sektor)->enter (poslední sektor)->w

Pak vytvořit nové diskové pole z dvou disků v zrcadlení, s jedním chybějícím:

mdadm --create /dev/md2 --level=mirror --raid-devices=2 /dev/sdd1 missing

Na poli vytvořit souborový systém:

mkfs.xfs /dev/md2

Vytvořit si adresář pro připojení:

mkdir /mnt/data3

Připojit:

mount /dev/md2 /mnt/data3

A pustit kopírování dat z z degradovaného md1. Po čtyřech hodinách bylo hotovo.

Nakonec do etc/fstab tohle nové pole připojit na místo starého.

/dev/md2 /mnt/data2 xfs defaults 1 2

Druhý disk a kompletace nového pole

Najít příslušný starý funkční disk už byla hračka, místo něj jsem umístil zase ten nový, také ho rozdělil

fdisk /dev/sde
n->p->enter (číslo 1)->enter (první sektor)->enter (poslední sektor)->w

A přidal do pole:

mdadm /dev/md2 -a /dev/sde1

Pak už stačilo sledovat, jak mu jde synchronizace sektorů:

watch cat /proc/mdstat

(Dost pomalu, přes tři dny… )

12345
1744570800000

Informace

Kontakt

Vyhledávání

Kategorie

Archiv

STRÁNKY ARCHIVOVÁNY NÁRODNÍ KNIHOVNOU ČR

CBDB.cz – Databáze knih a spisovatelů, knihy online