Узнаем какой диск из софтварного райда надо менять

В категории Подсказки от 14 октября, 2013. Автор admin

Способ как найти какой диск надо менять.

1. Смотрим состояние raid’a (raid1)

# cat /proc/mdstat
Personalities : [raid1]
md4 : active raid1 sdb1[2](F) sda1[0]
      4192832 blocks [2/1] [U_]
md5 : active raid1 sdb2[2](F) sda2[0]
      3148672 blocks [2/1] [U_]
md1 : active raid1 sdb5[1] sda5[0]
      521984 blocks [2/2] [UU]
md2 : active raid1 sda6[0]
      186442240 blocks [2/1] [U_]
md0 : active raid1 sdb3[1] sda3[0]
      1052160 blocks [2/2] [UU]

у md4 и md5 около sdb1 и sdb2 наблюдаем буковку (F), что означает что этот диск надо заменить. Тоесть плохой sdb.

2. Смотрим точно ли что-то плохо

mdadm --detail /dev/md4
    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       0        0       -1      removed
       2       8       17       -1      faulty   /dev/sdb1
mdadm --detail /dev/md5
    Number   Major   Minor   RaidDevice State
       0       8        2        0      active sync   /dev/sda2
       1       0        0       -1      removed
       2       8       18       -1      faulty   /dev/sdb2

нас интересует faulty. У хорошего диска этой строки просто нету

    Number   Major   Minor   RaidDevice State
       0       8        5        0      active sync   /dev/sda5
       1       8       21        1      active sync   /dev/sdb5

3. Осталось выяснить какой именно диск менять. Для этого используем утилиту hdparm

hdparm -I /dev/sdb
...
ATA device, with non-removable media
        Model Number:       ST3200820DS
        Serial Number:      3DE08W1C
        Firmware Revision:  3.AAC
...

4. Вот и все. Тормозим машину, вытаскиваем диск и ищем на нем серийный 3DE08W1C и меняем его на новый.

Меняя диски на лету надо вытащить плохой диск из массива, для этого

mdadm --manage /dev/md0 --fail /dev/sdb3

где /dev/md0 — массив, а /dev/sdb3 — плохой диск

Вставить новый диск и создать такие же разделы что и на хорошем диске массива. Для этого можно воспользоваться sfdisk’ом

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

значит что мы имеем:

md4 sda1
md5 sda2
md1 sda5
md2 sda6
md0 sda3

это массив и sdb который разбит также как и sda. Осталось только вставить диски в массив:

mdadm --manage /dev/md0 --add /dev/sdb3
mdadm --manage /dev/md2 --add /dev/sdb6
mdadm --manage /dev/md1 --add /dev/sdb5
mdadm --manage /dev/md5 --add /dev/sdb2
mdadm --manage /dev/md4 --add /dev/sdb1

и смотрим что получилось:

cat /proc/mdstat

Personalities : [raid1]
md4 : active raid1 sdb1[2] sda1[0]
      4192832 blocks [2/1] [U_]
        resync=DELAYED
md5 : active raid1 sdb2[2] sda2[0]
      3148672 blocks [2/1] [U_]
        resync=DELAYED
md1 : active raid1 sdb5[2] sda5[0]
      521984 blocks [2/1] [U_]
        resync=DELAYED
md2 : active raid1 sdb6[2] sda6[0]
      186442240 blocks [2/1] [U_]
      [===>.................]  recovery = 19.8% (37084416/186442240) finish=57.0min speed=43600K/sec
md0 : active raid1 sdb3[1] sda3[0]
      1052160 blocks [2/2] [UU]

unused devices: <none>
Тэги: ,

Разобрать rpm-пакет

В категории Подсказки от 24 сентября, 2013. Автор admin

Как легко разобрать rpm-пакет на составляющие файлы:

rpm2cpio name_pak.rpm |cpio --extract --make-directories

Тэги:

Вывод процесса команды dd

В категории Подсказки от 10 июля, 2013. Автор admin

Программа dd молчаливая, статистику показывает только в конце. Но если хочется наблюдать за процессом, то можно посылать процессу сигнал SIGUSR1.

Сначала нужно определить pid — интересует dd:

ps ax | grep dd
3429 pts/0    R+     2:10 dd bs=4k if=/dev/sdc of=/dev/sdb conv=noerror,sync

Затем в другой сессии запустить:
# while true; do kill -USR1 3429; sleep 60; done

Или без предварительного узнавания pid. Воспользуемся командой pidof, указав ей какая программа нас интересует:

#while true; do kill -USR1 `pidof dd`; sleep 30; done

В сессии с выполняющейся dd раз в минуту будет выдаваться такая информация:

9729620+0 records in
9729620+0 records out
39852523520 bytes (40 GB) copied, 391.974 s, 102 MB/s
 
Тэги: , ,