8

У меня есть домашний медиа-сервер, работающий на openSUSE 12.2. Я использую восемь дисков по 2 ТБ в конфигурации RAID-10. Я специально купил два разных типа дисков: четыре Seagate Barracuda Green и четыре Western Digital Red. Моя цель - настроить RAID так, чтобы каждая зеркальная пара в массиве состояла из разнородных дисков (т. Е. Одного диска Seagate и одного диска WD). К сожалению, YaST2 Partitioner не предоставил мне такого выбора в структуре массива, поэтому сейчас я пытаюсь выяснить, как выглядит структура RAID10 по умолчанию.

Я знаю следующее:

  • sdc, sdd, sde и sdf - все диски WD
  • SDG, SDH, SDI и SDJ являются все диски Seagate

Я выбрал макет по умолчанию 'n2' при создании RAID. Я полагаю, основываясь на информации из этих двух источников, что соседние диски являются зеркальными (то есть sdc == sdd, sde == sdf и т.д.), Но я хочу знать наверняка:

Вот вывод 'mdadm --detail /dev /md0':

/dev/md0:
        Version : 1.0
  Creation Time : Sat Mar 16 12:55:11 2013
     Raid Level : raid10
     Array Size : 7814045696 (7452.05 GiB 8001.58 GB)
  Used Dev Size : 1953511424 (1863.01 GiB 2000.40 GB)
   Raid Devices : 8
  Total Devices : 8
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Sat Mar 16 13:09:37 2013
          State : active, resyncing
 Active Devices : 8
Working Devices : 8
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 2048K

  Resync Status : 1% complete

           Name : aldaris:0  (local to host aldaris)
           UUID : c6cc3943:97394500:b77d44cd:f02ed876
         Events : 149

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       49        1      active sync   /dev/sdd1
       2       8       65        2      active sync   /dev/sde1
       3       8       81        3      active sync   /dev/sdf1
       4       8       97        4      active sync   /dev/sdg1
       5       8      113        5      active sync   /dev/sdh1
       6       8      129        6      active sync   /dev/sdi1
       7       8      145        7      active sync   /dev/sdj1

А вот содержимое /proc /mdstat:

Personalities : [raid10] md0 : active raid10 sdj1[7] sdi1[6] sdh1[5] sdg1[4] sdf1[3] sde1[2] sdd1[1] sdc1[0]
      7814045696 blocks super 1.0 2048K chunks 2 near-copies [8/8] [UUUUUUUU]
      [>....................]  resync =  4.8% (375163456/7814045696) finish=1206.5min speed=102751K/sec
      bitmap: 57/59 pages [228KB], 65536KB chunk

unused devices: <none>

Итак, мои вопросы:

  1. Как мне узнать, какие диски являются зеркалами друг друга?
  2. Есть ли способ изменить это, или я должен просто поменять местами провода (так как это поменяет местами буквы дисков), а затем перестроить RAID?

Заранее спасибо.


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

5 ответов5

5

Последние версии mdadm показывают это право в деталях массива. Пример из mdadm v3.3 - 3rd September 2013

 $ mdadm --detail /dev/md1

/dev/md1:
        Version : 1.1
  Creation Time : Tue Aug 23 11:45:41 2016
     Raid Level : raid10
     Array Size : 3864803328 (3685.76 GiB 3957.56 GB)
  Used Dev Size : 1932401664 (1842.88 GiB 1978.78 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Fri Aug 26 09:39:28 2016
          State : active
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 512K

           Name : px4-300r-THXOAP:1  (local to host px4-300r-THXOAP)
           UUID : 5ee06437:83dfdb64:808feaa2:5d57b1e6
         Events : 620

    Number   Major   Minor   RaidDevice State
       4       8       50        0      active sync set-A   /dev/sdd2
       1       8       34        1      active sync set-B   /dev/sdc2
       2       8       18        2      active sync set-A   /dev/sdb2
       3       8        2        3      active sync set-B   /dev/sda2

Обратите внимание на обозначение set-A или set-B . В приведенном выше случае sdd и sdb могут потерпеть неудачу вместе без потери данных. Вполне возможно, что эти данные недоступны во время перестройки массива.

1

У меня была такая же проблема, и после того, как я немного погуглил, я не нашел надежного ответа. После некоторых размышлений я подумал, что зеркала имеют одинаковые данные, и мы могли бы сравнить какую-то их часть.

ПРИМЕЧАНИЕ: БУДЬТЕ ОСТОРОЖНЫ, ЕСЛИ У ВАС ЕЩЕ БОЛЬШЕ 2 ДРАЙВОВ С ОДНОЙ ТАКОЙ ПРОВЕРКОЙ, КОТОРОЕ ВЫ, ПОГОДНО, СРАВНИВАЕТЕ ПУСТОЕ ДИСКСПЕЙС, ВЫБЕРИТЕ ДРУГОЙ СМЕЩЕНИЕ (опция пропуска).

С помощью нескольких команд вы можете понять это:

for disk in sda sdb sdc sdd
do
  echo -n "$disk = ";
  dd if=/dev/$disk skip=1M bs=1M count=1 2>/dev/null | md5sum;
done

Это выведет что-то вроде:

sda = 7c4ef0f3e0143b35e044d5d65908a3a2  -
sdb = 7c4ef0f3e0143b35e044d5d65908a3a2  -
sdc = e02f7d61ad3791bd691da5b7516928a5  -
sdd = e02f7d61ad3791bd691da5b7516928a5  -

Теперь мы знаем, что sda/sdb - это одно зеркало, а sdc/sdd - другое. Один из каждого должен остаться, чтобы избежать потери данных.

Команда "dd" читает один раз (count = 1) один мегабайт (bs = 1M) с смещением в один мегабайт от начала диска (skip = 1M). Не пропускайте = 0, потому что начало диска содержит различную информацию. Данные обычно начинаются после 1 МБ.

0

Запустите «mdadm - examine device» на каждом компонентном устройстве (например, /dev /sda1, /dev /sdb1 и т.д.). Полученная информация должна помочь вам определить, какие компоненты являются зеркалом друг друга.

0

Я думаю, что вы говорите о реальном массиве рейдов 10 (полосатое зеркалирование 1+0)

sdc/sdg = md0 raid1 2TB |
sdd/sdh = md1 raid1 2TB |_  md4 raid0 8TB
sde/sdi = md2 raid1 2TB |
sdf/sdj = md3 raid1 2TB |

1. Создайте 4 массива raid1:

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/{sdc,sdg}
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/{sdd,sdh}
mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/{sde,sdi}
mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/{sdf,sdj}

В настоящее время у вас есть 4 массива raid 1 с 2 ТБ места на каждом,

2. Давайте соберем их!

mdadm --create /dev/md4 --run --level=0 --raid-devices=4 /dev/md{0,1,2,3}

--run options полезен , потому что некоторые компоненты активны в другом массиве

3. Адаптируйте ваш файл mdadm.conf

Вам может понадобиться (в зависимости от вашей конфигурации) адаптировать этот файл для отражения изменений в нашем новом массиве (/dev/md4).

4. Наслаждаться.. Ваш новый DIY массив raid10!

0

Вы всегда можете проверить, какие зеркала, грубо сравнивая данные, например:

# dd if=/dev/sda1 bs=1M skip=10 count=50 2> /dev/null | md5sum -
7c01afa434fc74aeddc8ec0546e4c332  -
# dd if=/dev/sdb1 bs=1M skip=10 count=50 2> /dev/null | md5sum -
1f0f8166857710d555cb35db4a23891a  -
# dd if=/dev/sdg1 bs=1M skip=10 count=50 2> /dev/null | md5sum -
7c01afa434fc74aeddc8ec0546e4c332  -
# dd if=/dev/sdf1 bs=1M skip=10 count=50 2> /dev/null | md5sum -
1f0f8166857710d555cb35db4a23891a  -

(если вы не получаете совпадений, вам может потребоваться увеличить значение skip =, так как вы не пропускаете RAID superblocksl; и если вы получаете одну и ту же md5sum для более чем 2 дисков, вам может потребоваться увеличить count =, так как вы Вы, вероятно, читаете и суммируете нули m5 - чтобы не допустить, чтобы вы сначала поместили некоторые данные в рейд, иначе они могут быть полны нулей)

Что касается перестановки проводов, вам не нужно этого делать - mdadm должен создать raid с устройствами, как указано в командной строке в mdadm --create, так что вы просто указали бы диски в другом порядке в командной строке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .