FastNetMon

суббота, 5 июня 2010 г.

Как правильно разбирать soft-raid на fastvps.ru?

Итак, допустим, мы имеем следующую картину raid массивов:

cat /proc/mdstat
Personalities : [raid1] [raid10] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
4200896 blocks [2/2] [UU]

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

md2 : active raid1 sdb3[1] sda3[0]
306263040 blocks [2/2] [UU]
[==========>..........] resync = 51.7% (158425088/306263040) finish=51.3min speed=47962K/sec

unused devices:



Очевидно, у нас три массива - /dev/md0, /dev/md1, /dev/md2. Каждый из которых, соответственно, состоит из двух физических дисков - md0 из /dev/sda1, /dev/sdb1, md1 из /dev/sda2, /dev/sdb2, md2 из /dev/sda3, /dev/sdb3.

Допустим, у нас физически отказал диск /dev/sda и в результате этого сервер начинает работать крайне нестабильно (да, несмотря на raid), поэтому сбойный жесткий диск необходимо выбросить из массива и дождаться плановой его замены. Но как это сделать?

Разбор массива осуществляется двумя шагами - метим диск как faulty (отказ) ключом -f, а потом выбрасываем ключом -r. Например, для массива /dev/md0 это выглядит так:

mdadm /dev/md0 -f /dev/sda1
mdadm /dev/md0 -r /dev/sda1


После этого массив /dev/md0 перейдет в однодисковый (DEGRADED) режим:

cat /proc/mdstat
Personalities : [raid1] [raid10] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1]
4200896 blocks [2/1] [_U]


Повторяем аналогичную операцию для других массивов (/dev/md1 и /dev/md2) и все, сбойный диск исключен из массива.

4 комментария :

  1. А как определить что именно sda дал сбой?

    ОтветитьУдалить
  2. Формально - никак. Если масив в статусе ресинхронизации, то, к сожалнию, нельзя узнать, какой диск сейчас хранит исходные данные, а какой перезаписывается повторно. Тут просто опытным путем производится и если на массиве стоит /, то основной диск выбросить не даст. Вот как-то так.

    ОтветитьУдалить
  3. Я так понял sda ето гланий диск масива, а sdb ето как би зеркало первого.

    Если вилетит sda, как правильно его заменить, чтоб данние били продублирование с sdb на новоподключенний sda, а не наоборот с пустого sda на диск с данними sdb?

    ОтветитьУдалить
  4. Тут рейд сам разберется, помогать ему не потребуется.

    ОтветитьУдалить