Hallo Liste,
ich habe nach einem Festplattentausch ein Problem mit der
Synchronisation des RAIDs, weil jetzt auch auf der 2. Platte ein Fehler
aufgetaucht ist.
~# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sda3[2](S) sdb3[1]
1451496768 blocks [2/1] [_U]
Die Partition /dev/sda3 auf der neuen Platte ist nach dem Sync nicht
eingebunden, sondern als Spare (S) aufgeführt.
~# mdadm -D /dev/md2
/dev/md2:
Version : 0.90
Creation Time : Tue May 4 19:09:57 2010
Raid Level : raid1
Array Size : 1451496768 (1384.26 GiB 1486.33 GB)
Used Dev Size : 1451496768 (1384.26 GiB 1486.33 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 2
Persistence : Superblock is persistent
Update Time : Tue Sep 24 11:28:14 2013
State : clean, degraded
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1
UUID : 67084b3c:2d4cdd43:776c2c25:004bd7b2
Events : 0.1768518
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 19 1 active sync /dev/sdb3
2 8 3 - spare /dev/sda3
Ursache ist ein Lesefehler auf /dev/sdb3 beim Sync. Ob der fehlerhafte
Sektor überhaupt benutzt ist, weiß ich auch (noch) nicht.
An sich ist dieser Current_Pending_Sector (siehe smartctl) noch kein
großes Problem, beim Schreibversuch darauf wird dieser ja verlegt,
solange noch Reservesektoren (laut Reallocated_Sector_Ct) frei sind, was
hier der Fall ist. Solange aber nur lesend darauf zugegriffen wird,
bleibt der Fehler bestehen.
smartctl-Auszug:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE
UPDATED WHEN_FAILED RAW_VALUE
5 Reallocated_Sector_Ct 0x0033 098 098 036 Pre-fail
Always - 95
197 Current_Pending_Sector 0x0012 100 100 000 Old_age
Always - 1
Num Test_Description Status Remaining
LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90%
36961 1754701143
Das ist derzeitig der einzige Anhaltspunkt, welcher Sektor betroffen
ist. /dev/md2 ist ein PV im LVM. Darin stecken natürlich mehrere LVs. Es
ist auch noch freier Platz vorhanden. Allerdings ist nicht erkennbar,
welches LV und welcher Block darin betroffen ist, um anschließend mit dd
gezielt darauf loszugehen.
Wobei einige LVs auch wieder virtuelle HDDs für KVM sind und sich die
Analyse dann ggf. in die VM verlagert.
Mir fällt nur ein etwas mühseliger Weg ein:
Den freien Speicher in der VG einem LV zuweisen, alle Sektoren mit dd
überschreiben, um hier defekte Sektoren auszuschließen bzw. damit
umzulagern.
Danach das LV wieder löschen und Ersatz-LVs für die anderen Partitionen
anzulegen, den Inhalt zu kopieren, neues LV mounten und das alte LV
wieder mit dd überschreiben.
Hat jemand einen besseren Ansatz?
Gruß
Rico
_______________________________________________
Lug-dd maillist - Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd