« Назад

 

Вихідні дані

 Маємо два жорсткі диски: /dev/sda та /dev/sdb. З них створено чотири програмні RAID-масиви:

  • /dev/md0 – swap
  • /dev/md1 – /boot
  • /dev/md2 – /
  • /dev/md3 – /data

 

 Для отримання інформації про стан масивів виконуємо:

# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md3 : active raid1 sda4[0] sdb4[1]
     1822442815 blocks super 1.2 [2/2] [UU]

md2 : active raid1 sda3[0] sdb3[1]
     1073740664 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sda2[0] sdb2[1]
     524276 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
     33553336 blocks super 1.2 [2/2] [UU]

unused devices: 

 

Про те, що масиви в порядку, вказує на наявність двох літер U у квадратних лапках кожного масиву – [UU]. Якщо масив пошкоджено, літера U змінюється на _. Для цього прикладу: 

  • [_U] – пошкоджено /dev/sda
  • [U_] – пошкоджено /dev/sdb

 

# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md3 : active raid1 sda4[0] sdb4[1](F) 1822442815 blocks super 1.2 [2/1] [U_] md2 : active raid1 sda3[0] sdb3[1](F) 1073740664 blocks super 1.2 [2/1] [U_] md1 : active raid1 sda2[0] sdb2[1](F) 524276 blocks super 1.2 [2/1] [U_] md0 : active raid1 sda1[0] sdb1[1](F) 33553336 blocks super 1.2 [2/1] [U_] unused devices:

 

Масиви не сихронізовані і винний у цьому збійний диск /dev/sdb, його змінюватимемо. 

 

Видалення пошкодженого жорсткого диска

 Перед встановленням нового жорсткого диска необхідно видалити пошкоджений диск з масиву. Для цього виконуємо наступну послідовність команд:  

# mdadm /dev/md0 -r /dev/sdb1
# mdadm /dev/md1 -r /dev/sdb2
# mdadm /dev/md2 -r /dev/sdb3
# mdadm /dev/md3 -r /dev/sdb4

 

Ситуації, коли не всі програмні RAID-масиви пошкоджені: 

# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda4[0] sdb4[1](F)
      1822442815 blocks super 1.2 [2/1] [U_]

md2 : active raid1 sda3[0] sdb3[1](F)
      1073740664 blocks super 1.2 [2/1] [U_]

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

md0 : active raid1 sda1[0] sdb1[1]
      33553336 blocks super 1.2 [2/1] [UU]

unused devices: 

 

У такому разі не вдасться видалити робочий розділ із масиву. Необхідно спочатку помітити його як збійний, а потім видаляти: 

# mdadm /dev/md0 -f /dev/sdb1
# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md3 : active raid1 sda4[0] sdb4[1](F) 1822442815 blocks super 1.2 [2/1] [U_] md2 : active raid1 sda3[0] sdb3[1](F) 1073740664 blocks super 1.2 [2/1] [U_] md1 : active raid1 sda2[0] sdb2[1](F) 524276 blocks super 1.2 [2/1] [U_] md0 : active raid1 sda1[0] sdb1[1](F) 33553336 blocks super 1.2 [2/1] [U_] unused devices:# mdadm /dev/md0 -r /dev/sdb1
# mdadm /dev/md1 -r /dev/sdb2
# mdadm /dev/md2 -r /dev/ sdb3
# mdadm /dev/md3 -r /dev/sdb4

 

Підготовка нового жорсткого диска

Обидва диски в масиві повинні мати абсолютно однакове розбиття. Залежно від типу таблиці розділів, що використовується (MBR або GPT) необхідно використовувати відповідні утиліти для копіювання таблиці розділів.

Для жорсткого диска з MBR використовуємо утиліту sfdisk:

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

 

де /dev/sda – диск джерело, /dev/sdb – диск призначення.

Для жорсткого диска з GPT використовуємо утиліту sgdisk з GPT fdisk:

#sgdisk -R /dev/sdb /dev/sda
#sgdisk -G /dev/sdb

 

де /dev/sda – диск джерело, /dev/sdb – диск призначення. Другий рядок призначає новому жорсткому диску випадковий UUID.

 

Додати новий жорсткий диск

Залишилося додати новий, розмічений жорсткий диск до масивів і встановити на ньому завантажувач:

# mdadm /dev/md0 -a /dev/sdb1
# mdadm /dev/md1 -a /dev/sdb2
# mdadm /dev/md2 -a /dev/sdb3
# mdadm /dev/md3 -a /dev/sdb4

 

Після цього розпочнеться процес синхронізації. Час синхронізації залежить від обсягу жорсткого диска:

# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sdb4[1] sda4[0]
     1028096 blocks [2/2] [UU]
     [==========>..........] resync = 50.0% (514048/1028096) finish=97.3min speed=65787K/sec

md2 : active raid1 sdb3[1] sda3[0]
     208768 blocks [2/2] [UU]

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

md0 : active raid1 sdb1[1] sda1[0]
     208768 blocks [2/2] [UU]

unused devices: 

 

Якщо в системі використовується завантажувач GRUB2, достатньо виконати наступні команди (при цьому немає необхідності чекати закінчення процесу синхронізації):

#grub-install /dev/sdb
#update-grub 

 

Після закінчення синхронізації можете зітхнути спокійно – ваші дані знову у безпеці.

 

May 9, 2013

Якщо у вас виникли питання

ЗВ'ЯЖІТЬСЯ З НАМИ!

Залишіть свої дані і ми зв'яжемося з вами найближчим часом