Ghostboard pixel

Festplatte meines Servers abgerauscht - Der Wechsel

Festplatte meines Servers abgerauscht - Der Wechsel
Quelle: https://unsplash.com/photos/1iVKwElWrPA

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