Yazılımsal Raid Disk Değiştirme Macerası

Bir müşterimizin Hetzner veri merkezindeki SSD Diskli ve yazılımsal Raid1 ile çalışan sunucusunda 1. diskin ( /dev/sda ) bozulduğunu öğrendik.

Hetzner yetkilisi sunucuya KVM bağladı ve uzaktan ekrana ulaşınca disk hatalarını gördüm.

Diskin değişmesi gerektiğini anlayınca Hetznerda ticket açtım ve diski değiştireceklerini ilettiler ve biz izin verdikten yaklaşık 15 dk sonra disk değiştirildi.

Sunucuyu yeniden rescue modunda açtım ve ilk gelen ekranda aşağıdaki bilgiyi gördüm.

Disk /dev/sda: 240 GB (=> 223 GiB) doesn’t contain a valid partition table
 Disk /dev/sdb: 240 GB (=> 223 GiB)

/dev/sda diskini sdb ile aynı şekilde partition yapıp Raid’e eklemem gerekiyordu.

http://www.kernelhardware.org/replacing-failed-raid-drive/ adresindeki tarifle kolayca yaptım.

Önce

sfdisk -d /dev/sdb | sfdisk /dev/sda

komutu ile 2. diskteki partition bilgisini 1. diske kopyaladım. Yaptığım işlemin sağlamasını yapmak için

fdisk -l /dev/sda yazdım ve sdb ile aynı bölmelerin oluştuğunu gördüm

Disk /dev/sda: 223.6 GiB, 240057409536 bytes, 468862128 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 33556480 33554433 16G fd Linux raid autodetect
/dev/sda2 33558528 34607104 1048577 512M fd Linux raid autodetect
/dev/sda3 34609152 468860080 434250929 207.1G fd Linux raid autodetect

Sonrasında oluşan bu bölümleri raid e eklemek kaldı

root@rescue ~ # mdadm — manage /dev/md0 — add /dev/sda1
mdadm: added /dev/sda1
root@rescue ~ # mdadm — manage /dev/md1 — add /dev/sda2
mdadm: added /dev/sda2
root@rescue ~ # mdadm — manage /dev/md2 — add /dev/sda3
mdadm: added /dev/sda3

Bu işlemin de sağlamasını yapalım:

root@rescue ~ # cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sda3[2] sdb3[1]
 217125312 blocks super 1.0 [2/1] [_U]
 resync=DELAYED
md1 : active raid1 sda2[2] sdb2[1]
 524224 blocks super 1.0 [2/1] [_U]
 resync=DELAYED
md0 : active raid1 sda1[2] sdb1[1]
 16777088 blocks super 1.0 [2/1] [_U]
 [=======>………….] recovery = 39.9% (6695680/16777088) finish=0.8min speed=204642K/sec
unused devices:

… derken aaaa o da ne ? Recovery %39.9 .. Yani sistem sağlam diskten yeni diske verileri aktarıyor. Üstelik herhangi ek bir müdahale olmadan.

Bir süre sonra recovery de tamamlandı ve tadaa!! Raid eski güzel günlere döndü :) Üstelik recovery esnasında sunucu faaldi ve üzerindeki site de çalışıyordu.

Not0 : Disklerle ilgili bu tip kritik işlemleri yapmadan önce mutlaka önemli verilerinizin yedeğini sunucu dışında bir ( hatta birkaç ) lokasyona alın.

Not1 : Buradaki disk adları sizin sunucunuzda farklı olabilir. Örneğin; NVME diskli sunucularda disk /dev/sda1 olarak değil /dev/nvme1n1p3 gibi gözüküyor.

Not2 : Bu yazı ilham almanız için yazılmıştır. Yazılanları uygulamanızla alakalı oluşacak zararlardan sorumlu tutulamayacağımı hatırlatmak isterim.

Not3 : Eğer bu tip bir işlemi daha önce hiç yapmadıysanız yapan birinden destek alın.

Siz ve diskleriniz sağlıcakla kalın… ;)