Советы по настройке рейда 10 на * ubuntu

Я хотел бы настроить массив RAID-массива программного обеспечения (4x2TB) для рабочей станции, используя новую установку, но я нахожу не применимые / конфликтующие / старые ресурсы в Интернете. Я хотел бы получить совет сообщества по настройке такого массива, поскольку, как представляется, существует множество возможных конфигураций.

В частности, я буду использовать рабочую станцию ​​для анализа изображений (т. Е. Типичный файл размеры от нескольких сотен МБ-несколько ГБ), поэтому, если есть оптимизации, которые могут быть сделаны для таких целей, это было бы здорово.

Cheers

1
задан 14 December 2012 в 20:16

2 ответа

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

Размер блока. Установите для него значение, превышающее значение по умолчанию 512KiB, чтобы минимизировать накладные расходы для линейных операций чтения / записи больших файлов. Вы должны попробовать это на небольшом разделе на вашем компьютере, чтобы узнать, что дает лучшую производительность, например. 1MB, 2MB, 5MB, 10MB ... Near vs Far, сопоставимый с RAID1 + 0 и RAID0 + 1. Далеко немного быстрее, так как производительность для чтения больше похожа на RAID0. Тем не менее, макет Near располагается по умолчанию, потому что он имеет несколько более высокий шанс выжить в маловероятном случае, когда все зеркальные диски будут разбиты (здесь есть математика с вероятностью). Некоторая более наглядная идея о различиях ниже, счастливо украдена из документации SLES mdadm: Near выглядит как
sda1 sdb1 sdc1 sdd1
  0    0    1    1
  2    2    3    3
  4    4    5    5
Far выглядит как
sda1 sdb1 sdc1 sdd1
  0    1    2    3
  4    5    6    7       
  . . .
  3    0    1    2
  7    4    5    6

Обновление о далекой близости от избыточности от обсуждение в комментариях. Предположим, что sda терпит неудачу:

       near
sda1 sdb1 sdc1 sdd1
  -    0    1    1
  -    2    3    3
  -    4    5    5

, тогда sdc или sdd все еще могут выйти из строя, а далеко:

        far
sda1 sdb1 sdc1 sdd1
  -    1    2    3
  -    5    6    7       
  . . .
  -    0    1    2
  -    4    5    6

теперь только sdc может выйти из строя, поскольку неудачный диск sdb делает блок 4 недоступным, а сбойный диск sdd сделает блок 3 недоступным.

Заключение: шансы на выживание с 2-дисковым сбоем выше при использовании ближайшего макета. (может ли кто-нибудь сделать математику здесь для количественного числа?)

1
ответ дан 25 May 2018 в 03:22
  • 1
    thx для этой ссылки. Мне нравится различие между «Complex vs. Nested RAID 10». Этот особый нюанс мне никогда не был ясен. – Prophet60091 14 December 2012 в 20:46
  • 2
    далеко не имеет больше шансов на выживание (данные находятся на одном диске, только в другом месте), он просто оптимизирован для чтения, а не для записи. Существует также макет смещения, который является более сбалансированным между ними. – psusi 14 December 2012 в 21:28
  • 3
    @psusi Нет, это точно делает разницу! Предположим, что sda терпит неудачу. В ближнем, то sdc или sdd может выйти из строя, но не sdb. Далеко, только sdc может выйти из строя, потому что sdb не может выйти из строя (отсутствующий блок 4) и sdd не может (отсутствующий блок 3). – gertvdijk 15 December 2012 в 06:01
  • 4
    Нет, оба макета могут обрабатывать некоторые ошибки с двойным диском, только те, которые отличаются. До сих пор это sdb и sdd или sda и sdc. – psusi 15 December 2012 в 07:21
  • 5
    Также стоит отметить, что далеко не удастся изменить размер макета. Я недавно взял 3 1 TB WD blue drives дешево и установил их в raid10, компенсировал размер блока 16M и получил почти 500 Мбайт / с последовательной пропускной способности чтения. Я только инициализировал часть массива (с ключом -z), чтобы избежать долгого ожидания повторной синхронизации всего объекта и может вырастить его по мере необходимости (на лету). – psusi 4 January 2014 в 11:47

Поднять некоторые hotspares заранее было бы хорошей идеей. Также учитывайте эти примечания.

Рекомендуемая схема хранения для домашнего сервера? (LVM / JBOD / RAID 5 ...)

См. Сноску [1] в приведенной выше ссылке, чтобы узнать, что происходит с дешевым хранилищем, когда вам это нужно больше всего.

Это все тем не менее, пока вы не узнаете, как ваше целевое приложение фактически использует хранилище. Вы можете обнаружить, что параллелизм возможен, поэтому один блок можно использовать для чтения результатов, а другой - для их записи. Это может быть дополнительно абстрагировано за RAID0 (пока HBA не сообщит QUEUE_FULL) с результатами, полученными с помощью rsync.

Это действительно зависит, говоря «я делаю анализ изображений» без определения рабочей нагрузки или уровня обслуживания просто недостаточно; даже если бы вы это сделали, этот уровень анализа производительности - это настоящая работа, я знаю, что это то, что «я» не делал бы в свое свободное время. Мои намерения - заставить вас задуматься о своем приложении, чтобы создать свои собственные решения.

Одна идея, если вы хотите сделать подход с несколькими массивами, будет создавать два RAID 1 на отдельных контроллерах и добавлять эти MD-устройства к LVM VG для управления. Конечно, RAID 10 работает быстро, но это еще одна очередь хранения, теперь у вас есть два, и с отдельными контроллерами нет совместного использования очереди HBA.

Замечания по производительности:

http: / /www.thesanman.org/2011/12/exchange-completion-time-san-storage.html http://sqlblog.com/blogs/joe_chang/archive/2010/10/18/io-queue-depth-strategy. aspx http://www.ibm.com/developerworks/linux/library/l-4kb-sector-disks/index.html

Помните, что SW RAID не отличается от HW RAID, понять, как он работает или когда это не удается, вы можете оказаться в большей степени подвержены риску, а не тратить свои силы на создание регулярной стратегии резервного копирования (rsync.net). Я потерял счетчик количества пользователей, которые потеряли все, потому что они не читали руководство и фактически проверяли режимы отказа.

-3
ответ дан 25 May 2018 в 03:22
  • 1
    Да, некоторые удивительные требования к IO определенно имеют в виду (анализ изображений). Если бы у меня были деньги, это было бы делом SSD. Кроме того, я понимаю, что SW RAID более гибкий и дешевый, чем HW RAID ... Я даже читал, что это быстрее, но это не здесь и не для этого конкретного вопроса. Thx для ссылки, хотя. – Prophet60091 14 December 2012 в 20:38
  • 2
    В этом случае асинхронное резервное копирование будет дешевле, начните с RAID0 Rsync, чтобы реплицировать вашу работу в безопасное место. Я рекомендую rsync.net, хорошо работает с открытыми стандартами: rsync, duplicity и amp; дежа-DUP. Возможно, вы захотите иметь два массива на отдельных контроллерах. Тот, который выполняет все чтение исходных данных, и тот, который служит местом назначения обработанного результата; хорошо подходит для многопоточной обработки (конвейер). Также вы можете рассмотреть возможность использования XFS или подобных fs, которые превосходят большие файлы, массив хранения - всего лишь одна часть головоломки. – ppetraki 14 December 2012 в 20:47
  • 3
    интересно: поэтому один RAID0, предназначенный для чтения, и еще один RAID0, предназначенный для записи, все время резервирует обработанные результаты. Мне также придется изучить этот вариант. Спасибо. – Prophet60091 14 December 2012 в 21:01
  • 4
    Если вы выполняете пакетную обработку, делаете что-то простое разделение списка на 4 части и создаете конвейер для каждого сегмента для мгновенного параллелизма. Вы можете получить действительно симпатичный здесь и обрезать список по общему размеру и создать работу на каждые 500 ГБ, например. – ppetraki 14 December 2012 в 21:08
  • 5
    Несколько ошибок в этом ответе: 1) lvm over raid10 лучше, чем lvm над двумя raid1s, 2) вам не нужно заменять ту же самую модель с или без разделов, 3) аппаратный или программный рейд не имеет значения; рейд не заменяет регулярные резервные копии! – psusi 14 December 2012 в 21:23

Другие вопросы по тегам:

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