Festplatte meines Servers abgerauscht - Der Wechsel
Ich betreibe seit einiger Zeit Server aus der Serverbörse von Hetzner. Bisher immer ohne Probleme. Doch es war nur eine Frage der Zeit bis sich das ändert. Beim neusten Server ist immer wieder das ganze System abgeschmiert und nix war mehr erreichbar. Nur der manuelle Reboot über die Robot Konsole half.
Das kann natürlich nicht so bleiben und bat Hetzner mal nachzusehen ob einer der beiden Platten im Raid 1 einen R/W Error ausweißt. Die prombte Rückmeldung kam keine 10 Minuten nach Ticketeröffnung. Erstmal Lob dafür!!
Wie man sieht die erste Platte /dev/sda fehlerfrei /dev/sdb hingegen nicht.
---------------------------------------
/dev/md0 (sda1,sdb1) raid1 16 GiB clean swap
/dev/md1 (sda2,sdb2) raid1 511 MiB clean ext3
/dev/md2 (sda3,sdb3) raid1 1024 GiB clean ext4
/dev/md3 (sda4,sdb4) raid1 1754 GiB clean ext4
---------------------------------------
/dev/sda 3 TB WD-WCC134NR3V26 33°C 47359 hours
Sector size 512n (512 log+phys)
Calibration_Retry_Count 0
Current_Pending_Sector 0
Multi_Zone_Error_Rate 0
Offline_Uncorrectable 0
Raw_Read_Error_Rate 0
Reallocated_Sector_Ct 0
Seek_Error_Rate 0
Spin_Retry_Count 0
---------------------------------------
/dev/sdb 3 TB Z1F15WT0 29°C 69428 hours
Sector size 512e (512 log / 4096 phys)
Current_Pending_Sector 0
End-to-End_Error 0
Offline_Uncorrectable 0
Raw_Read_Error_Rate 125256528
Reallocated_Sector_Ct 552
Seek_Error_Rate 5485301592630
Spin_Retry_Count 0
---------------------------------------
Heute Morgen wurde diese dann ausgetauscht. Dafür musste ich etwas Vorarbeit leisten im laufenden System.
Als Erstes mussten die Platten aus dem RAID entfernt werden. (Hinweis: bei euch kann es eine andere Konstellation sein, also nicht einfach übersehen.)
# mdadm /dev/md0 -r /dev/sdb1
# mdadm /dev/md1 -r /dev/sdb2
# mdadm /dev/md2 -r /dev/sdb3
# mdadm /dev/md3 -r /dev/sdb4
Eine Übersicht über euer System bekommt ihr mit:
cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda4[0]
1822442815 blocks super 1.2 [2/1] [U_]
md2 : active raid1 sda3[0]
1073740664 blocks super 1.2 [2/1] [U_]
md1 : active raid1 sda2[0]
524276 blocks super 1.2 [2/1] [U_]
md0 : active raid1 sda1[0]
33553336 blocks super 1.2 [2/1] [U_]
unused devices: <none>
Danach kann die Platte einfach enfernt werden. Bis dies dann heute morgen um 9 Uhr soweit war, habe ich die restliche Zeit genutzt und habe den Bootloader von sda gesichert.
sgdisk --backup=sda_parttable_gpt.bak /dev/sda # hat bei mir gereicht <----
sgdisk --backup=sdb_parttable_gpt.bak /dev/sdb
sgdisk --backup=sdX_parttable_gpt.bak /dev/sdX
Diesen musste ich nach dem einhängen der neue Platte, auf diese neue schreiben.
Partitionstabelle schreiben
Da auf der neuen Platte keine Partitionstabelle vorhanden ist, muss dies von der anderen Platte übernommen werden. Dies geht folgendermassen.
sgdisk --backup=sda_parttable_gpt.bak /dev/sda
sgdisk --load-backup=sda_parttable_gpt.bak /dev/sdb
Dann eine neue UUID zuweisen.
sgdisk -G /dev/sdb
Neue Platte im Raid einbinden
# mdadm /dev/md0 -a /dev/sdb1
# mdadm /dev/md1 -a /dev/sdb2
# mdadm /dev/md2 -a /dev/sdb3
# mdadm /dev/md3 -a /dev/sdb4
Die neue Festplatte ist somit Teil des Arrays und wird nun synchronisiert. Dieser Vorgang kann je nach Größe eine ganze Weile dauern. Mittels cat /proc/mdstat
kann der Status der Synchronisation aufgerufen werden.
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sdb3[2] sda3[0]
1073609728 blocks super 1.2 [2/1] [U_]
[=============>.......] recovery = 65.6% (704974208/1073609728) finish=300.9min speed=20416K/sec
bitmap: 7/8 pages [28KB], 65536KB chunk
md3 : active raid1 sdb4[2] sda4[0]
1839089088 blocks super 1.2 [2/1] [U_]
resync=DELAYED
bitmap: 9/14 pages [36KB], 65536KB chunk
md1 : active raid1 sdb2[2] sda2[0]
523264 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sdb1[2] sda1[0]
16759808 blocks super 1.2 [2/2] [UU]
unused devices: <none>
Bootloader schreiben
Da die Platte neu ist, braucht dies natürlich einen Bootloader. Der wird folgend auf die Platte geschrieben.
grub-mkdevicemap -n
Bei neueren Servern mit Grub2 Bootloader, reicht dieser einfache Befehl
grub-install /dev/sdb
Damit ist der gesamte Vorgang abgeschlossen.
Wer den Vorgang nachlesen möchte, kann auch auf der Wiki Seite von Hetzner nachsehen. Dort ist auch der Vorgang beschrieben für MBR Partitionstabellen. https://docs.hetzner.com