Ich habe hier beschrieben wie unter Ubuntu ein Software Raid installiert wird. Das funktioniert soweit auch ganz prima, allerdings schickten mir die Smarttools heute morgen diese Mail:
This message was generated by the smartd daemon running on:
host name: kameraserver
DNS domain: [Empty]
The following warning/error was logged by the smartd daemon:
Device: /dev/sde [SAT], 8 Offline uncorrectable sectors
Device info:
ST2000VX008-2E3164, S/N:W5232Z6R, WWN:5-000c50-09b8c9bf7, FW:CV12, 2.00 TB
For details see host's SYSLOG.
You can also use the smartctl utility for further investigation.
Another message will be sent in 24 hours if the problem persists.
So wie aussieht, scheint /dev/sde also so langsam den Geist aufzugeben. Besser ich ersetze sie jetzt gegen eine neue Festplatte. Aber wie mache ich das?
Zunächst schaue ich mir mal den Status des RAID an:
edv@kameraserver:~$ sudo cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active raid6 sdd1[2] sdf1[4] sde1[3] sdc1[1] sdb1[0]
5860134912 blocks super 1.2 level 6, 512k chunk, algorithm 2 [5/5] [UUUUU]
bitmap: 8/15 pages [32KB], 65536KB chunk
unused devices: <none>
Das sieht soweit ganz gut aus, das RAID ist also noch in Ordnung. Ich tausche die Platte trotzdem aus. Zunächst schreibe ich alle eventuell vorhandenen Caches mittels sync-Befehl auf die Festplatten.
edv@kameraserver:~$ sudo sync
Zunächst setze ich die betroffene Festplatte manuell auf den Status „Failed“.
edv@kameraserver:~$ sudo mdadm --manage /dev/md0 --fail /dev/sde1
mdadm: set /dev/sde1 faulty in /dev/md0
Sicherheitshalber nochmal überprüfen ob die Disk nun wirklich den Status „Failed“ hat.
edv@kameraserver:~$ sudo cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active raid6 sdd1[2] sdf1[4] sde1[3](F) sdc1[1] sdb1[0]
5860134912 blocks super 1.2 level 6, 512k chunk, algorithm 2 [5/4] [UUU_U]
bitmap: 13/15 pages [52KB], 65536KB chunk
unused devices: <none>
Das hat funktioniert (das „F“ hinter sde1 steht für failed), nun kann ich die Festplatte aus dem Raid-Verbund entfernen. Das geht ebenfalls mittels mdadm.
edv@kameraserver:~$ sudo mdadm --manage /dev/md0 --remove /dev/sde1
mdadm: hot removed /dev/sde1 from /dev/md0
Jetzt nehme ich die alte Festplatte aus der Backplane und baue die neue Festplatte ein. Die Seriennummer des Festplatte schreibe ich auf den entsprechenden Slot der Backplane, damit ich sie im Fehlerfall leicht identifizieren kann.
Eigentlich sollte das Device gleich bleiben, aber auch dieses schaue ich sicherheitshalber mittels lsblk nach.
edv@kameraserver:~$ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1,8T 0 disk
├─sda1 8:1 0 1,8T 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 976M 0 part [SWAP]
sdb 8:16 0 1,8T 0 disk
└─sdb1 8:17 0 1,8T 0 part
└─md0 9:0 0 5,5T 0 raid6 /mnt/aufzeichnung
sdc 8:32 0 1,8T 0 disk
└─sdc1 8:33 0 1,8T 0 part
└─md0 9:0 0 5,5T 0 raid6 /mnt/aufzeichnung
sdd 8:48 0 1,8T 0 disk
└─sdd1 8:49 0 1,8T 0 part
└─md0 9:0 0 5,5T 0 raid6 /mnt/aufzeichnung
sde 8:64 0 1,8T 0 disk
sdf 8:80 0 1,8T 0 disk
└─sdf1 8:81 0 1,8T 0 part
└─md0 9:0 0 5,5T 0 raid6 /mnt/aufzeichnung
Gut, /dev/sde ist also /dev/sde geblieben. Jetzt kann ich mittels sfdisk die Partitionierung von einer beliebigen anderen Festplatte des Raid-Verbunds übernehmen. Ich entscheide mich für /dev/sdb als Quelle, spielt aber wie gesagt keine Rolle.
edv@kameraserver:~$ sudo sfdisk -d /dev/sdb | sudo sfdisk /dev/sde
Checking that no-one is using this disk right now ... OK
Disk /dev/sde: 1,8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new GPT disklabel (GUID: D5D5DEB6-1A05-4434-A2AF-0CF3EDC5EF7A).
Created a new partition 1 of type 'Linux RAID' and of size 1,8 TiB.
/dev/sde2:
New situation:
Device Start End Sectors Size Type
/dev/sde1 2048 3907020976 3907018929 1,8T Linux RAID
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Jetzt füge ich die neue Festplatte wieder zum Raid hinzu.
edv@kameraserver:~$ sudo mdadm --manage /dev/md0 --add /dev/sde1
mdadm: added /dev/sde1
Ob das alles geklappt hat, verrät mir ebenfalls mdadm
edv@kameraserver:~$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Fri Sep 28 15:46:21 2018
Raid Level : raid6
Array Size : 5860134912 (5588.66 GiB 6000.78 GB)
Used Dev Size : 1953378304 (1862.89 GiB 2000.26 GB)
Raid Devices : 5
Total Devices : 5
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Jan 7 13:02:26 2019
State : active, degraded, recovering
Active Devices : 4
Working Devices : 5
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Rebuild Status : 0% complete
Name : kameraserver:0 (local to host kameraserver)
UUID : 21ae1412:e3b4dd92:2c42cdaa:09862571
Events : 25518
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
2 8 49 2 active sync /dev/sdd1
5 8 65 3 spare rebuilding /dev/sde1
4 8 81 4 active sync /dev/sdf1
Der Rebuild läuft also, den jeweils aktuellen Status kann ich mir jederzeit ausgeben lassen:
edv@kameraserver:~$ sudo cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active raid6 sde1[5] sdd1[2] sdf1[4] sdc1[1] sdb1[0]
5860134912 blocks super 1.2 level 6, 512k chunk, algorithm 2 [5/4] [UUU_U]
[>....................] recovery = 0.9% (17925956/1953378304) finish=324.5min speed=99402K/sec
bitmap: 13/15 pages [52KB], 65536KB chunk
unused devices: <none>
Nach ein paar Stunden sollte also alles wieder okay sein.
Bitte beachtet, dass es hier um einen Daten-Raid geht von dem NICHT gebooted wird. Bei einem bootable-Array ist die Sache etwas komplizierter, da dort auch noch der MBR/GPT kopiert werden muss (auch nicht weiter schwierig, aber eben anders als hier beschrieben.)