Различия

Показаны различия между двумя версиями страницы.


Предыдущая версия
raid [2023/11/24 18:51] (текущий) – [RAID] darkfire
Строка 1: Строка 1:
 +====== RAID ======
  
 +{{htmlmetatags>
 +metatag-description=(Выбор RAID. Мониторинг массива дисков RAID контролера.)
 +}}
 +
 +{{ ::storage_raid_04.png?nolink |}}
 +
 +**RAID** (англ. redundant array of independent/inexpensive disks — избыточный массив независимых/недорогих жёстких дисков) — массив из нескольких дисков, управляемых контроллером, взаимосвязанных скоростными каналами и воспринимаемых внешней системой как единое целое. В зависимости от типа используемого массива может обеспечивать различные степени отказоустойчивости и быстродействия. Служит для повышения надёжности хранения данных и/или для повышения скорости чтения/записи информации (RAID 0).
 +
 +Мониторинг RAID обычная задача пользователя. Почему пользователя? В настоящее время RAID -массивы стоят на различных устройствах, начиная от NAS для домашнего использования и заканчивая промышленными серверами. Нередко на обычном компьютере стоит RAID.
 +
 +**Виды RAID -массивов** 
 +
 +  * **аппаратные (hardware)**: полностью аппаратный RAID-контроллер проводит все операции самостоятельно (независимо от процессора), и представляет весь RAID-массив в виде одного диска. Такие устройства оснащаются сложными вычислительными процессорами и собственной памятью. Очень часто аппаратные контроллеры выполняются в виде плат расширения для PCIe ×4 или PCIe ×16. Цена такого устройства вполне сопоставима со стоимостью неплохого системного блока. [[Adaptec]]: Adaptec SATA RAID 2410SA; Adaptec ASR-6405; 3ware/LSI Logic: 3ware 9650SE-4LPML [[SATA]], 3ware 3W-9690SA-4I [[SAS]].
 +  * **программно-аппаратно**: часть функций контроллера возлагается на плечи центрального процессора и оперативной памяти посредством драйверов. Как правило, по такому принципу работают все недорогие RAID-контроллеры, включая те, что встраиваются сегодня в материнские платы. Управление данными происходит не на уровне самого «железа», а на уровне микрокода BIOS через драйвер ОС. От сюда и такие понятия как «драйвера» на SATA-RAID (без которых RAID видится как отдельные диски), от сюда и проблемы. Во-первых это несовместимость – сгорела материнская плата, и ищи такую же плату целиком (не контроллер), нужна идентичная плата чтобы добыть свои ценные данные.
 +      * [[dmraid|FakeRAID при помощи утилиты dmraid]] - обнаруживает, активирует, деактивирует и показывает свойства программных RAID-массивов (интегрированных в материнскую плату).
 +  * **программные(software)**:
 +      * [[mdadm|mdadm]] программные RAID массивы для ОС GNU/Linux (Linux Software Raid)
 +      * основанные на GEOM: gstripe (RAID0), [[gmirror]] (RAID1), graid3 (RAID3), gconcat для ОС [[FreeBSD]]
 +
 +  * **внешние**:
 +      * Функции RAID выполняет микропроцессор внешнего, независимого от хоста RAID-контроллера. Внешние RAID-контроллеры размещаются в отдельном корпусе (обычно вместе с самим RAID-массивом), имеющем свой независимый блок питания и управляются через внешний канал SCSI-контроллера, подключенного к системной плате. Внешние RAID-контроллеры обеспечивают самый высокий уровень производительности и надежности из всех типов RAID-контроллеров и их рекомендуют для серверов среднего и верхнего уровней. Наличие же каналов Fibre Channel позволяет разнести сервер и raid массив на значительное расстояние для защиты данных. Единственный недостаток - относительно высокая цена.
 +
 +<note important>К сожалению, каждая разновидность RAID (имеется ввиду производитель решения) контролируется разными программами - нет единообразия решений.</note>
 +
 +====== Выбор RAID - контроллера ======
 +  * **Аппаратный или программный RAID?** Разница между двумя видами RAID заключается не только в цене. Аппаратный RAID-контроллер производит все необходимые вычисления самостоятельно; программный RAID нагружает центральный процессор сервера. Поэтому, если уровень RAID сравнительно простой (RAID 0 или 10), а сервер достаточно производительный, вы можете воспользоваться программной реализацией. Более сложные вычисления, которые выполняются, например, в рамках уровней RAID 5EE или 6, должны желательно выполняться аппаратным RAID-контроллером, поскольку его работа не снизит производительность сервера в целом. Аппаратный RAID также независим от операционной системы, а простые драйверы хост-адаптера, как правило, являются частью ее дистрибутива. Аппаратный RAID-контроллер, при наличии батареи, может работать в режиме обратной записи, добавляя еще один уровень защиты данных.
 +  * **Зависимость от операционной системы**. Операционные системы постоянно совершенствуются и причины, по которым вы выбираете операционную систему сегодня, могут стать несущественными уже через год. В дополнение к этому, на разных серверах и рабочих станциях могут быть установлены разные операционные системы. RAID-контроллер не должен ограничивать вас ни в выборе ОС, ни в стоимости модернизации ОС.
 +  * **Огромный минус аппаратного RAID**: [[HDD]] отформатированы контроллером и могут работать и читаться только контроллером того же производителя (т.е. каждый производитель 3ware, Adaptec, Intel по политическим соображениям делают свои не совместимые друг с другом контроллеры). Вывод сломался контроллер или нужно найти полностью аналогичный (+ идентичная прошивка) или прощай данные. Бекап может никто и не отменял, но он не всегда целесообразен ведь зачастую информация не важна и важна бесперебойная работа сервера.
 +
 +====== Software vs FakeRaid ======
 +  * при выходе из строя материнки можно использовать любую другую в случае mdadm
 +  * mdadm качественней любого Fakeraid-софта (!!????)
 +  * mdadm нагружает дополнительно ЦП
 +  * в Fakeraid для операций записи-чтения на диски (разбивка на страйпы) используется чип с собственной логикой, в Software эти операции решаются силами процессора. встроенный в мат. плату RAID лучше вообще не использовать, потому что он представлен на самом деле в виде firmware и к нему нужны драйвера, которых может и не быть под Linux.
 +  * если для fakeraid надо использовать линуксовый драйвер dmraid, а для softraid юзается mdadm, то лучше не забивать себе голову лишними вещами и юзать сразу mdadm, к тому же при принесении дисков на любой комп вы сможете сделать mdamd --asseble и заюзать raid
 +  * В разных форумах активно не рекомендует пользоваться встроенной поддержкой fake-raid'а, приводя кучу аргументов, а только soft-raid'ом...потому что fake-raid — это фактически софтовый raid, только у каждого производителя свой собственный формат хранения (а то и несколько). и требуется, чтобы либо dm-raid его понимал, либо вкорячивать в систему малооттестированный блоб от производителя (чаще всего он жёстко привязан к конкретной версии ядра, а если и не жёстко, то совсем не факт, что пересобираемая прослойка соберётся под современными ядрами). не хотите — используйте свободную реализацию soft-raid-а. гораздо более надёжную ввиду лучшей оттестированности.
 +  * **Скорость чтения записи raid1** будет одинаково работать на софтварном и аппаратном рейде, ну очень минимальные отличия, так как не надо вычислять контрольные суммы.
 +В реальном аппаратном рейде контрольные суммы вычисляются на контроллере + там есть проверка на отложенную запись.
 +
 +
 +**Повторяю для особо одарённых: настоящий RAID абсолютно прозрачен для операционных систем (любых), не требует установки драйверов, не даёт увидеть отдельных дисков вместо массива целиком. Всё остальное - software/fake raid.**
 +
 +
 +====== Поддержка RAID в Linux ======
 +Многие контроллеры RAID для своей работы требует драйвера на уровне ядра операционной системы. Для того чтобы выяснить поддерживает ли ядро ваше устройство нужно установить файлы документации.
 +
 +Для Debian:
 +  # aptitude install linux-doc-2.6.26 user-mode-linux-doc
 +Для Ubuntu:
 +  # aptitude install linux-doc user-mode-linux-doc
 +После установки, например поддержка RAID контроллеров Adaptec будет описана в файле aacraid.txt.gz
 +  # mcedit /usr/share/doc/linux-doc/scsi/aacraid.txt.gz
 +
 +
 +
 +====== Мониторинг состояния HDD, RAID ======
 +  * [[Adaptec]]: Adaptec SATA RAID 2410SA; Adaptec ASR-6405
 +  * 3ware/LSI Logic: 3ware 9650SE-4LPML [[SATA]], 3ware 3W-9690SA-4I [[SAS]]
 +
 +
 +  * [[http://hottab.ru/linux/monitoring-lsi-sas9211-4i-s-pomoshhyu-snmp/|Мониторинг LSI SAS9211-4i с помощью SNMP]] <file bash>
 +dmesg | grep LSI
 +</file>
 +  * [[http://hottab.ru/linux/monitoring-raid-lsi-logic-symbios-logic-sas1078-mpt-status/|Мониторинг raid LSI Logic / Symbios Logic SAS1078. mpt-status]]
 +  * [[http://wiki.525.su/doku.php?id=zabbix_raid|Мониторинг RAID массивов при помощи Zabbix]]
 +  * {{::raidsiliconimagesii0680ultra-ata_driverwinxp.zip|Driver(Windows XP) Silicon Image SiI 0680 Ultra-ATA/133 Medley RAID Controller}}
 +
 +====== Уровни спецификации RAID и таблица сравнения быстродействия RAID ======
 +Калифорнийский университет в Беркли представил следующие уровни спецификации RAID, которые были приняты как стандарт де-факто:
 +
 +    * RAID 0 представлен как не отказоустойчивый дисковый массив.
 +    * RAID 1 определён как зеркальный дисковый массив.
 +    * RAID 2 зарезервирован для массивов, которые применяют код Хемминга.
 +    * RAID 3, 4, 5 используют чётность для защиты данных от одиночных неисправностей.
 +    * RAID 6 используют чётность для защиты данных от двойных неисправностей
 +    * Комбинированные уровни
 +
 +  * RAID 0 («Striping») — дисковый массив из двух или более жёстких дисков с отсутствием избыточности. Информация разбивается на блоки данных (Ai) и записывается на оба/несколько дисков одновременно.
 +
 +(+): За счёт этого существенно повышается производительность (от количества дисков зависит кратность увеличения производительности).
 +
 +(+): RAID 0 может быть реализован как программно, так и аппаратно.
 +
 +(−): Страдает надёжность всего массива (при выходе из строя любого из входящих в RAID 0 винчестеров полностью и безвозвратно пропадает вся информация). Надёжность массива RAID 0 заведомо ниже надёжности любого из дисков в отдельности.
 +
 +  * RAID 1 (Mirroring — «зеркалирование»).
 +
 +(+): Обеспечивает приемлемую скорость записи и выигрыш по скорости чтения при распараллеливании запросов.
 +
 +(+): Имеет высокую надёжность — работает до тех пор, пока функционирует хотя бы один диск в массиве.
 +
 +(-): Недостаток заключается в том, что приходится выплачивать стоимость двух жёстких дисков, получая полезный объем одного жёсткого диска (классический случай, когда массив состоит из двух дисков).
 +
 +Изначально предполагается, что жёсткий диск — вещь надёжная. Соответственно, вероятность выхода из строя сразу двух дисков равна (по формуле) произведению вероятностей отказа каждого диска, то есть ниже на порядок. К сожалению, данная теоретическая модель недостаточно полно отражает процессы, протекающие в реальной жизни. Так, обычно два винчестера берутся из одной партии и работают в одинаковых условиях, а при выходе из строя одного из дисков нагрузка на оставшийся увеличивается, поэтому на практике при выходе из строя одного из дисков следует срочно принимать меры — вновь восстанавливать избыточность. Для этого с любым уровнем RAID (кроме нулевого) рекомендуют использовать диски горячего резерва. Достоинство такого подхода — поддержание постоянной надёжности. Недостаток — ещё большие издержки (то есть стоимость трёх винчестеров для хранения объёма одного диска).
 +
 +Зеркало на многих дисках — RAID 1+0. При использовании такого уровня зеркальные пары дисков выстраиваются в «цепочку», поэтому объём полученного тома может превосходить ёмкость одного жёсткого диска. Достоинства и недостатки такие же, как и у уровня RAID 0. Как и в других случаях, рекомендуется включать в массив диски горячего резерва из расчёта один резервный на пять рабочих.
 +
 +{{ :tablica_sravnenija_raid.jpg?nolink |}}
 +
 +
 +===== Комбинированные уровни RAID =====
 +
 +Помимо базовых уровней RAID 0 — RAID 5, описанных в стандарте, существуют комбинированные уровни RAID 1+0, RAID 3+0, RAID 5+0, RAID 1+5, которые различные производители интерпретируют каждый по-своему.
 +
 +- RAID 1+0 — это сочетание зеркалирования и чередования.
 +
 +Нынешние контроллеры используют этот режим по умолчанию для RAID 1. То есть, 1 диск основной, 2-й диск — зеркало, причем чтение производится с них поочередно, как для RAID 0. Собственно, сейчас можно считать что RAID 1 и RAID 1+0 — это просто разное название одного и того же метода аппаратного зеркалирования дисков. Но не стоит забывать, что полноценный RAID 1+0 должен содержать как минимум 4 диска.
 +{{ ::raid10.png?nolink |}}
 +
 +
 +- RAID 5+0 — это чередование томов 5-го уровня. RAID 1+5 — RAID 5 из зеркалированных пар. И так далее.
 +
 +Комбинированные уровни наследуют как преимущества, так и недостатки своих «родителей»: появление чередования в уровне RAID 5+0 нисколько не добавляет ему надёжности, но зато положительно отражается на производительности. Уровень RAID 1+5, наверное, очень надёжный, но не самый быстрый и, к тому же, крайне неэкономичный: полезная ёмкость тома меньше половины суммарной ёмкости дисков…
 +
 +Стоит отметить, что количество жестких дисков в комбинированных массивах также изменится. Например для RAID 5+0 используют 6 или 8 жестких дисков, для RAID 1+0 — 4, 6 или 8.

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!