GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengganti harddisk yang gagal di RAID perangkat lunak Linux

Panduan ini menunjukkan cara menghapus hard drive yang gagal dari larik RAID1 Linux (RAID perangkat lunak), dan cara menambahkan hard disk baru ke larik RAID1 tanpa kehilangan data. Saya akan menggunakan gdisk untuk menyalin skema partisi, sehingga akan bekerja dengan harddisk besar dengan GPT (GUID Partition Table) juga.

1 Catatan Awal

Dalam contoh ini saya memiliki dua hard drive, /dev/sda dan /dev/sdb, dengan partisi /dev/sda1 dan /dev/sda2 serta /dev/sdb1 dan /dev/sdb2.

/dev/sda1 dan /dev/sdb1 membentuk larik RAID1 /dev/md0.

/dev/sda2 dan /dev/sdb2 membentuk larik RAID1 /dev/md1.

/dev/sda1 + /dev/sdb1 = /dev/md0
/dev/sda2 + /dev/sdb2 = /dev/md1

/dev/sdb telah gagal, dan kami ingin menggantinya.

2 Bagaimana Cara Mengetahui Jika Hard Disk Gagal?

Jika disk gagal, Anda mungkin akan menemukan banyak pesan kesalahan di file log, mis. /var/log/messages atau /var/log/syslog.

Anda juga dapat menjalankan

cat /proc/mdstat

dan sebagai ganti string [UU] Anda akan melihat [U_] jika Anda memiliki larik RAID1 yang terdegradasi.

3 Menghapus Disk yang Gagal

Untuk menghapus /dev/sdb, kami akan menandai /dev/sdb1 dan /dev/sdb2 sebagai gagal dan menghapusnya dari array RAID masing-masing (/dev/md0 dan /dev/md1).

Pertama kita tandai /dev/sdb1 sebagai gagal:

mdadm --manage /dev/md0 --fail /dev/sdb1

Keluaran dari

cat /proc/mdstat

akan terlihat seperti ini:

server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[2](F)
      24418688 blocks [2/1] [U_]

md1 : active raid1 sda2[0] sdb2[1]
      24418688 blocks [2/2] [UU]

unused devices: <none>

Kemudian kami menghapus /dev/sdb1 dari /dev/md0:

mdadm --manage /dev/md0 --remove /dev/sdb1

Outputnya harus seperti ini:

server1:~# mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm: hot removed /dev/sdb1

Dan

cat /proc/mdstat

harus menunjukkan ini:

server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
      24418688 blocks [2/1] [U_]

md1 : active raid1 sda2[0] sdb2[1]
      24418688 blocks [2/2] [UU]

unused devices: <none>

Sekarang kita melakukan langkah yang sama lagi untuk /dev/sdb2 (yang merupakan bagian dari /dev/md1):

mdadm --manage /dev/md1 --fail /dev/sdb2
cat /proc/mdstat
server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
      24418688 blocks [2/1] [U_]

md1 : active raid1 sda2[0] sdb2[2](F)
      24418688 blocks [2/1] [U_]

unused devices: <none>
mdadm --manage /dev/md1 --remove /dev/sdb2
server1:~# mdadm --manage /dev/md1 --remove /dev/sdb2
mdadm: hot removed /dev/sdb2
cat /proc/mdstat
server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
      24418688 blocks [2/1] [U_]

md1 : active raid1 sda2[0]
      24418688 blocks [2/1] [U_]

unused devices: <none>

Kemudian matikan sistem:

shutdown -h now

dan ganti hard drive /dev/sdb lama dengan yang baru (harus memiliki ukuran setidaknya sama dengan yang lama - jika hanya beberapa MB lebih kecil dari yang lama, maka membangun kembali array akan gagal).

4 Menambahkan Hard Disk Baru

Setelah Anda mengubah hard disk /dev/sdb, boot sistem.

Hal pertama yang harus kita lakukan sekarang adalah membuat partisi yang sama persis seperti pada /dev/sda. Kita dapat melakukannya dengan perintah sgdisk dari paket gdisk. Jika Anda belum menginstal gdisk, jalankan perintah ini untuk menginstalnya di Debian dan Ubuntu:

apt-get install gdisk

Untuk distribusi Linux berbasis RedHat seperti CentOS gunakan:

yum install gdisk

dan untuk penggunaan OpenSuSE:

yast install gdisk

Langkah selanjutnya adalah opsional tetapi direkomendasikan. Untuk memastikan bahwa Anda memiliki cadangan skema partisi, Anda dapat menggunakan sgdisk untuk menulis skema partisi kedua disk ke dalam file. Saya akan menyimpan cadangan di folder /root.

sgdisk --backup=/root/sda.partitiontable /dev/sda
sgdisk --backup=/root/sdb.partitiontable /dev/sdb

Jika terjadi kegagalan, Anda dapat memulihkan tabel partisi dengan opsi --load-backup dari perintah sgdisk.

Sekarang salin skema partisi dari /dev/sda ke /dev/sdb run:

sgdisk -R /dev/sdb /dev/sda

setelah itu, Anda harus mengacak GUID pada hard disk baru untuk memastikan bahwa mereka unik

sgdisk -G /dev/sdb

Anda dapat menjalankan

sgdisk -p /dev/sda
sgdisk -p /dev/sdb

untuk memeriksa apakah kedua hard drive memiliki partisi yang sama sekarang.

Selanjutnya kita tambahkan /dev/sdb1 ke /dev/md0 dan /dev/sdb2 ke /dev/md1:

mdadm --manage /dev/md0 --add /dev/sdb1
server1:~# mdadm --manage /dev/md0 --add /dev/sdb1
mdadm: re-added /dev/sdb1
mdadm --manage /dev/md1 --add /dev/sdb2
server1:~# mdadm --manage /dev/md1 --add /dev/sdb2
mdadm: re-added /dev/sdb2

Sekarang kedua aray (/dev/md0 dan /dev/md1) akan disinkronkan. Jalankan

cat /proc/mdstat

untuk melihat kapan selesai.

Selama sinkronisasi, output akan terlihat seperti ini:

server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
      24418688 blocks [2/1] [U_]
      [=>...................]  recovery =  9.9% (2423168/24418688) finish=2.8min speed=127535K/sec

md1 : active raid1 sda2[0] sdb2[1]
      24418688 blocks [2/1] [U_]
      [=>...................]  recovery =  6.4% (1572096/24418688) finish=1.9min speed=196512K/sec

unused devices: <none>

Ketika sinkronisasi selesai, output akan terlihat seperti ini:

server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
      24418688 blocks [2/2] [UU]

md1 : active raid1 sda2[0] sdb2[1]
      24418688 blocks [2/2] [UU]

unused devices: <none>

Itu dia, Anda telah berhasil mengganti /dev/sdb!


Linux
  1. Cara membuat kata sandi acak di linux menggunakan /dev/random

  2. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  3. Seberapa Portabel /dev/stdin, /dev/stdout Dan /dev/stderr?

  1. Kapan Menggunakan /dev/random Vs /dev/urandom?

  2. Linux – Apa Arti Huruf 'u' Di /dev/urandom?

  3. Cara memetakan perangkat /dev/sdX dan /dev/mapper/mpathY dari perangkat /dev/dm-Z

  1. Apa itu file /dev/zero dan /dev/null di Linux?

  2. /dev/sdb:Tidak ada file atau direktori seperti itu (tetapi /dev/sdb1 dll. ada)

  3. Linux:Perbedaan antara /dev/console , /dev/tty dan /dev/tty0