У меня есть домашний медиа-сервер, работающий на 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 и т. Д.), Но я хочу знать наверняка:
- http://en.wikipedia.org/wiki/Non-standard_RAID_levels#Linux_MD_RAID_10
- /server/200725/mirrored-and-stripped-hd-drives-in-raid10
Вот вывод '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>
Итак, мои вопросы:
- Как мне узнать, какие диски являются зеркалами друг друга?
- Есть ли способ изменить это, или я должен просто поменять местами провода (так как это поменяет местами буквы дисков), а затем перестроить RAID?
Заранее спасибо.
Замечание, касающееся всех, кто хочет знать, почему я это делаю: приводы одной и той же модели и партии, работающие при одинаковых нагрузках, времени безотказной работы и температуре, имеют небольшие систематические колебания, и различия во времени до отказа между приводами будут в основном приводиться в действие. случайным изменением в процессе производства. Это увеличивает риск смерти нескольких дисков одновременно. Приобретая накопители не только у разных серий, но и у разных производителей, я вносил систематические изменения в свой массив, влияя на то, какие накопители выйдут из строя в одно и то же время.
RaidDevice
колонку. Это может быть так же просто, как (0,1), (2,3), (4,5), (6,7). Это заставило бы меня предположить, что вам нужно сделать так, чтобы RaidDevice выстраивался в линию как WD / Sea / WD / Sea / и т.д. ... Но я не уверен на 100% в этом.Ответы:
Последние версии
mdadm
показывают это право в деталях массива. Пример изmdadm v3.3 - 3rd September 2013
Обратите внимание на обозначение
set-A
илиset-B
. В приведенном выше случае,sdd
иsdb
может потерпеть неудачу вместе без потери данных. Возможно, эти данные недоступны во время перестройки массива.источник
У меня была та же проблема, и после того, как я погуглил некоторое время, я не нашел надежного ответа. После некоторых размышлений я подумал, что зеркала имеют одинаковые данные, и мы могли бы сравнить их.
ПРИМЕЧАНИЕ: БУДЬТЕ ОСТОРОЖНЫ, ЕСЛИ У ВАС ЕЩЕ БОЛЬШЕ 2 ДРАЙВОВ С ОДНОЙ ТАКОЙ ПРОВЕРКОЙ, КОТОРОЕ ВЫ, ПОГОДНО, СРАВНИВАЕТЕ ПУСТОЕ ДИСКСПЕЙС, ВЫБЕРИТЕ ДРУГОЙ СМЕЩЕНИЕ (опция пропуска).
С помощью нескольких команд вы можете понять это:
Это выведет что-то вроде:
Теперь мы знаем, что sda / sdb - это одно зеркало, а sdc / sdd - другое. Один из них должен остаться, чтобы избежать потери данных.
Команда "dd" читает один раз (count = 1) один мегабайт (bs = 1M) с смещением в один мегабайт от начала диска (skip = 1M). Не пропускайте = 0, потому что начало диска содержит различную информацию. Данные обычно начинаются после 1 МБ.
источник
dd if=/dev/$disk skip=1M bs=1M count=1
не работает для меняdd (coreutils) 8.23
из Debian 8 (Джесси) не поддерживаетskip
с модулем. Вместо этого я использовалskip=1
где1
относительноbs
. Возможно опечатка?d41d8cd98f00b204e9800998ecf8427e
вашdd
звонок не будет выполнен. Это хеш пустой строки :-)Я думаю, что вы говорите о реальном массиве рейдов 10 (полосатое зеркалирование 1 + 0)
1. Создайте 4 массива raid1:
В настоящее время у вас есть 4 массива raid 1 с 2 ТБ места на каждом,
2. Давайте их соберем!
--run options полезен , потому что некоторые компоненты активны в другом массиве
3. Адаптируйте ваш файл mdadm.conf
Возможно, вам потребуется (в зависимости от вашей конфигурации) адаптировать этот файл для отражения изменений в нашем новом массиве (/ dev / md4).
4. Наслаждайтесь .. Ваш новый DIY массив raid10!
источник
Вы всегда можете проверить, какие зеркала, грубо сравнивая данные, например:
(если вы не получаете совпадений, вам может потребоваться увеличить значение skip = , так как вы не пропускаете superblocksl RAID; и если вы получаете одну и ту же md5sum для более чем 2 дисков, вам может потребоваться увеличить count = , так как Вероятно, вы читаете и суммируете нули m5 - чтобы не допустить, чтобы вы сначала поместили некоторые данные в рейд, иначе они могут быть полны нулей)
Что касается замены проводов, вам не нужно этого делать - mdadm должен создать raid с устройствами, как указано в командной строке в mdadm --create , так что вы просто указали бы диски в другом порядке в командной строке.
источник
Запустите «mdadm - examine device» на каждом компонентном устройстве (т. Е. / Dev / sda1, / dev / sdb1 и т. Д.). Полученная там информация должна помочь вам определить, какие компоненты являются зеркалом друг друга.
источник