mdadm: Рост Странности Массива RAID0

Я создал 3 массива RAID0 с помощью mdadm на 3 Rackspace CloudServers с помощью CloudBlockStorage Rackspace в качестве их устройств. Каждый массив имеет их собственный набор объемов CBS. CBS RS имеет верхний предел 1 ТБ для их дисков, и мне было нужно более крупное устройство хранения данных. Один из серверов для хранения данных, вторым является живое зеркало того сервера, и третьим является ночной снимок. Я создал массив на каждом из серверов с помощью этой команды:

mdadm --create /dev/md0 --level=0 --raid-devices=3 /dev/xvdb1 /dev/xvdd1 /dev/xvde1

Когда это прибыло время для роста массива, и так как это было моим первым разом, растя один, я запустил на наименее критическом сервере: сервер снимка. Я добавил новый объем и, с небольшой игрой, придумал эту команду:

mdadm --grow /dev/md0 --raid-devices=4 --add /dev/xvdf1

Согласно mdadm странице справочника это сказало, что Вы не можете вырастить RAID0, таким образом, mdadm преобразовывает его в RAID4, выращивает его и затем преобразовывает назад. (Это никогда не преобразовывает назад, но это - другая проблема). Массив изменяется, но размер никогда не изменяется. Мое предположение - то, что новый диск просто стал диском четности для массива. Таким образом для получения пространства мне нужно, я добавил другой объем:

mdadm --grow /dev/md0 --raid-devices=5 --add /dev/xvdg1

Это изменяет и дает мне дополнительных 500 ГБ, я надеялся на то, таким образом, я делаю resize2fs /dev/md0 и хорошо для движения; 2 ТБ пространства.

Таким образом, это - то, где странность происходит. Я переключаюсь для роста массива на зеркальном сервере. При знании от предыдущих шагов, что я должен буду добавить два объема для получения дополнительного пространства, в котором я нуждаюсь, я использую эту команду:

mdadm --grow /dev/md0 --raid-devices=5 --add /dev/xvdf1 /dev/xvdg1

Это изменяется, и вещи выглядят хорошо, но когда я делаю resize2fs /dev/md0 сопровождаемый a df -hal Я вижу, что это действительно выращивало и сообщает о 2.5 ТБ пространства, не 2.0 ТБ, которых я ожидал. Это - как будто это не создало диск четности, я предположил, что это сделало от первого показа и использовало все свободное пространство для массива.

Одной вещью, которая выглядела по-другому, был вывод mdadm -D /dev/md0 после изменения на зеркальном сервере. Я видел это для устройств RAID:

    Number   Major   Minor   RaidDevice State
   0     202       17        0      active sync   /dev/xvdb1
   1     202       49        1      active sync   /dev/xvdd1
   2     202       65        2      active sync   /dev/xvde1
   5     202       97        3      active sync   /dev/xvdg1
   4     202       81        4      active sync   /dev/xvdf1
   5       0        0        5      removed

Вывод cat /proc/mdstat шоу, которые это действительно преобразовывало в RAID4:

    Personalities : [raid0] [raid6] [raid5] [raid4]
md0 : active raid4 xvdg1[5] xvdf1[4] xvdd1[1] xvdb1[0] xvde1[2]
      2621432320 blocks super 1.2 level 4, 512k chunk, algorithm 5 [6/5] [UUUUU_]

unused devices: <none>

Таким образом, мои проблемы..., я выращивал первый массив (сервер снимка) неправильно, и это должно было получить 2.5 ТБ, но моя ошибка только дала ему 2.0 ТБ? Или я выращивал второй массив (зеркальный сервер) неправильно и не имею диска четности, что я думал, что собирался добраться? Что я могу сделать, или чему нужно сделать меня, для роста этих массивов последовательно?

5
задан 9 April 2013 в 17:48
1 ответ

Я тоже столкнулся с его проблемой и после некоторого тестирования могу вырастить программный массив RAID 0.

Я нашел вариант, который, если вы думаете о нем, имеет смысл включить в команду роста , вариант - файл резервной копии . Если вы думаете об этом, чтобы реально увеличить массив RAID 0, как если бы вы делали это на оборудовании, вам нужно будет скопировать данные в другом месте, чтобы уничтожить и воссоздать массив, если нет, я бы хотел, чтобы математика увеличивалась массив RAID 0 без дополнительного места (правда).

Еще я обнаружил, что я не смог просто добавить один диск в массив RAID 0, он работает, только если я добавлю два диска, не пробовал больше, чем это пока.

Таким образом, команда для увеличения массива RAID 0 будет (для вашего случая):

mdadm --grow /dev/md0 --raid-devices=5 \
  --backup-file=/drive/With/Enough/Space/growth.bak --add /dev/xvdf1 /dev/xvdg1
2
ответ дан 3 December 2019 в 01:58

Теги

Похожие вопросы