LINUX.ORG.RU
ФорумAdmin

Проблемы с mdadm из 3Tb дисков

 , ,


2

2

Столкнулся с проблемой создания массива из больших дисков на XenServer 6.1 (По сути CentOs какой-то там версии) Проблема заключается в том, что после перезагрузки массив пропадает.

Создаю так:

mdadm --create --verbose /dev/md0 --level=1 --metadata=1.2 --raid-devices=2 /dev/sdb /dev/sdc

Ок, всё путём:

# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdc[1] sdb[0]
      2930266448 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  0.0% (1417088/2930266448) finish=378.9min speed=128826K/sec
      
unused devices: <none>

Хотя судя по неполной метадате не совсем:

# mdadm -E /dev/sdc
/dev/sdc:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : ffe1fe9b:f73c3ca1:f7421552:ba6657ae
           Name : 0
  Creation Time : Wed Nov 14 23:06:15 2012
     Raid Level : raid1
   Raid Devices : 2

 Avail Dev Size : 5860532896 (2794.52 GiB 3000.59 GB)
     Array Size : 5860532896 (2794.52 GiB 3000.59 GB)
    Data Offset : 272 sectors
   Super Offset : 8 sectors
          State : active
    Device UUID : cf66ac2e:77948786:b1e043c6:260246ad

    Update Time : Wed Nov 14 23:06:15 2012
       Checksum : 6b7b1523 - correct
         Events : 0


    Array Slot : 1 (0, 1)
   Array State : uU

Тут, казалось бы, в конце должна быть табличка с перечислением компонент массива, а её нету. Видимо поэтому после перезагрузки наблюдаем наличие нечитаемого /dev/md0 и пустой mdstat:

# cat /proc/mdstat
Personalities :
unused devices: <none>

Создавать через gdisk разделы с меткой Linux RAID пробовал - закономерно та же хрень. Вопрос: куда копать?

Ядро само собирает soft-RAID только с суперблоком версии 0.9.

Посмотрите после перезагрузки на состояние дисков (-E /dev/sdc) и попробуйте собрать RAID (--assemble).

Если не путаюсь, то в CentOS 5 сборка RAID осуществляется в initrd, который пересоздаётся после правки /etc/mdadm.conf .

mky ★★★★★
()
Ответ на: комментарий от mky

Не, в дебиане и убунте собирается прекрасно 1.2. Причём, что немаловажно, без прописывания массива в mdadm.conf, то есть фактически без mdadm.conf только по метадате. Сосбтвенно, никогда не правил mdadm.conf и всегда всё прекрасно работало даже после перетыкания дисков в другой комп (вот по таким причинам всегда использую только дебиан или на крайняк убунту).

Так что явно есть что-то важное, про что разработчики цента предсказуемо забыли и что нужно за них сделать вручную. Вопрос только в том, что это?

Malamut
() автор топика
Ответ на: комментарий от vlb

Покажите мне dmesg от загрузки, где будет видно как ядро собирает RAID с суперблоком версии 1.2, а не mdadm.

mky ★★★★★
()
Ответ на: комментарий от mky

Ага, прочитал про сборку. Выяснил, что сборка ядром уже много лет, как объявлена устаревшей и все массивы давно уже собираются силами mdadm при загрузке. По крайней мере в адекватных дистрибутивах, к которым цент никогда не относился. Пойду искать где надо допилить это недоподелие, чтобы оно работало.

Malamut
() автор топика
Ответ на: комментарий от mky

Я могу задать подобный вопрос:

Покажите мне dmesg от загрузки, где будет видно как ядро собирает RAID с суперблоком версии 0.9, а не mdadm.

vlb ★★★
()

Тут, казалось бы, в конце должна быть табличка с перечислением компонент массива
казалось бы

Именно, потому что в выводе mdadm -E никакой таблички нет, она есть в выводе mdadm -D для собранного массива.

Homura_Akemi
()
Ответ на: комментарий от vlb
# dmesg | grep '^md'
md: Autodetecting RAID arrays.
md: autorun ...
md: considering sdc3 ...
md:  adding sdc3 ...
md: sdc2 has different UUID to sdc3
md: sdc1 has different UUID to sdc3
md:  adding sdb3 ...
md: sdb2 has different UUID to sdc3
md: sdb1 has different UUID to sdc3
md: created md3
md: bind<sdb3>
md: bind<sdc3>
md: running: <sdc3><sdb3>
md: raid1 personality registered for level 1
raid1: raid set md3 active with 2 out of 2 mirrors

# mdadm --det /dev/md3 | grep Version
        Version : 0.90

Для версии 1.2 такой выхлоп будет?

mky ★★★★★
()
Ответ на: комментарий от mky

Судя по репам - CentOS 5.

И таки да. В дебиане есть куча плюшек в виде /etc/init.d/mdadm-raid, /etc/init.d/mdadm, mkconf, /etc/default/mdadm благодаря которым mdadm работает и не требует никакого внимания, а в CentOS ничего... Из этого закономерно следует, что без ахрененного бубна рейд в центе работать не будет. Видимо, считается, что суровые админы должны сами писать все эти скрипты... Хорошо хоть ядро положили в дистр...

Malamut
() автор топика
Ответ на: комментарий от Malamut

вплоть до того, что нету даже дефолтного mdadm.conf, скрипта для bash completion и никаких cron-заданий мониторинга работающих массивов. Т.е. пиши в mdadm.conf адрес, не пиши - всё равно письмо тебе никогда не придёт. Абсурд.

Malamut
() автор топика
Ответ на: комментарий от Malamut

Насчёт mdadm.conf это вы правильно стали думать. В Centos 5 в первом стартовом скрипте (/etc/rc.d/rc.sysinit) есть проверка этого файла, и если он существует, то запускается «/sbin/mdadm -A -s».

По идее, если скопировать mdadm.conf из Дебиана (с «DEVICE partitions») то, поведение будет аналогично Дебиановскому.

А создовать raid из командной строки рекомендуют с правкой mdadm.conf, http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-s390info-raid.html

А так RAID положено создавать при инсталяции сервера, это же правильный подход — поставил и забыл, ничего не трогай и не меняй :-))

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.