Вихідні дані
Маємо два жорсткі диски: /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