Рейд массив из разных дисков: настройка RAID-массива на домашнем компьютере (просто о сложном)
RAID-массивы на NVMe / Selectel corporate blog / Habr
В данной статье мы расскажем про разные способы организации RAID-массивов, а также покажем один из первых аппаратных RAID-контроллеров с поддержкой NVMe.
Все разнообразие применений технологии RAID встречается в серверном сегменте. В клиентском сегменте чаще всего используется исключительно программный RAID0 или RAID1 на два диска.
В этой статье будет краткий обзор технологии RAID, небольшая инструкция по созданию RAID-массивов с помощью трех разных инструментов и сравнение производительности виртуальных дисков при использовании каждого из способов.
Что такое RAID?
Википедия дает исчерпывающее определение технологии RAID:
RAID (англ. Redundant Array of Independent Disks — избыточный массив независимых (самостоятельных) дисков) — технология виртуализации данных для объединения нескольких физических дисковых устройств в логический модуль для повышения отказоустойчивости и производительности.
Конфигурация дисковых массивов и используемые при этом технологии зависят от выбранного уровня RAID (RAID level). Уровни RAID стандартизированы в спецификации Common RAID Disk Data Format. Она описывает множество уровней RAID, однако самыми распространенными принято считать RAID0, RAID1, RAID5 и RAID6.
RAID0, или Stripes, — это уровень RAID, который объединяет два или более физических диска в один логический. Объем логического диска при этом равен сумме объемов физических дисков, входящих в массив. На этом уровне RAID отсутствует избыточность, а выход из строя одного диска может привести к потере всех данных в виртуальном диске.
Уровень RAID1, или Mirror, создает идентичные копии данных на двух и более дисках. Объем виртуального диска при этом не превышает объема минимального из физических дисков. Данные на виртуальном диске RAID1 будут доступны, пока хотя бы один физический диск из массива работает. Использование RAID1 добавляет избыточности, но является достаточно дорогим решением, так как в массивах из двух и более дисков доступен объем только одного.
Уровень RAID5 решает проблему дороговизны. Для создания массива с уровнем RAID5 необходимо как минимум 3 диска, при этом массив устойчив к выходу из строя одного диска. Данные в RAID5 хранятся блоками с контрольными суммами. Нет строгого деления на диски с данными и диски с контрольными суммами. Контрольные суммы в RAID5 — это результат операции XOR, примененной к N-1 блокам, каждый из которых взят со своего диска.
Хотя RAID-массивы повышают избыточность и предоставляют резервирование, они не подходят для хранения резервных копий.
После краткого экскурса по видам RAID-массивов можно переходить к устройствам и программам, которые позволяют собирать и использовать дисковые массивы.
Виды RAID-контроллеров
Существует два способа создать и использовать RAID-массивы: аппаратный и программный. Мы рассмотрим следующие решения:
- Linux Software RAID.
- Intel® Virtual RAID On CPU.
- LSI MegaRAID 9460-8i.
Отметим, что решение Intel® работает на чипсете, из-за чего возникает вопрос, аппаратное это решение или программное. Так, например, гипервизор VMWare ESXi считает VROC программным и не поддерживает официально.
Linux Software RAID
Программные RAID-массивы в семействе ОС Linux — достаточно распространенное решение как в клиентском сегменте, так и в серверном. Все, что нужно для создания массива, — утилита mdadm и несколько блочных устройств. Единственное требование, которое предъявляет Linux Software RAID к используемым накопителям, — быть блочным устройством, доступным системе.
Отсутствие затрат на оборудование и программное обеспечение — очевидное преимущество данного способа. Linux Software RAID организует дисковые массивы ценой процессорного времени. Список поддерживаемых уровней RAID и состояние текущих дисковых массивов можно посмотреть в файле mdstat, который находится в корне procfs:
root@grindelwald:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid10]
unused devices: <none>
Поддержка уровней RAID добавляется подключением соответствующего модуля ядра, например:
root@grindelwald:~# modprobe raid456
root@grindelwald:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
unused devices: <none>
Все операции с дисковыми массивами производятся через утилиту командной строки mdadm. Сборка дискового массива производится в одну команду:
mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/nvme1n1 /dev/nvme2n1
После выполнения этой команды в системе появится блочное устройство /dev/md0, которое представляет из тебя виртуальный диск.
Intel® Virtual RAID On CPU
Intel® VROC Standard Hardware Key
Intel® Virtual RAID On CPU (VROC) — это программно-аппаратная технология для создания RAID-массивов на базе чипсетов Intel®. Данная технология доступна в основном для материнских плат с поддержкой процессоров Intel® Xeon® Scalable. По умолчанию VROC недоступен. Для его активации необходимо установить аппаратный лицензионный ключ VROC.
Стандартная лицензия VROC позволяет создавать дисковые массивы с 0, 1 и 10 уровнями RAID. Премиальная версия расширяет этот список поддержкой RAID5.
Технология Intel® VROC в современных материнских платах работает совместно с Intel® Volume Management Device (VMD), которая обеспечивает возможность горячей замены для накопителей с интерфейсом NVMe.
Intel® VROC со стандартной лицензией Настройка массивов производится через Setup Utility при загрузке сервера. На вкладке Advanced появляется пункт Intel® Virtual RAID on CPU, в котором можно настроить дисковые массивы.Создание массива RAID1 на двух накопителях
Технология Intel® VROC имеет свои «козыри в рукаве». Дисковые массивы, собранные с помощью VROC, совместимы с Linux Software RAID. Это означает, что состояние массивов можно отслеживать в /proc/mdstat, а администрировать — через mdadm. Эта «особенность» официально поддерживается Intel. После сборки RAID1 в Setup Utility можно наблюдать синхронизацию накопителей в ОС:
root@grindelwald:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md126 : active raid1 nvme2n1[1] nvme1n1[0]
1855832064 blocks super external:/md127/0 [2/2] [UU]
[>....................] resync = 1.3% (24207232/1855832064) finish=148.2min speed=205933K/sec
md127 : inactive nvme1n1[1](S) nvme2n1[0](S)
10402 blocks super external:imsm
unused devices: <none>
Отметим, что через mdadm нельзя собирать массивы на VROC (собранные массивы будут Linux SW RAID), но можно менять в них диски и разбирать массивы.
LSI MegaRAID 9460-8i
Внешний вид контроллера LSI MegaRAID 9460-8i
RAID-контроллер является самостоятельным аппаратным решением. Контроллер работает только с накопителями, подключенными непосредственно к нему. Данный RAID-контроллер поддерживает до 24 накопителей с интерфейсом NVMe. Именно поддержка NVMe выделяет этот контроллер из множества других.Главное меню аппаратного контроллера
При использовании режима UEFI настройки контроллера интегрируются в Setup Utility. В сравнении с VROC меню аппаратного контроллера выглядит значительно сложнее.Создание RAID1 на двух дисках
Объяснение настройки дисковых массивов на аппаратном контроллере является достаточно тонкой темой и может стать поводом для полноценной статьи. Здесь же мы просто ограничимся созданием RAID0 и RAID1 с настройками по умолчанию.
Диски, подключенные в аппаратный контроллер, не видны операционной системе. Вместо этого контроллер «маскирует» все RAID-массивы под SAS-накопители. Накопители, подключенные в контроллер, но не входящие в состав дискового массива, не будут доступны ОС.
root@grindelwald:~# smartctl -i /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-48-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Vendor: AVAGO
Product: MR9460-8i
Revision: 5.14
Compliance: SPC-3
User Capacity: 1,999,844,147,200 bytes [1.99 TB]
Logical block size: 512 bytes
Rotation Rate: Solid State Device
Logical Unit id: 0x000000000000000000000000000000
Serial number: 00000000000000000000000000000000
Device type: disk
Local Time is: Sun Oct 11 16:27:59 2020 MSK
SMART support is: Unavailable - device lacks SMART capability.
Несмотря на маскировку под SAS-накопители, массивы с NVMe будут работать на скорости PCIe. Однако такая особенность позволяет загружаться с NVMe в Legacy.
Тестовый стенд
Каждый из способов организации дисковых массивов имеет свои физические плюсы и минусы. Но есть ли разница в производительности при работе с дисковыми массивами?
Для достижения максимальной справедливости все тесты будут проведены на одном и том же сервере. Его конфигурация:
- 2x Intel® Xeon® 6240;
- 12x DDR4-2666 16 GB;
- LSI MegaRAID 9460-8i;
- Intel® VROC Standard Hardware Key;
- 4x Intel® SSD DC P4510 U.2 2TB;
- 1x Samsung 970 EVO Plus M.2 500GB.
Тестируемыми выступают P4510, из которых одна половина подключена к материнской плате, а вторая — к RAID-контроллеру. На M.2 установлена операционная система Ubuntu 20.04, а тесты будут выполняться при помощи fio версии 3.16.
Тестирование
В первую очередь проверим задержки при работе с диском. Тест выполняется в один поток, размер блока 4 КБ. Каждый тест длится 5 минут. Перед началом для соответствующего блочного устройства выставляется none в качестве планировщика I/O. Команда fio выглядит следующим образом:
fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio --iodepth=1 --loops=1000 --runtime=300 --rw=<mode> --filename=<blkdev>
Из результатов fio мы берем clat 99.00%. Результаты приведены в таблице ниже.
Помимо задержек при обращении к данным, хочется увидеть производительность виртуальных накопителей и сравнить с производительностью физического диска. Команда для запуска fio:
fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio --loops=1000 --runtime=300 --iodepth=<threads> --rw=<mode> --filename=<blkdev>
Производительность измеряется в количестве операций ввода-вывода. Результаты представлены в таблице ниже.
Легко заметить, что использование аппаратного контроллера дает увеличение задержек и просадку по производительности в сравнении с программными решениями.
Заключение
Использование аппаратных решений для создания дисковых массивов из двух дисков выглядит нерационально. Тем не менее, существуют задачи, где использование RAID-контроллеров оправдано. С появлением контроллеров с поддержкой интерфейса NVMe у пользователей появляется возможность использовать более быстрые SSD в своих проектах.
Общие понятия и описание RAID
Добрый день уважаемые читатели и гости блога, я хочу продолжить с вами тему серверных технологий, а именно хочу поговорить про отказоустойчивость. Когда многие слышат это слово, то у них две ассоциации с ним, первое это технологий рейд массивов и контроллеров, а второе это репликация. В данном материале мы поговорим про первый вариант, а именно про Reudant Array of Independed Disks, или как в простонародье RAID.
Что такое RAID и зачем он нужен?
Акроним RAID (Reudant Array of Independed Disks) избыточный массив независимых дисков, впервые был использован в 1988 году исследователями из института Беркли Паттерсоном (Patterson), Гибсоном (Gibson) и Кацем (Katz). Они описали конфигурацию массива из нескольких недорогих дисков, обеспечивающих высокие показатели по отказоустойчивости и производительности.
Наиболее «слабой» в смысле отказоустойчивости частью компьютерных систем всегда являлись жесткие диски, поскольку они, чуть ли не единственные из составляющих компьютера, имеют механические части. Данные записанные на жесткий диск доступны только пока доступен жесткий диск, и вопрос заключается не в том, откажет ли этот жесткий диск когда-нибудь, а в том, когда он откажет.
RAID обеспечивает метод доступа к нескольким жестким дискам, как если бы имелся один большой диск (SLED — single large expensive disk), распределяя информацию и доступ к ней по нескольким дискам, обеспечивая снижение риска потери данных, в случае отказа одного из винчестеров, и увеличивая скорость доступа к ним.
Обычно RAID используется в больших файл серверах или серверах приложений, когда важна, высока скорость и надежность доступа к данным. Сегодня RAID находит применение так же в настольных системах, работающих с CAD, мультимедийными задачами и когда требуется обеспечить высокую производительность дисковой системы.
Можно ли использовать в RAID массиве диски разного размера?
Да. можно. Но, при этом, используемая емкость у ВСЕХ дисков будет равна емкости наименьшего диска.
Из этого следует, что добавлять в уже существующий RAID массив можно только диски такого же или большего размера
Можно ли использовать в RAID массиве диски разных производителей?
Да, можно. Но при этом надо иметь ввиду, что точные размеры дисков одинаковой емкости (36/73/146… ГБ) у разных производителей могут отличаться на несколько килобайт. Когда вы создаете новый RAID массив, на это можно не обращать внимание, но если вы добавляете диски к уже существующему массиву (например, меняете вышедший из строя диск), то важно, чтобы новый диск был больше чем старые, или точно такого же размера.
Что такое Write Through и Write Back?
Это способ записи данных, полученных RAID контроллером, на дисковый массив. По другому эти способы еще называются так: прямая запись (Write Through) и отложенная запись (Write Back). Какой из этих способов будет использоваться определяется в BIOS-е контроллера (либо при создании массива, либо позднее).
- Write Through — данные записываются непосредственно на дисковый массив. Т.е. как только данные получены, они сразу же записываются на диски и после этого контроллер подает сигнал управляющей ОС о завершении операции.
- Write Back — данные записываются сначала в кэш, и только потом (либо по мере заполнения кэш-а, либо в моменты минимальной загрузки дисковой системы) из кэш-а на диски. При этом, сигнал о завершении операции записи передается управляющей ОС сразу же по получении данных кэш-ем контроллера.
Write Back работает быстрее, но при этом надо помнить, что в случае сбоя питания все данные, которые находились в этот момент вкэш-е, будут потеряны. Причем, управляющая ОС (а следовательно и приложение, записывавшее эти данные) ничего об этом «не узнают», так как они уже получили сообщение от контроллера об успешном завершении записи. Например, если в кэше находились данные транзакции сервера СУБД, то СУБД будет уверенна, что с данными все хорошо, хотя на самом деле это не так.
Избежать описанной проблемы можно или с помощью установки на RAID контроллер BBU (см. ниже), или посредством подключения всего сервера через источник бесперебойного питания (UPS) с функцией программируемого выключения.
Кстати, некоторые RAID контроллеры не позволяют включить функцию Write Back без установленного BBU.
Что такое BBU и зачем он нужен?
BBU (Battery Backup Unit) необходим для предотвращения потери данных находящихся в кэш-е RAID контроллера и еще не записанных на диск (отложенная запись — «write-back caching»), в случае аварийного выключения компьютерной системы.
Существуют три разновидности BBU:
- Просто BBU: это аккумулятор, который обеспечивает резервное питание кэша через RAID контроллер.
- Переносимые (Transportable) BBU (tBBU): это аккумулятор, который размещен непосредственно на модуле кэш и питает его независимо от RAID контроллера. В случае выхода из строя RAID контроллера, это позволяет перенести данные, сохраненные вкэш-е, на резервный контроллер и уже на нем завершить операцию записи данных.
- Flash BBU: основная идея заключается в следующем: в случае сбоя питания RAID контроллер копирует содержимое кэш-а в энергонезависимую память (например, в случае с технологией Adaptec » Zero-Maintenance Cache Protection — на NAND флэш накопитель). Питание, необходимое для завершения этого процесса, обеспечивается встроенным супер-конденсатором. После восстановления питания, данные из флэш памяти копируются обратно в кэш контроллера.
Что такое Hotswap?
Hotswap — Hot Replacement of Disks / Hot Swap (Горячая Перестановка / Горячая Замена Дисководов) — это возможность замены вышедших из строя дисководов без прерывания работы системы. Если в системе используется должным образом сконфигурированный RAID контроллер, управляющий избыточной дисковой системой (RAID массивом), то отказ одного дисковода не приводит к прерыванию функционирования системы. В этом случае системой генерируется соответствующее сообщение для системного оператора. Через некоторое время, когда активизируется замещающий дисковод, системный оператор может удалить отказавший дисковод, установить новый дисковод, и дать контроллеру команду «восстановить» данные на новом дисководе, причем все это происходит без прерывания системных операций и выключения системы.
Что такое Hot Spare (Hotspare)?
Hot Spare — (Резервная Замена Дисководов («Горячее резервирование»)) — Одна из наиболее важных особенностей, которую обеспечивает RAID контроллер, с целью достичь безостановочное обслуживание с высокой степенью отказоустойчивости. В случае выхода из строя диска, восстанавливающая операция будет выполнена RAID контроллером автоматически, если выполняются оба из следующих условий:
- Имеется «резервный» диск идентичного объема, подключенный к тому же контроллеру и назначенный в качестве резервного, именно он и называется Hotspare ;
- Отказавший диск входит в состав избыточной дисковой системы, например RAID 1, RAID 3, RAID 5 или RAID 0+1.
Обратите внимание: резервирование позволяет восстановить данные, находившиеся на неисправном диске, если все диски подключены к одному и тому же RAID контроллеру.
«Резервный» диск может быть создан одним из двух способов:
- Когда пользователь выполняет утилиту разметки, все диски, которые подключены к контроллеру, но не сконфигурированы в любую из групп дисководов, будут автоматически помечены как «резервные» ( Hotspare ) диски (автоматический способ поддерживается далеко не всеми контроллерами).
- Диск может также быть помечен как резервный ( Hotspare ), при помощи соответствующей утилиты RAID контроллера.
В течение процесса автоматического восстановления система продолжает нормально функционировать, однако производительность системы может слегка ухудшиться.
Для того, что бы использовать восстанавливающую особенность резервирования, Вы должны всегда иметь резервный диск ( Hotspare ) в вашей системе. В случае сбоя дисковода, резервный дисковод автоматически заменит неисправный диск, и данные будут восстановлены. После этого, системный администратор может отключить и удалить неисправный диск, заменить его новым диском и сделать этот новый диск резервным.
Что такое Copyback Hot Spare?
Copyback Hot Spare это функция RAID контроллера, которая позволяет пользователям закрепить физическое расположение диска «горячего резерва» (Hot Spare), что позволяет улучшить управляемость системы.
Что такое JBOD?
JBOD (Just a Bunch of Disks) это способ подключить диски к RAID контроллеру не создавая на них никакого RAID. Каждый из дисков доступен так же, как если бы он был подключен к обычному адаптеру. Эта конфигурация применяется когда необходимо иметь несколько независимых дисков, но не обеспечивает ни повышения скорости, ни отказоустойчивости.
Что такое размер страйпа (stripe size)?
размер страйпа (stripe size) определяет объем данных записываемых за одну операцию ввода/вывода. размер страйпа задается в момент конфигурирования RAID массива и не может быть изменен позднее без переинициализации всего массива. Больший размер страйпа обеспечивает прирост производительности при работе с большими последовательными файлами (например, видео), меньший — обеспечивает большую эффективность в случае работы с большим количеством небольших файлов.
Нужно ли заниматься архивированием данных в случае использования RAID?
О: Конечно да! RAID это вовсе не замена архивированию, основное его назначение это повышение скорости и надежности доступа к данным в нормальном режиме работы. Но только регулярное архивирование данных гарантировано обеспечит их сохранность при любых отказах оборудования, пожарах, потопах и прочих неприятностях.
RAID массив на разных дисках
14 лет назад 25 октября 2006 в 17:47 838
Я являюсь обладателем мамки Albatron KX-18D Pro Socket A без RAID-контроллера. Есть HDD Seagate Barracuda 7200 на 120 Гбайт и старый Western Digital емкостью 8,7 Гбайт. Есть желание обезопасить некоторые данные на моем компе. Для этого, слышал, используют массив RAID1 (зеркало, mirror).То есть идея такая: из 120 Гбайт берется 8 Гбайт под операционную систему и 8 Гбайт старого HDD под зеркало этой системы. Хочется узнать ответы на следующие вопросы.
1. Можно ли создать RAID-массив на мамке без RAID-контроллера, используя программу типа RAID Toolbox, и насколько программное решение отличается от аппаратного? Есть ли смысл в будущем брать мать с контроллером, насколько это эффективнее?
2. Насколько серьезными могут быть тормоза из-за того, что у HDD-накопителей разные скорости (7200 и 5400 об./мин.)? Может, лучше купить новый HDD со скоростью 7200 об./мин.?
Честно говоря, идея объединить в массив диск и часть другого диска мне пока не встречалась. Вернее, теоретически это, наверное, возможно, однако получится ли что-нибудь на практике, я не знаю. RAID-массивы обычно создаются из дисков одинакового объема, имеющих сопоставимые скоростные параметры, иначе какой вообще смысл создавать RAID-массив? Matrix RAID – особая технология, вести речь о ней мы сейчас не будем. Если вы используете не аппаратный, а программный RAID, то все операции по раскидыванию данных лягут на процессор. А у него работы и так хватает, поэтому, уверяю вас, программный RAID может существенно притормаживать систему. Многое зависит от объемов данных, которые придется перераспределять такому “контроллеру”, однако для не слишком быстрых процессоров Socket A нагрузка может быть просто убийственной. Не знаю, умеют ли программы типа RAID Toolbox объединять в массив раздел диска и целый диск, но в том, что ни одна из известных мне софтин не может объединять в массив загрузочный раздел, уверен.
В целом же эта идея кажется мне более чем странной. Если вы готовы смириться с потерей производительности, попробуйте, но в следующий раз купите материнку с аппаратным RAID-контроллером и два одинаковых диска. Ну или хотя бы диски с сопоставимыми характеристиками.
RAID массив из старых жёстких дисков
Вступление
Всем привет, это Я. Ранее я уже писал на тему жёстких дисков. В той статье я описывал, как продляю жизнь посыпавшемуся жёсткому диску WD Green ёмкостью 2 Тб. Мой метод оказался настолько будоражащим сознание, что у некоторых сдетонировало и они всячески критиковали мои действия. Как оказалось, посторонних, неизвестных мне людей, сохранность моих данных беспокоит больше, чем меня самого. Поразительно! Сегодня будет не менее взрывоопасный контент, ведь мы будем делать RAID 0 из четырёх старых жёстких дисков в 2020 году. Погнали!
Так уж вышло, что в моей системной плате есть встроенный RAID-контроллер, который можно включить в BIOS. С годами у меня накопилось несколько килограмм жёстких дисков. Покоя они мне не давали и я всё думал, как же мне их пристроить, чтоб не лежали без дела. В основном это диски небольшого объёма: 20 Гб, 60 Гб, 80 Гб. В общем вы поняли. Однажды вспомнил я про RAID и решил: “А дай-ка сделаю RAID 0 из завалявшихся дисков”. Массив я создал вполне успешно и он работает должным образом, но прежде чем перейти к конечному варианту, покажу, какие диски будут участвовать в RAID.
Что такое RAID 0
Думаю, немного стоит написать про то, что такое RAID. RAID — массив из нескольких физических жёстких дисков, объединённых в один виртуальный носитель. Существует большое количество различных конфигураций RAID, каждый их которых обладает как плюсами, так и минусами. Чаще всего массив из нескольких дисков используется для обеспечения отказоустойчивости путём хранения избыточных данных. Большие массивы, состоящие из множества жёстких дисков, позволяют не допустить потери данных при выходе из строя сразу нескольких физических жёстких дисков.
Самый простой вариант RAID, не обеспечивающий отказоустойчивости, это RAID 0. Его плюсом является повышенная производительность по сравнению с другими реализациями RAID. По сути, всё что делает RAID 0, так это чередует записываемые в массив данные между всеми дисками массива. На входе данные разбиваются на равные блоки и записываются параллельно на все физические диски. Подобный принцип сильно повышает скорость последовательной записи и последовательного чтения. В теории скорость последовательного чтения/записи может быть равна сумме скоростей каждого диска. Хуже обстоит ситуация со случайной записью и случайным чтением мелких файлов. Впрочем, эти скорости также увеличиваются по сравнению с единичным диском, хоть и не так сильно, как в случае с последовательными операциями чтения/записи.
Основные цели, которые я преследовал при создании массива были: объединение ёмкостей дисков и максимальная производительность. Лучший выбор для этого — RAID 0.
Диски, используемые для RAID 0
Как я написал в введении, наш RAID будет состоять из четырёх дисков. Первый диск — Seagate Barracuda 80 Гб с интерфейсом IDE — самый слабенький:
Тем не менее, состояние его вполне нормальное. Сбойных секторов или прочих ошибок нет. На скриншоте ниже SMART и быстродействие этого диска в программе CrystalDiskMark:
Seagate Barracuda 80 Gb IDE
Поскольку на моей системной плате нет разъёмов IDE, то подключить этот диск напрямую я не мог. Для этого пришлось использовать плату-контроллер. Так она выглядит:
Не подумайте, что контроллер я купил специально, дабы подключить старый диск. Делать мне нечего. Случайно я вспомнил, что он у меня валяется без дела и решил задействовать. Контроллер этот двусторонний. То есть, с его помощью можно подключить старый IDE диск к современной системной плате, но также можно подключить новый SATA диск к старой плате, у которой нет SATA контроллера. На фотографии ниже показываю, как диск подключается к плате. В разъём IDE вставляется плата-контроллер, а уже к ней подключается SATA шлейф и питание самого контроллера. Питание диска подключается как обычно:
Конечно же первый вопрос, который возникает, при работе с подобными контроллерами: “Насколько он ухудшает скорость работы диска?” Мне тоже хотелось это проверить и я подключил диск к старой плате, имеющей разъём IDE. Ниже скриншот быстродействия, но диск уже подключен напрямую IDE to IDE:
Сравнение производительности (подключение напрямую — слева и через контроллер — справа)
Как видно на сравнительном скриншоте, разницы в производительности почти нет. Она настолько незначительная, что можно сказать в пределах погрешности измерений. Так что хорошая новость, подобный контроллер практически никак не ограничивает быстродействие жёсткого диска. С этим разобрались, переходим к следующему диску.
Следующий диск тоже Seagate Barracuda 80 Гб, но уже с интерфейсом SATA, более современный:
Диск этот хоть и SATA, но тоже далеко не первой свежести. И тем не менее со SMART всё в порядке. Его вы видите на скриншоте ниже вместе с тестом производительности:
Seagate Barracuda 80 Gb SATA
Третий диск, используемый мною для создания массива — Maxtor 80 Gb SATA:
SMART и тест быстродействия этого диска:
Maxtor 80 Gb SATA
Четвёртого диска на 80 Гб у меня не было. Но для создания RAID массива совершенно не обязательно использовать диски одинакового объёма. Посему четвёртым диском был выбран Seagate Barracuda 160 Gb SATA:
SMART этого диска показывает 1 сбойный сектор. Появился он уже давно и новых не добавляется, так что всё в порядке. Хотя наработка внушительная — 47 тысяч 300 часов:
Seagate Barracuda 160 Gb SATA
В завершение вступительной части покажу, как все эти 4 диска разместились в корпусе компьютера. Прямо перед ними расположен 120 мм вентилятор, продувающий всю “корзину” (между дисками есть расстояние). С охлаждением проблем нет:
Все четыре диска подключены к компьютеру, переходим к созданию RAID:
Скриншот окна “Управление дисками”
Создание RAID 0
Первым делом я переключил в BIOS режим работы SATA контроллера с AHCI на RAID. Выяснилось, что настройки встроенного в плату контроллера не такие уж богатые. В настройках можно выбрать размер блока Stripe Block, политику чтения Read Policy и политику записи Write Policy. И всё. Больше менять ничего нельзя. Впрочем, для моих целей и этих настроек вполне достаточно.
Конечно же все имеющиеся настройки могут влиять на скорость работы будущего RAID. Возник вопрос, какая комбинация настроек обеспечит максимальное быстродействие? К счастью настроек не так уж и много, я проверил их все. Начал с того, что выставил Stripe Block 64 КБ. Политику записи — Write Thru. При таком выборе, единственный доступный вариант политики чтения это NA. Я не буду вдаваться в описание значений всех этих параметров, всё это описано задолго до меня и при желании вы можете найти всё в интернете. Единственное, стоит отметить, что политика записи Write Thru по логике должна быть медленнее других. Поскольку при включении данной политики не используется кэш записи.
Производительность RAID 0 в этом режиме представлена на следующем скриншоте:
RAID 0 — Stripe Block 64 KB, Read Policy: NA, Write Policy: Write Thru
После, не меняя размер Stripe Block, я установил Read Policy как Read Cache, а Write Policy как Write Back. Эти параметры задействуют кэш, в теории увеличивая производительность. Минус политики Write Back в том, что при внезапном отключении электричества, с данными, которые не были записаны из кэша на носитель, произойдут алаверды. Они пропадут.
Производительность RAID 0 в режиме с описанными выше параметрами:
RAID 0 — Stripe Block 64 KB, Read Policy: Read Cache, Write Policy: Write Back
По результатам тестов получается, что разница в производительности между протестированными вариантами не такая уж большая. При смене политики на Write Back ощутимо увеличилась лишь случайная запись блоками по 4 КБ. Последовательное чтение, ровно как и случайное, в скорости не прибавило.
Следующая комбинация настроек для тестирования: Stripe Block 64 KB, политики Read Ahead, Write Back. Результаты на скриншоте:
RAID 0 — Stripe Block 64 KB, Read Policy: Read Ahead, Write Policy: Write Back
Результаты не слишком отличаются от предыдущих. Для наглядности объединим их в один скриншот:
Сравнение полученных результатов при тестировании с разными параметрами Read Policy и Write Policy
Думал я, думал, да и решил, что остановлюсь на варианте Read Policy: Read Ahead, Write Policy: Write Back. Осталось только определиться с размером блока Stripe Block. В настройках контроллера этот параметр можно устанавливать в следующих вариациях: 64 KB, 128 KB, 256 KB. В теории, меньший размер блока позволяет добиться большей производительности при работе с мелкими файлами. Больший размер, наоборот, должен повышать быстродействие при записи и чтении файлов большого объёма. Теория есть теория, но почему бы не проверить на практике? Хоть я изначально и склонялся к варианту в 256 KB, так как использовать RAID планировалось для больших файлов, всё же протестировал все три варианта.
Все дальнейшие тесты будут проводиться с включеными политиками Read Ahead и Write Back. Результаты с размером Stripe Block 64 KB нам уже известны. Тестируем Stripe Block 128 KB:
RAID 0 — Stripe Block 128 KB, Read Policy: Read Ahead, Write Policy: Write Back
Разница не особа заметна. Случайная запись по 4 КБ немного снизилась, но вместе с тем немного увеличилась при глубине запросов равной 32. Немного возрасло последовательное чтение. Проверим, что получится, если выбрать Stripe Block 256 KB:
RAID 0 — Stripe Block 256 KB, Read Policy: Read Ahead, Write Policy: Write Back
Получается, что относительно Stripe Block 128 KB, незначительно увеличилась скорость последовательного чтения. Случайное чтение по 512 КБ немного уменьшилось, зато возрасла скорость случайной записи по 512 КБ и очень сильно, аж на целых 10 МБ/с. Было 49 МБ/с, стало 59 МБ/с. Это уже что-то. Случайная запись по 4 КБ также заметно увеличилась. В остальном разница минимальна. Объединим результаты в один скриншот:
Сравнение результатов Stripe Block 64 KB, 128 KB и 256 KB
Мне больше всего понравились результаты с Stripe Block 256 KB. Но я решил убедиться и провести ещё два теста, выставив максимальные настройки в CrystalDiskMark: количество повторений 9, объём теста 4000 MB. Результаты Stripe Block 64 KB:
Тест с количеством повторений 9, объём теста 4000 MB, Stripe Block 64 KB
Тот же самый тест с Stripe Block 256 KB:
Тест с количеством повторений 9, объём теста 4000 MB, Stripe Block 256 KB
Проверять Stripe Block 128 KB я не стал, поскольку выбирал между 64 KB и 256 KB. Объединим результаты:
Сравнение результатов Stripe Block 64 KB и 256 KB, максимальный объём тестирования
Полученные результаты окончательно сбили с толку. Где-то лучше Stripe Block 64 KB, где-то лучше 256 KB. Значительная разница в результатах наблюдается в случайной записи по 512 КБ. 34 МБ/с при Stripe Block 64 KB и целых 59 МБ/с при 256 KB. В конечном итоге я остановился на размере Stripe Block равным 256 KB. Ведь, как я уже писал, планируется работать с файлами большого объёма.
Так выглядит финальная версия RAID в настройках контроллера:
Общий объём массива в операционной системе — 294 ГБ. На этом скриншоте я уже успел наполнить RAID файлами:
Объём получившегося массива
Сравнение RAID 0, Single HDD, SSD
Под конец самое интересное. Сравним быстродействие получившегося RAID 0 с единичным жёстким диском, который у меня используется как основной и с твердотельным накопителем (SSD), на котором установлена операционная система.
Чувствуете запахло горелым? Это начинает подгорать у тех, кто слишком остро реагирует на скриншоты с плохим SMART. Вот, любуйтесь, это мой основной диск Hitachi на 2 ТБ для хранения данных, в программе Hard Disk Sentinel. Готовы? 3… 2… 1… Ignition:
Состояние моего основного диска в Hard Disk Sentinel
Скриншот с вкладкой SMART в той же программе:
SMART в Hard Disk Sentinel
Да, этот диск во всю сыпется. У него была не лёгкая жизнь. Это внешний жёсткий диск, который использовался мной портативно на протяжение нескольких лет. Время наработки у него на тот момент, когда он посыпался, было менее тысячи часов. Сгубило диск то, что я его постоянно возил туда-суда. Но когда он посыпался, я его разобрал, извлёк из корпуса сам диск и по известной методике продлил ему срок службы.
Так этот диск выглядел, пока я его не разобрал:
Непосредственно жёсткий диск, извлечённый из корпуса:
Структура разделов на диске такова: 456 ГБ в начале диска не распределено, именно там находятся заросли бэдов и нестабильных секторов с низкой скоростью доступа. Остальная поверхность в отличном состоянии, там и расположился единственный раздел:
Структура разделов
В самом начале отрезано немало пространства. Так я изолировал кучно лежащие бэды и нестабильные сектора. Конечно это существенно сказывается на производительности диска, ведь чем ближе к концу физического пространства, тем ниже скорость чтения/записи. Но это так, к слову.
Что ж, давайте сравним быстродействие RAID 0 из старых жёстких дисков с единичным диском, который уже давно сыпется и с вполне неплохим SSD на MLC чипах. Результаты на скриншоте. Слева RAID 0, по середине HDD Hitachi 2 TB и справа SSD Plextor 128 Gb:
Сравнение производительности: RAID 0, HDD Hitachi 2TB, SSD Plextor 128 Gb
По скорости лидирует SSD с большим отрывом. Было бы странно, будь оно иначе. Но посмотрите на RAID 0 в сравнении с единичным жёстким диском. Тут уже иная картина. RAID 0 показывает куда большие скорости и это при том, что состоит он из старых, можно даже сказать древних дисков, один из которых к тому же имеет интерфейс IDE.
К сожалению не всё так радужно, как хотелось бы. Скорость чтения/записи у жёсткого диска снижается по мере приближения к концу физического пространства. Не лишён этого недостатка и массив из нескольких дисков. На данный момент массив заполнен на 96%. Я решил прогнать тест ещё раз. При такой заполненности результаты совсем печальные:
Производительность RAID 0 при заполненности в 96%
Поскольку массив заполнен почти до отказа, тест выполнялся в конце физического пространства каждого диска (кроме диска на 160 Гб). Это не могло не сказаться на скорости чтения/записи. В таких условиях скорость RAID 0 уже не так разительно отличается от скорости единичного жёсткого диска.
Итоги
Прежде чем подводить итоги, я хочу дать вам послушать запуск четырёх старых дисков одновременно. Это прикольно звучит. Посмотрите небольшое видео, в нём вы также сможете услышать, как стрекочут все четыре диска при случайном чтении/записи:
Я не хочу перечислять минусы подобного RAID массива из старых дисков, они слишком очевидны. А вот немного о плюсах можно сказать. Во-первых, ощутимо повышается производительность, если конечно не забивать массив под завязку. Скорости старых жёстких объёмом 80 Гб крайне низкие по современным меркам. Создание RAID 0 позволяет дотянуть производительность до уровня современных жёстких дисков. Во-вторых, если использовать диски одинакового размера, то их ёмкости суммируются, это тоже плюс. Иметь в операционной системе четыре отдельных логических диска маленького размера неудобно. Объединив 4 диска на 80 Гб в RAID 0, получаем почти 300 ГБ сплошного дискового пространства. В-третьих, подобная манипуляция позволяет дать старым, забытым “жестянкам” новую жизнь.
Заметна ли разница в производительности невооружённым взглядом, без тестов? Да, заметна. Первое, на что я обратил внимание, что файлы быстрее копируются как в массив, так и из него. Также была замечена существенно возросшая производительности при работе в виртуальной машине. Разместив виртуальный жёсткий диск на RAID 0, я ощутил, как виртуалка “задышала”. Загрузка гостевой операционной системы стала быстрее да и вообще отзывчивость виртуальной машины в целом улучшилась.
Предвосхищая будущие комментарии, не могу не сказать об опасности хранения важных данных на подобных массивах. Но ведь это же очевидно, не так ли? Вероятность того, что в любой момент что-нибудь пойдёт не так, слишком высока. RAID 0 сам по себе мягко говоря не блещет отказоустойчивостью. А если создавать его из старых дисков с огромной наработкой, то высоки шансы, что весь массив внезапно накроется медным тазом. Я использовал этот массив для того, чтобы рендерить на него видео. Даже если массив отвалится, то ничего страшного не произойдёт. Всё, что я потеряю, это отрендеренный файл, который можно рендерить снова. Но ничего подобного не произошло. Не скажу, что я долго пользовался этим массивом, но за всё время его работы не было замечено ни единого сбоя. Всё работало как часы.
На этом всё, спасибо за внимание!
RAID-0 из 3х дисков vs RAID-0 из 2х дисков
Встала задача поработать с большой базой. Решил сделать raid 0 (чередующийся том) из 3х дисков
Не долго думая, я сделал это. Но было одно сомненье. Дело в том, что 2 диска были 7200 rpm, а третий из них 5400 rpm. При копировании файлов на созданный диск, я заметил что скорость совсем не та, которую я ожидал (забегая вперед, скажу — дело было совсем не в raid-е). Скорость записи была 2-5 МБ/с, что очень опечалило меня.
Так вот остановив копирование я решил протестировать скорость записи/чтения 10 ГБ файла на этот диск. Чтобы не было погрешности, за счет чтения с другого диска, я создал 12ГБ виртуальный диск прямо в ОЗУ, с помощью программки: ImDisk Virtual Disk Driver. Так вот результат был такой:
Запись на RAM-диск с RAID-диска: 200 МБ/с
Запись на RAID-диск с RAM-диска: 270 МБ/с
это минимальные значения, т.к. первые несколько секунд скорость показывается 700-800 мб/с, но потом постепенно падает. После этих замеров, я снова переразбил диск, оставив в райде только два диска 7200 rpm. Сделал опять чередующийся том и точно такие же замеры:
Запись на RAM-диск с RAID-диска: 250 МБ/с
Запись на RAID-диск с RAM-диска: 300 МБ/с
скорость выросла, я решил на этом и остановиться. Возобновив копирование своих мелких файлов, я вновь получил скорость 2-5 МБ/с. Думаю это именно из-за размера файла.
Вывод: не ставьте в raid-0 диски с разной скорость на доступ к данным, потому что тот у которого эта скорость меньше, потянет остальных за собой.
И ещё одно, вот мои план разбивки, который думаю кому-то также пригодится: т.к. raid-0 у меня программный, то теоретически он может нагнуться при крахе системы или одного из винтов. Я это прекрасно понимаю, поэтому на нем не планирую хранить мега-важных данных. Но я пошел немного больше и сделал так:
У меня было 2 диска по 2 ТБ. на каждом из дисков я сделал обычные тома по 1.4 ТБ, а вот из оставшихся: 2 x 0.6ТБ я сделал raid-0 который в итоге получился 1.2 ТБ. Соответственно, теперь я могу делать «вручную» точные копии raid-диска на обычные разделы, тем самым я буду получать дополнительно два бэкапа на разных дисках. Т.к. возможность выхода из строя одновременно двух дисков мимнимальная, то для моих задач это идеальный вариант, т.к. в случае краха raid-0, или целого диска, я смогу восстановить данные из копии.
Для кого-то этот вариант может, показаться гигантским костылем, но мне вполне подходит. И на мой взгляд это лучший вариант по скорости и по надежности.
И пусть Бог админов, хранит ваши данные в целостности и сохранности. Ура!
Можно ли настроить RAID 5 с кучей дисков разного размера?
У меня в настоящее время есть 3 1 ТБ дисков, пара 500 ГБ и некоторые 750 ГБ. Можно ли поместить их все в конфигурацию RAID 5 или они должны быть одинакового размера?
источник
есть несколько методов для этого.
1) Используйте каждый диск как отдельный узел массива RAID-5. Только 500GB используется на каждом диске, другое пространство тратится впустую. Обычно это единственный вариант в аппаратном raid-контроллере.
2) Используйте программный RAID-массив в сочетании с системой логических томов типа Linux LVM. С помощью LVM можно создать виртуальный диск объемом 1 ТБ, объединив два диска по 500 ГБ. Этот виртуальный диск может служить в качестве одного диска в RAID-5 матрица. Как только один из этих дисков выходит из строя, весь виртуальный диск считается неисправным. Поэтому обратите внимание, что вам понадобится 3 виртуальных диска одинакового размера.
3) Используйте RAID-систему, которая позволяет избыточное хранилище на неравных томах. ZFS является хорошим примером этого.
источник
Это зависит от используемого RAID-контроллера (аппаратного или программного обеспечения). Некоторые позволят различным размерам & типам приводов пока другие требуют идентичных приводов (не как раз размера, но тарифа закрутки, объем, etc). Некоторые из контроллеров, которые позволят вам использовать разные размеры, заставят вас использовать наименьший общий знаменатель. В вашем случае такой контроллер найдет вас с настроенными дисками на 5 500 ГБ, которые могут или не могут позволить вам получить доступ к оставшемуся пространству на тех, кто больше диски отдельно.
к сожалению, единственный ответ будет исследовать различные RAID контроллеры, начиная с того, что вы, возможно, встроенный в вашей ОС или материнской платы и посмотреть, если вы можете определить, какие конфигурации они позволят. После этого можно исследовать другие доступные контроллеры.
отвечен BBlake 2012-01-19 13:12:15
источник
избыточного массива независимых дисков (RAID) | Набор 2
Redundant Array of Independent Disks (RAID) — это набор из нескольких физических дисков, которые операционная система рассматривает как одну логическую единицу. Он сыграл значительную роль в сокращении разрыва между все более быстрыми процессорами и медленными дисковыми накопителями.
Основной принцип, лежащий в основе RAID, заключается в том, что несколько дисков меньшей емкости имеют лучшую производительность, чем некоторые диски большой емкости, потому что за счет распределения данных между несколькими дисками меньшего размера система может быстрее получать доступ к данным с них, что приводит к улучшенному вводу-выводу производительность и улучшенное восстановление данных в случае отказа диска.
Типичная конфигурация дискового массива состоит из небольших дисководов, подключенных к контроллеру, содержащему программное обеспечение и координирующему передачу данных с дисков на диск большой емкости, подключенный к подсистеме ввода-вывода.
Обратите внимание, что вся эта конфигурация рассматривается ОС как один диск большой емкости.
- Данные разделены на сегменты, называемые полосами , которые распределяются по дискам в массиве.
- Набор последовательных полос на дисках называется полосой .
- Весь процесс называется чередование .
Помимо введения концепции избыточности, которая помогает в восстановлении данных из-за сбоя оборудования, это также увеличивает стоимость оборудования.
Вся система RAID разделена на семь уровней от уровня 0 до уровня 6. Здесь уровень не указывает иерархию, но указывает различные типы конфигураций и возможности исправления ошибок.
Уровень 0:
Уровень RAID 0 — это единственный уровень, который не может восстанавливаться после аппаратного сбоя, поскольку он не обеспечивает исправления ошибок или избыточности.Поэтому его нельзя назвать истинной формой RAID. Однако он, несомненно, предлагает те же существенные преимущества, что и другие — для ОС эта группа устройств представляется одной логической единицей.
Как показано выше, когда ОС выдает команду, которую можно передавать параллельно полосам, значительно повышая производительность.
Уровень 1:
Уровень RAID 1 не только использует процесс чередования, но также использует зеркальную конфигурацию, обеспечивая избыточность, т.е.е., он создает дублирующий набор всех данных в зеркальном массиве дисков, который используется в качестве резервной копии на случай отказа оборудования. Если один из дисков выходит из строя, данные могут быть немедленно получены из зеркального массива дисков. Благодаря этому система становится надежной.
Как показано выше, данные были скопированы в еще один массив диска в качестве резервной копии.
- Недостаток включает запись данных дважды, один раз на основные диски, а затем на резервные диски.Однако время процесса можно сэкономить, копируя данные параллельно с основной записью данных.
- Еще один недостаток заключается в том, что он требует вдвое больше места и поэтому стоит дорого. Но преимущество , заключающееся в наличии резервной копии и отсутствии беспокойства о потере данных, сводит на нет этот недостаток.
Уровень 2:
Уровень RAID 2 использует очень маленькие полосы (часто размером 1 байт) и код Хэмминга для обеспечения избыточности (для задач обнаружения ошибок, исправления и т. Д.)).
Код Хэмминга : это алгоритм, используемый для обнаружения и исправления ошибок при передаче данных. Он добавляет к данным дополнительные избыточные биты. Он может исправлять однобитовые ошибки и исправлять двухбитовые ошибки.
Эта конфигурация имеет недостаток , состоящий в том, что это дорогая и сложная конфигурация для реализации из-за количества дополнительных массивов, которые зависят от размера полос, а также все диски должны быть хорошо синхронизированы.
Преимущество включает в себя то, что в случае неисправности диска это повлияет только на один диск, и данные могут быть быстро восстановлены.
Уровень 3:
Уровень RAID 3 — это конфигурация, в которой для резервирования требуется только один диск. Только один бит четности вычисляется для каждой полосы и сохраняется на назначенном резервном диске.
Если диск неисправен, RAID-контроллер считает, что все биты, поступающие с этого диска, равны 0, и отмечает местоположение неисправного диска.Итак, если в считываемых данных есть ошибка четности, то контроллер знает, что бит должен быть равен 1, и исправляет ее.
Если данные записываются в массив, в котором есть неисправное устройство, то контроллер поддерживает согласованность четности, чтобы повторно сгенерировать данные при замене массива. Система возвращается в нормальное состояние, когда неисправный диск заменяется и его содержимое восстанавливается на новом диске (или массиве).
Уровень 4:
Уровень 4 RAID использует ту же концепцию, что и на уровнях 0 и 1, но также вычисляет четность для каждой полосы и сохраняет эту четность в соответствующей полосе диска четности.
Преимущество этой конфигурации состоит в том, что в случае отказа диска данные все еще могут быть восстановлены с диска четности.
Четность вычисляется каждый раз, когда выполняется команда записи. Но когда данные должны быть перезаписаны на дисках, RAID-контроллер должен иметь возможность обновлять данные и диски четности. Таким образом, к дискам четности необходимо обращаться всякий раз, когда должны выполняться операции записи или перезаписи. Это создает ситуацию, известную как узкое место , которая является основным недостатком этой конфигурации.
Уровень 5:
Уровень RAID 5 — это уровень модификации 4. На уровне 4 только один диск предназначен для хранения данных о четности. Но на уровне 5 он распределяет диски четности по дискам в массиве.
Преимущество этой конфигурации состоит в том, что она позволяет избежать состояния узкого места, которое было создано на уровне 4.
Недостаток этой конфигурации состоит в том, что во время регенерации данных при отказе диска усложняется.
Уровень 6:
Уровень RAID 6 обеспечивает дополнительную степень обнаружения и исправления ошибок. Требуется 2 разных вычисления четности.
Одно вычисление такое же, как использованное на уровнях 4 и 5, другое вычисление представляет собой независимый алгоритм проверки данных. Обе четности хранятся на отдельных дисках в массиве, что соответствует полосам данных в массиве.
Преимущество этой конфигурации состоит в том, что если даже 2 диска выйдут из строя или неисправны, то данные также можно будет восстановить.
К недостатку данной конфигурации относятся:
- Избыточность увеличивает время, необходимое для записи данных, поскольку теперь данные также должны быть записаны на второй диск четности.
- В этой конфигурации другой диск обозначен как диск четности, что уменьшает количество дисков с данными в массиве.
Вниманию читателя! Не прекращайте учиться сейчас. Получите все важные концепции теории CS для собеседований SDE с курсом теории CS по доступной для студентов цене и будьте готовы к отрасли.
Руководство для начинающих по уровням RAID
[с инфографикой] | TTR Data Recovery
RAID 0
Этот тип уровня RAID обеспечивает оптимальное чтение данных и повышение скорости записи, но не обеспечивает отказоустойчивости в какой-либо форме. Этот тип уровня RAID легко реализовать, не требуя дополнительных затрат.
RAID 0 обычно используется для хранения некритических данных, требующих только высокой скорости чтения и записи данных, таких как редактирование изображений и видео.
RAID 1
Обеспечивает отказоустойчивость за счет одновременного создания точной копии одного диска на другой. RAID 1 обеспечивает отличную скорость чтения и записи , а также относительно прост в реализации.
RAID 1, однако, уменьшает емкость хранилища вдвое, поскольку другая половина используется для дублирования данных. В случае сбоя горячая замена не всегда возможна с программным RAID 1, так как компьютер должен быть выключен, прежде чем можно будет заменить неисправный диск.
RAID 1 лучше всего реализовать для приложений, требующих отказоустойчивости, но не требующих большой емкости хранилища, таких как бухгалтерские приложения.
RAID 5
Обычно используется на предприятиях . Он сочетает в себе преимущества отказоустойчивости и скорости за счет использования четности и чередования на уровне блоков, а также методов .
Хотя скорость чтения очень высокая, скорость записи ниже из-за вычислений четности. В случае отказа диска доступ к данным возможен во время замены неисправного диска и восстановления данных.
RAID 5 может поддерживать отказ только одного диска , а поскольку восстановление обычно занимает время — день или больше, возможен отказ другого диска.
RAID 10
Этот уровень RAID имеет те же преимущества, что и RAID 5, поскольку он сочетает в себе RAID 1 (зеркалирование) и 0 (чередование) — так сказать, гибрид. RAID 10 защищает данные, зеркально отображая данные с одного диска на дополнительный диск, в то время как метод чередования обеспечивает быстрый доступ к данным.
Восстановление RAID может занять всего полчаса, так как вам нужно только скопировать данные с незатронутого диска на новый. Однако в результате зеркалирования емкость хранилища уменьшается вдвое.Это делает реализацию RAID 10 более дорогостоящей, поскольку количество требуемых дисков вдвое превышает количество других уровней RAID.
Руководство по mdadm — Linux Raid Wiki
Эта страница представляет собой обзор mdadm. Это НЕ , предназначенный для замены страниц руководства — все, что там подробно описано, будет здесь бегло бегло. Здесь приведены примеры, которые вы можете адаптировать для себя.
Обзор
mdadm заменил все предыдущие инструменты для управления массивами рейдов.Он управляет почти всей стороной рейда в пользовательском пространстве. Есть несколько вещей, которые нужно сделать, записав в файловую систему / proc, но не намного.
Получение mdadm
Это довольно стандартная часть любого дистрибутива, поэтому вам следует использовать стандартный инструмент управления программным обеспечением дистрибутива. Если, однако, у вас возникнут какие-либо проблемы, вам действительно поможет запуск последней версии, которую можно загрузить с помощью
git clone git: //git.kernel.org/pub/scm/utils/mdadm/mdadm.мерзавец
или от
https://kernel.org/pub/linux/utils/raid/mdadm/
При отсутствии каких-либо других предпочтений, он находится в каталоге / usr / local / src. Поскольку эта программа предназначена для Linux, то здесь нет ничего из этого autoconf — просто следуйте инструкциям в файле INSTALL.
Не используйте версию Нила Брауна, если он не скажет вам об этом — он больше не занимается сопровождением, и она не обновляется.
режимов
mdadm имеет семь режимов.Обычно вы будете использовать только несколько из них. Вот они:
Собрать
Вероятно, это наиболее часто используемый режим, но вы не будете его часто использовать — это происходит в фоновом режиме. Это должно выполняться каждый раз, когда система загружается. Он сканирует диски в поисках суперблоков и перестраивает все массивы за вас. Вот почему вам нужен initramfs при загрузке из массива raid — потому что mdadm — это программа пользовательского пространства, если root находится в массиве, у нас есть уловка-22 — мы не можем загрузиться, пока у нас нет root, и мы можем У меня нет root, пока мы не загрузимся и не сможем запустить mdadm.
Создать
Это первый из двух режимов, которые вы будете часто использовать. Как следует из названия, он создает массивы и записывает суперблоки для массивов, в которых они есть. Он также запускает инициализацию — проверяя, что диски зеркала идентичны или что в массиве четности четности правильные. Вот почему рейды 5 и 6 создаются в деградированном режиме — если бы они не были, то любая проверка рейда выдала бы ошибки для областей, в которые не было записано.
Рост
Немного ошибочно, этот режим обрабатывает все операции, которые изменяют размер массива, такие как изменение уровня рейда, изменение количества активных устройств и т. Д.
Управление
Это режим по умолчанию, который в основном используется для добавления и удаления устройств. Это может сбивать с толку, поскольку несколько параметров (например, —add) также используются в режиме увеличения, чаще всего при добавлении устройства одновременно с изменением количества устройств.
Следование или наблюдение
сборка
Это пережиток того времени, когда суперблоков еще не было. Он используется для (повторного) создания массива и не должен использоваться, если вы точно не знаете, что делаете.Поскольку нет суперблоков или каких-либо метаданных массива, система просто должна предположить, что вы все сделали правильно, потому что у нее нет возможности проверить вас.
[TODO: Можете ли вы использовать этот режим для создания временного зеркала с целью резервного копирования ваших данных в реальном времени? Нет. При попытке создать RAID 1 с смонтированным устройством mdadm сообщает: «Устройство или ресурс занят», даже с параметром —force. Если сработает —force, резервное копирование все равно будет несогласованным, поскольку некоторые старые записи на устройство могут не завершиться и могут произойти новые записи.(Ухудшенный) RAID 1 должен быть построен и размещен между устройством и файловой системой перед запуском, то есть монтированием файловой системы. После горячего добавления резервного диска необходимо дождаться завершения синхронизации. Тогда один из дисков может выйти из строя и удалить. Резервная копия будет моментальным снимком устройства, поэтому существует небольшой риск ее несогласованности. Этот риск намного меньше, чем для простой копии «dd», которая будет содержать данные из разных моментов времени. Будет ли риск столь же низким, как при использовании моментальных снимков LVM, зависит от конкретной реализации RAID, т.е.е. будут ли оставленные данные истинным моментальным снимком на определенный момент времени.]
Разное
Здесь собраны все биты, которые больше нигде не подходят.
Внутреннее устройство массива и его влияние на mdadm
Суперблоки и версии Raid
Первые массивы не имели суперблока и были объявлены в «raidtab», которым управлял ныне несуществующий «raid-tools». Это, очевидно, могло привести к сбою, если диски перемещались между машинами, поскольку они были идентифицированы по типу раздела.Добавление нового диска могло перемещать имена устройств и, полагаясь на «raidtab», когда массив был собран, он мог получить неправильные диски в неправильном месте. В то время поддерживались только linear и raid-0, поэтому не было избыточности для восстановления. mdadm по-прежнему поддерживает массивы такого типа с параметром —build.
Предположительно, чтобы исправить это, был определен суперблок версии 0.9, хранящийся в конце устройства. Он также называется суперблоком версии 0, 0 относится к внутреннему устройству суперблока.Однако ему не хватает поддержки большинства современных функций mdadm, и теперь он устарел. Это также неоднозначно, что приводит к путанице сисадмина, что никогда не бывает хорошей идеей. Массивы с суперблоком v0.9 могут быть собраны ядром, но, опять же, если диски перемещать между машинами, последствия могут быть катастрофическими, поскольку массив будет собран неправильно.
Чтобы исправить это, была определена новая версия суперблока, версия 1. Макет общий для всех подверсий, 1.0, 1.1 и 1.2. На этом этапе автосборка ядром была прекращена — вы должны запустить initramfs для загрузки любого суперблока v1, кроме суперблока v1.0 зеркало. v1 включает в себя идентификатор массива, который ссылается на машину, создавшую массив (например, ashdown: 0), что предотвращает сборку дисков в неправильный массив (при отсутствии какой-либо патологической конфигурации).
Версия 1.0 также хранится в конце устройства. Это означает, что 0.9 можно обновить до 1.0. Это также означает, что теперь, когда сборка raid больше не поддерживается в ядре, единственный поддерживаемый способ загрузки из raid без initramfs — использовать зеркало v1.0.
Версия 1.1 сохраняется в начале устройства. Это не лучшее место, так как своенравный fdisk (или другие программы) иногда записывает в начало диска и может уничтожить суперблок.
Версия 1.2 хранится в формате 4K с момента запуска устройства.
И 1.1, и 1.2 используют одни и те же алгоритмы для вычисления свободного пространства, оставшегося в начале устройства. Версия 1.0 оставляет 128 КБ на конце каждого устройства, если оно достаточно велико — «достаточно большой» определяется как 200 ГБ.
mdadm не может переместить суперблок, поэтому нет возможности конвертировать между разными версиями 1.
Есть также два других формата суперблока, ddf и imsm. Они являются «отраслевым стандартом», а не специфичны для Linux, и они не рассматриваются в переписывании 2016 года.
Эти суперблоки также определяют «смещение данных». Это промежуток между началом устройства и началом данных. Это означает, что в версии 1.2 всегда должно быть не менее 4 КБ на устройство, хотя обычно это несколько мегабайт. Это пространство может использоваться для всех видов вещей, обычно для битовой карты намерения записи, журнала сбойных блоков и буферного пространства при изменении формы массива.Обычно он рассчитывается автоматически, но может быть отменен.
Все операции, связанные с перемещением данных, называются изменением формы и требуют временной области (окна), в которую можно производить запись без повреждения массива. Одна из причин суперблока v1 и смещения данных — предоставить для этого свободное место. Предпочтительный механизм — переместить данные вверх или вниз на несколько полос, считывая данные из активной области и записывая их в окно. Каждые несколько полос суперблок обновляется, делая окно «живым» и освобождая пространство, которое только что было перемещено в новое окно.Это приводит к смещению смещения данных на несколько мегабайт в любом направлении (что является одной из причин, почему вы НЕ можете безопасно воссоздать живой массив). Если система дает сбой или останавливается во время изменения формы, предполагается, что окно повреждено, и изменение формы может продолжаться.
Если смещение не может быть перемещено из-за отсутствия места или суперблока v0.9, то должен быть предоставлен файл резервной копии на другом разделе . [TODO: Будет ли изменение смещения данных препятствовать загрузке v1.0 mirror?] У этого есть целый ряд недостатков, не в последнюю очередь то, что reshape не может перезапуститься автоматически в случае прерывания, и что для этого требуется вдвое больше дискового io, так как каждая полоса, в свою очередь, требует резервного копирования. В худшем случае легко потерять массив, потому что, если файл резервной копии случайно помещен в преобразованный массив, вы получите уловку-22. Чтобы смонтировать раздел и получить доступ к файлу резервной копии, массив должен быть запущен. Но вы не можете запустить массив до тех пор, пока не будет перезапущено изменение формы.А чтобы перезапустить изменение формы, вам потребуется доступ к файлу резервной копии. При перезапуске после сбоя [TODO: закрывается ли он чисто в случае завершения работы?] Mdadm предполагает, что обрабатываемая полоса повреждена, и восстанавливает ее из резервной копии перед продолжением.
Блоки, куски и полосы
Их изменение можно использовать для оптимизации массива. Но основной способ сделать это — отрегулировать размер блока, размер полосы определяется количеством устройств в массиве, размер блока Linux составляет 4 КБ, а размер блока устройства определяется оборудованием.
Хотя технически это не имеет никакого отношения к raid, соответствие Linux и размера блока устройства имеет решающее значение. Размер блока устройства составлял 512 байт (пол килобайта) со времен 8-дюймовых дискет, если не раньше. Но на данный момент (2017 г.) стандартный размер блока устройства составляет 4096 байт (4 КБ). Некоторые диски имеют размер только 4 КБ. , а у некоторых есть уровень преобразования 512-4096. Ошибки — один из самых серьезных убийц производительности на уровне блоков устройства — Linux работает с блоками 4K, и если Linux считает, что диск начинает считать блоки по 512 блоков с 0, в то время как эмуляция накопителя начинает отсчет с 1 (или наоборот), каждый раз, когда linux записывает блок 4K, эмуляция должна прочитать 2 блока 4K, изменить оба и записать оба обратно.
Размер блока — это количество последовательных блоков, записываемых на каждый диск. Это кратно размеру блока Linux 4K. Обратите внимание, что некоторые рейды ограничивают ваш выбор размера блока. Raid-5 должен быть степенью двойки. Рейду-0 все равно. Остальные рейды могут отличаться.
Размер полосы — это количество блоков по количеству дисков. Полоса включает информацию о четности и / или зеркальном отображении, поэтому данные, хранящиеся на полосе, обычно меньше ее размера.
Вы должны быть осторожны при использовании этих терминов — точно так же, как размер блока может относиться к Linux или устройству, слово «полоса» также используется по-другому.Внутри кода raid5 это обычно означает страницу на диск. Слово «полоса» также используется для обозначения одной страницы на устройство. Так что просто убедитесь, что вы осведомлены о контексте, поскольку он может изменить значение.
Макеты ближнего, дальнего и смещения
Эти раскладки применимы в первую очередь к рейду 10, но концепция применима и к другим раскладкам рейдов. Raid 10 повторно хранит один и тот же фрагмент на нескольких дисках. Ближайший макет записывает N копий каждого блока последовательно на X дисков, поэтому мы получаем
| Устройство №1 | Устройство №2 | Устройство №3 | ------------------------------------------ 0x00 | 0 | 0 | 1 | 0x01 | 1 | 2 | 2 | : | : | : | : | : | : | : | : |
Что примечательно в этой компоновке, так это то, что массив можно интерпретировать как несколько различных вариантов рейда.Если N == X, то это тоже зеркало raid-1. [TODO: некоторые интернет-источники говорят, что существует разница в производительности чтения между 2-дисковым RAID 1 и RAID 10.] Но если N == X == 2, у нас также есть массив raid-4 или raid-5 с одним диск данных и один диск с контролем четности.
Макет со смещением аналогичен, за исключением того, что вместо повторения фрагментов он повторяет полосы со смещением второй и последующих копий.
| Устройство №1 | Устройство №2 | Устройство №3 | Устройство №4 | -------------------------------------------------- ---- 0x00 | 0 | 1 | 2 | 3 | 0x01 | 1 | 2 | 3 | 0 | 0x02 | 2 | 3 | 0! 1 | 0x03 | 4 | 5 | 6 | 7 | 0x04 | 5 | 6 | 7 | 4 | 0x05 | 6 | 7 | 4 | 5 | : | : | : | : | : | : | : | : | : | : |
Как и ближайший макет, этот макет тоже можно изменять.Однако, глядя на код, кажется, что добавление новых дисков запрещено, хотя это не должно быть слишком сложно реализовать.
Но любая попытка изменить форму дальнего массива немедленно потерпит неудачу.
| Устройство №1 | Устройство №2 | Устройство №3 | Устройство №4 | -------------------------------------------------- ---- 0x00 | 0 | 1 | 2 | 3 | 0x01 | 4 | 5 | 6! 7 | 0x02 | 8 | 9 | 10! 11 | : | : | : | : | : | : | : | : | : | : | 0x10 | 1 | 2 | 3 | 0 | 0x11 | 5 | 6! 7 | 4 | 0x12 | 9 | 10! 11 | 8 |
Трудность с дальним массивом состоит в том, что, поскольку копии находятся по всему массиву, может быть трудно сохранить избыточность при изменении формы.Фактически массив делится на столько частей, сколько требуется копий, а затем каждая часть содержит одну копию с соответствующим смещением, чтобы гарантировать, что любой отдельный блок не дублируется на одном диске. Вероятно, будет очень сложно запрограммировать изменение формы, потому что очень сложно гарантировать, что изменение одной части массива не повлияет на другую часть массива.
«Растущие» рейдовые массивы без четности
Рейд 0
Raid-0 в основном склеивает диски.Добавление нового диска в линейный массив просто расширяет конец массива — новое место прикрепляется к концу массива. Добавить новый диск в линейный массив сложнее — поскольку данные распределены по всем дискам, массив необходимо изменить. При использовании современных ядер и массивов файл резервной копии не требуется, так как новое пространство будет использоваться для хранения любых необходимых полос резервных копий. Кроме того, резервные полосы, вероятно, не понадобятся, поскольку данные будут немного сдвинуты вверх или вниз на устройствах, содержащих массив.
Удаление диска из линейного массива в настоящее время невозможно. Это потребует перемещения всех данных на удаляемом диске или над ним, чтобы создать отверстие размером с удаляемый диск.
Для чередующегося массива данные необходимо будет повторно разделить, чтобы переместить их с удаляемого диска.
Рейд-0 может быть преобразован в рейд-10 или в рейд-4/5/6.
Рейд 1
Raid 1 хранит идентичные копии на всех дисках. Таким образом, это самая простая процедура добавления и удаления дисков.Когда добавляется новый диск, данные копируются с одного из существующих дисков. При извлечении диска его можно просто удалить из массива.
Поддерживается преобразование в raid 4/5/6, потому что raid-1 с двумя дисками фактически является raid-4/5 с контролем четности 1 +, а рейды 4, 5 и 6 отличаются только количеством и размещением их блоков четности . Возможен и обратный переход, с двухдискового рейд-5 на рейд-1.
Рейд 1 + 0
Это рейд 0, созданный из зеркал рейда 1.Таким образом, отдельные элементы рейда можно увеличивать или уменьшать, как указано выше. Существует также инвертированная версия, raid 0 + 1, которая представляет собой зеркало raid-1, сделанное из массивов raid-0. Опять же, отдельные элементы можно увеличивать или уменьшать, как указано выше.
Рейд 10
Raid 10 — это специальный режим Linux, в котором несколько копий данных хранятся на нескольких дисках. Дисков должно быть как минимум столько, сколько копий — если они равны, это эквивалентно raid-1.
Дальний режим raid-10 уникален тем, что разбрасывает блоки по всему массиву, поэтому его очень сложно изменить, и в настоящее время любая попытка сделать это будет отклонена.Это может быть сделано, если кто-то захочет его закодировать.
В режимах ближнего и смещения можно добавлять и удалять приводы. Массив также можно переключать между режимами ближнего и смещения, а размер блока можно изменять, если он находится в допустимых пределах.
Поддерживается преобразование между raid-0 и raid-10 — для преобразования в любой другой рейд вам нужно будет пройти через raid-0 — резервное копирование, BACKUP, BACKUP !!! Похоже, что код не поддерживает преобразование между raid-1 и raid-10, что должно быть легко для массива из двух устройств.
«Растущие» рейдовые массивы с четностью
Рейд 4
Raid 4 используется редко. Это действительно имеет смысл только в том случае, если у вас есть один быстрый диск (который вы не против использовать для проверки четности) и несколько медленных. Каждая полоса состоит из одного или нескольких блоков данных, за которыми следует блок контроля четности. Фрагмент четности вычисляется с использованием алгоритма XOR. Если два сравниваемых бита идентичны, XOR возвращает 0, если они разные, возвращает 1.
| Устройство №1 | Устройство №2 | Устройство №3 | Устройство №4 | -------------------------------------------------- ---- 0x00 | 0 | 1 | 2 | P1 | 0x01 | 3 | 4 | 5 | P2 | 0x02 | 6 | 7 | 8 | P3 | : | : | : | : | : | : | : | : | : | : |
Raid 4 хранит все блоки четности на одном устройстве.Здесь P1 = 0 XOR 1 XOR 2 и P2 = 3 XOR 4 XOR 5. Но поскольку у нас есть четыре устройства (четное число), мы знаем, что P1 XOR 0 XOR 1 XOR 2 = 0, и аналогично P2 XOR 3 XOR 4 XOR 5 = 0. Если бы у нас было нечетное количество устройств, операция XOR всех фрагментов вместе дала бы нам все единицы.
Это означает, что, если мы потеряем какой-либо один фрагмент, мы можем легко воссоздать его, объединяя все оставшиеся фрагменты с помощью XOR.
Это также означает, что если у нас есть только два устройства, блоки данных и четности идентичны, что дает нам массив, неотличимый от зеркала raid-1.Это также дает нам массив, неотличимый от двухдискового raid-5.
И mdadm без проблем конвертирует (с небольшими ограничениями) между рейдами 4, 5 и 6.
Рейд 5
Raid 5 практически не отличается от raid-4. Разница в том, что информация о четности распределяется по всем дискам, а не сохраняется только на одном. Это распределяет нагрузку, делая массив более отзывчивым и уменьшая износ диска четности.
| Устройство №1 | Устройство №2 | Устройство №3 | Устройство №4 | -------------------------------------------------- ---- 0x00 | 0 | 1 | 2 | P1 | 0x01 | 3 | 4 | P2 | 5 | 0x02 | 6 | P3 | 7 | 8 | : | : | : | : | : | : | : | : | : | : |
Рейд 6
Принцип действия рейда-6 такой же, как и у рейдов 5 и 4.Однако детали заметно отличаются. Поскольку raid-6 использует более одного блока четности, мы не можем использовать алгоритм XOR, поскольку он не обеспечивает необходимой математической независимости. Вместо этого мы используем математическую конструкцию, называемую полем Галуа. Это очень хорошо объясняется в блоге Игоря Островского [1].
Математика позволяет вычислять произвольное количество блоков четности, но в linux raid используется только два, которые мы называем P и Q. Как и в случае с raid-5, блоки четности разбросаны по устройствам, но есть шесть способов разбрасывая их.Существует четырехсторонняя комбинация левого или правого, симметричного или асимметричного, либо есть parity_0 или parity_n.
| Устройство №1 | Устройство №2 | Устройство №3 | Устройство №4 | Устройство №5 | -------------------------------------------------- ---------------- 0x00 | 0 | 1 | 2 | P1 | Q1 | 0x01 | 3 | 4 | P2 | Q2 | 5 | 0x02 | 6 | P3 | Q3 | 7 | 8 | : | : | : | : | : | : | : | : | : | : | : | : |
Поскольку у нас есть две математически независимых четности, это означает, что мы можем восстановить наши данные, если мы когда-либо столкнемся с двумя независимыми ошибками.Другими словами, если мы потеряем два диска, мы можем пересчитать два недостающих блока. Или, если мы страдаем случайным повреждением, если затронут только один блок, мы можем вычислить, какой это блок и какое правильное значение. Каждый дополнительный блок четности позволяет нам восстановить лишний фрагмент поврежденной информации.
Raid 6 — единственный уровень рейда, на котором mdadm может жаловаться, что не может выполнить преобразование напрямую между уровнями 4, 5 и 6. Это связано с тем, как блоки четности разбросаны по устройствам.Изменение формы почти наверняка возможно, но может потребоваться сделать это в несколько этапов, а не напрямую.
Поваренная книга
Сборка массивов
mdadm --assemble --scan
Это команда, которая запускается в фоновом режиме при загрузке, собирает и запускает все ваши массивы (если что-то пойдет не так, когда вы обычно получаете частично собранный массив. Это может быть настоящей болью, если вы не понимаете, что что произошло).
Создание массива
Создание зеркального рейда
Самый простой пример создания массива — создание зеркала.
mdadm --create / dev / md / name / dev / sda1 / dev / sdb1 --level = 1 --raid-devices = 2
Это скопирует содержимое sda1 на sdb1 и даст вам чистый массив. Нет причин, по которым вы не можете использовать массив во время копирования (повторной синхронизации). Это можно подавить с помощью опции «—assume-clean», но делать это следует только в том случае, если вы заранее знаете, что разделы были очищены до нуля. В противном случае мертвое пространство не будет зеркалом, и любая команда проверки будет стонать синим убийством.
Создание рейда с контролем четности
Теперь давайте создадим более сложный пример.
mdadm --create / dev / md / name / dev / sda1 / dev / sdb1 / dev / sdc1 --level = 5 --raid-devices = 3 --bitmap = internal
Это, что неудивительно, создает массив рейда 5. При создании массива вы должны указать именно то количество устройств, которое он ожидает, то есть 3 здесь. Таким образом, два диска будут собраны в деградированный массив, а третий диск будет повторно синхронизирован для исправления четности. Если вы хотите добавить четвертый диск в качестве запасного, это необходимо сделать позже. Было объявлено внутреннее растровое изображение, поэтому суперблок будет отслеживать, какие блоки были обновлены и какие блоки необходимо обновить.Это означает, что, если диск по какой-то причине будет отключен, его можно повторно добавить обратно без необходимости полной повторной синхронизации.
Растровое изображение будет создано по умолчанию, если размер массива превышает 100 ГБ. Обратите внимание, что это довольно недавнее изменение, и если вы работаете на старом ядре, вам, возможно, придется удалить растровое изображение, если вы хотите использовать многие из параметров «роста».
Рейд по умолчанию будет создан в деградированном режиме и будет повторно синхронизирован. Это потому, что, если все ваши диски не пусты (как при создании зеркала), любая проверка целостности будет кричать о том, что неиспользуемые части вашего массива содержат мусор, а четность неправильная.
Выращивание массива
РЕЗЕРВНОЕ КОПИРОВАНИЕ. РЕЗЕРВНОЕ КОПИРОВАНИЕ !! РЕЗЕРВНОЕ КОПИРОВАНИЕ !!!!
Вы не должны терять данные — mdadm спроектирован таким образом, чтобы обеспечить отказоустойчивость, и даже когда все идет полным ходом, массив все равно должен собираться и работать, позволяя вам восстановиться в худшем случае.
Также обратите внимание, что, если у вас нет современного ядра, эти команды могут завершиться ошибкой с ошибкой «Растровое изображение необходимо удалить, прежде чем можно будет изменить размер / форму / уровень».
Добавление диска в зеркало
Это добавит к вашему зеркалу новый диск.Параметр «—grow / —raid-devices» является необязательным, если вы увеличите количество устройств raid, новый диск станет активной частью массива, а существующие диски будут зеркально отражены. Если вы не увеличиваете количество raid-устройств, новый диск будет запасным и станет частью активного массива только в случае выхода из строя одного из других дисков.
mdadm [--grow] / dev / md / mirror --add / dev / sdc1 [--raid-devices = 3]
Обновление зеркального рейда до паритета
Следующие команды преобразуют двухдисковое зеркало в двухдисковый raid5 с ухудшенным качеством, а затем добавят третий диск для полнофункционального массива raid5.Обратите внимание, что первая команда завершится ошибкой, если она будет запущена в массиве, который мы только что увеличили в предыдущем разделе, если вы изменили количество raid-устройств на три. Если у вас есть два устройства и одно запасное, первая команда будет работать сама по себе. Код отклонит любую попытку увеличить массив с более чем двумя активными устройствами.
mdadm --grow / dev / md / mirror --level = 5 mdadm --grow / dev / md / mirror --add / dev / sdc1 --raid-devices = 3
Удаление диска из массива
Это преобразует зеркало из первой секции в поврежденное трехдисковое зеркало, а затем в исправное двухдисковое зеркало.Обратите внимание, что при использовании OpenSUSE Leap 42 у меня возникли проблемы с уменьшением количества устройств до 2.
mdadm / dev / md / зеркало --fail / dev / sdc1 --remove / dev / sdc1 mdadm --grow / dev / md / mirror --raid-devices = 2
Если вы когда-либо уже удалили диск из трехдискового зеркала в двухдисковое зеркало, используйте только вторую строку (рост), чтобы исправить ухудшенный режим (проверено на openSUSE 42.2). Это можно проверить с помощью:
mdadm --detail / dev / mdxxx
Добавление места без добавления другого устройства
У вас может не хватить портов SATA для добавления дополнительных дисков, но вы хотите добавить больше места в массив.Процедура почти такая же, как и при замене хитроумного устройства.
Если у вас есть зеркало с тремя дисками, вы можете просто вывести из строя один диск и заменить его на диск большего размера, и повторять до тех пор, пока все ваши диски не будут заменены на диски большего размера. Если у вас есть только зеркало с двумя дисками, применимы предыдущие советы по приобретению дополнительной карты SATA PCI или что-то подобное. Либо добавьте новый диск, а затем выведите из строя старый, либо поместите старый в отсек USB на временной основе и — замените его.
Если у вас есть рейд с контролем четности, то, если у вас есть рейд-6, вы снова можете просто вывести диск из строя, а затем добавить новый, но это не лучшая идея.Если вы не хотите подвергать свои данные риску, то для raid-5 вы * должны *, а для raid-6 * должны * использовать запасной порт SATA для выполнения —replace или поменять местами старый диск в отсек USB, чтобы вы могли сделать замену таким образом.
После того, как вы увеличили размер всех базовых устройств, вы можете увеличить размер массива, а затем увеличить размер файловой системы или разделов в массиве.
Управление массивом
Изменение размера массива
Добавление нового устройства в зеркало не изменит размер массива — новое устройство сохранит дополнительную копию данных, и на нем не будет дополнительного места.Но добавление устройства в массив четности обычно увеличивает доступное пространство. Предположим, у нас есть raid-5 размером 3 на 4 ТБ, что дает нам массив 8 ТБ. Добавление четвертого 4 ТБ даст нам массив 12 ТБ.
Если предположить, что это возможно, добавление устройства емкостью 3 ТБ даст нам только 1 ТБ, поскольку формула raid-5 такова: устройства, умноженные на размер наименьшего устройства, в 1 раз. Однако это маловероятно. Для этого вам, вероятно, придется уменьшить размер массива до 6 ТБ (—size = 3 ТБ) перед добавлением нового диска (который затем увеличит емкость до 9 ТБ).
Добавление этого четвертого диска увеличило размер массива, чем мы можем воспользоваться, изменив размер файловой системы на нем (см. Следующий раздел). Но что произойдет, если мы добавим диск 5 ТБ к нашим трем дискам по 4 ТБ? К сожалению, лишний 1 ТБ тратится впустую, потому что этот диск больше. Итак, давайте предположим, что вместо того, чтобы добавлять четвертый диск — 5 ТБ, мы фактически заменили все диски 4 ТБ, чтобы получить диск 3 x 5 ТБ. К сожалению, у нас все еще есть массив на 8 ТБ. Нам нужно сообщить mdadm о дополнительном пространстве, доступном с
mdadm --grow / dev / mdN --size = max
Параметр —size сообщает массиву, какую часть каждого диска использовать.Когда создается массив, по умолчанию используется размер самого маленького диска, но когда, как здесь, мы заменили все диски на диски большего размера, нам нужно явно указать mdadm о пространстве. Аргумент «max» еще раз указывает, что по умолчанию используется размер самого маленького диска в массиве.
Обратите внимание, что был странный отчет —size = max not working. Убедитесь, что ядру известно о новом размере диска, поскольку это была проблема — возможно, вам придется повторно добавить диск в горячем режиме или перезагрузить компьютер.
Использование нового пространства
Если массив изначально был разбит на разделы, новое пространство теперь будет доступно для изменения размера существующих разделов или добавления новых. Если в массиве была файловая система, теперь файловая система может быть расширена. В разных файловых системах есть разные команды, например
resize2fs / dev / mdN
Поддержка | Synology Inc.
Служба ремонта Synology
Synology предоставляет гарантийное обслуживание всего оборудования.Ремонт осуществляется специалистами Synology, и мы строго отслеживаем каждую деталь процесса, чтобы убедиться, что ваш объект будет отремонтирован должным образом. Расширенная гарантия доступна для некоторых моделей высокого класса для продления срока ограниченной гарантии на оборудование.
Ремонтная служба
Обозначенные элементы будут отремонтированы или отремонтированы в течение гарантийного срока в соответствии со стандартами Synology (с новыми или отремонтированными компонентами), чтобы убедиться, что указанные элементы могут работать должным образом после ремонта.
Пожалуйста, прочтите это перед тем, как обращаться в сервисный центр.
- Прочтите и примите гарантийное соглашение.
- Гарантия может различаться для разных моделей, поэтому убедитесь, что указанный товар находится в пределах гарантии. Узнать больше
- Убедитесь, что вы выполнили контрольный список и определили, что неисправность вызвана аппаратным обеспечением.
Примечание:
В нормальных условиях гарантия активируется с даты, указанной в счете, выставленном Synology или ее уполномоченными дистрибьюторами и торговыми посредниками.
Порядок ремонта
- Связаться с первоначальным торговым посредником — Для получения услуг по ремонту сначала свяжитесь с офисом первоначальной закупки или местными представителями (торговыми посредниками или дистрибьюторами).
- Обратитесь в Synology — Если первоначальный отдел закупок больше не может предоставлять услуги по ремонту по какой-либо причине, обратитесь в Synology за дополнительной помощью.
Чтобы подать заявку на услугу ремонта от Synology, войдите в свою учетную запись Synology.
Примечание:
- Перед отправкой NAS на ремонт необходимо создать резервную копию личных данных и конфигураций. Synology и ее авторизованные партнеры не несут ответственности за сохранение вашей конфиденциальности и конфиденциальности.
- Продукт и система будут восстановлены до заводских настроек по умолчанию, и исходные данные невозможно будет восстановить. Synology не несет ответственности за потерю данных во время ремонта.
- Гарантия распространяется только на продукты Synology.Жесткие диски и любые другие совместимые устройства в комплект не входят.
- Synology оставляет за собой все права на окончательное решение, которое будет приниматься исключительно и окончательно компанией Synology.
Замена неисправного диска RAID 6 на mdadm
В этом руководстве описывается, как заменить неисправный диск на программном RAID, управляемом утилитой mdadm
. Чтобы заменить неисправный диск RAID 6 в mdadm
:
- Определите проблему.
- Получите подробную информацию из массива RAID.
- Удалите неисправный диск из массива RAID.
- Выключите машину и замените диск.
- Разделите новый диск на разделы.
- Добавьте новый диск в массив RAID.
- Проверить восстановление.
Давайте рассмотрим этот процесс более подробно на примере.
Определите проблему
Чтобы определить, какой из дисков в массиве RAID вышел из строя, введите:
[корень @ расположение сервера] # cat / proc / mdadm
или:
[корень @ расположение сервера] # mdadm -–query -–detail / dev / md2
Неисправный диск будет отображаться как , отказавший или удален .Например:
[корень @ расположение сервера] # mdadm -–query -–detail / dev / md2
/ dev / md2:
Версия: 1.2
Время создания: 22 июн, пн, 08:47:09 2015
Уровень рейда: raid6
Размер массива: 5819252736 (5549,67 ГиБ, 5958,91 ГБ)
Используемый размер Dev: 2909626368 (2774,84 ГиБ, 2979,46 ГБ)
Устройства рейда: 4
Всего устройств: 4
Стойкость: суперблок постоянен
Растровое изображение намерения: внутреннее
Время обновления: понедельник, 15 октября, 11:55:06 2018
Состояние: чистое, деградированное, восстанавливающееся
Активные устройства: 3
Рабочие устройства: 4
Неудачные устройства: 0
Запасные устройства: 1
Расположение: левосимметричное
Размер блока: 512 К
Политика согласованности: растровое изображение
Статус восстановления: завершено на 3%
Имя: localhost.локальный домен: 2
UUID: 54404ab5: 4450e4f3: aba6c1fb: 93a4087e
Событий: 1046292
Номер Major Minor Raid Device State
0 0 0 0 удалено
1 8 36 1 активная синхронизация / dev / sdc4
2 8 52 2 активная синхронизация / dev / sdd4
3 8 68 3 активная синхронизация / dev / sde4
Получить подробную информацию о массиве RAID
Чтобы проверить состояние массива RAID и определить состояние диска в RAID:
[корень @ расположение сервера] # cat / proc / mdstat
Личности: [raid6] [raid5] [raid4]
md2: активный raid6 sdb4 [4] (F) sdd4 [2] sdc4 [1] sde4 [3]
5819252736 блоков супер 1.2 уровень 6, фрагмент 512 КБ, алгоритм 2 [4/3] [_UUU]
[> ……………… ..] восстановление = 3,4% (100650992/2909626368) окончание = 471,5 мин, скорость = 99278 К / с
растровое изображение: 2/22 страницы [8 КБ], фрагмент 65536 КБ
неиспользуемые устройства: <нет>
Как мы видим, устройство / dev / sdb4
отказало в RAID.
Поскольку мы определили, что неисправный диск — / dev / sdb4
(как и на этом сервере), нам нужно было получить серийный номер диска с помощью smartctl
:
[root @ server loc] # smartctl -–all / dev / sdb | grep -i 'серийный'
Приведенная выше команда важна, так как вам нужно знать, какой диск удалить с сервера, в соответствии с физической меткой диска.
Удалите неисправный диск из массива RAID
Важно удалить неисправный диск из массива, чтобы массив сохранял согласованное состояние и знал обо всех изменениях, например:
[root @ server loc] # mdadm -–manage / dev / md2 -–remove / dev / sdb4
При успешном удалении будет возвращено следующее сообщение:
[root @ server loc] # mdadm: горячее удаление / dev / sdb4 из / dev / md2
Еще раз проверьте состояние / proc / mdstat
:
[корень @ расположение сервера] # cat / proc / mdstat
Вы можете видеть, что / dev / sdb4
больше не отображается.
Выключите машину и замените диск
Теперь пора выключить систему и заменить неисправный диск новым, но перед выключением системы добавьте комментарий / dev / md2
из файла / etc / fstab
. См. Пример ниже:
[корень @ расположение сервера] # cat / etc / fstab
#
# / etc / fstab
# Создано anaconda, пт, 20 мая, 13:12:25 2016
#
# Доступные файловые системы, по ссылке, поддерживаются в "/ dev / disk"
# См. Справочные страницы fstab (5), findfs (8), mount (8) и / или blkid (8) для получения дополнительной информации
#
/ dev / mapper / centos-root / xfs по умолчанию 0 0
UUID = 1300b86d-2638-4a9f-b366-c5e67e9ffa4e / boot xfs по умолчанию 0 0
# / dev / mapper / centos-home / home xfs по умолчанию 0 0
/ dev / mapper / centos-swap swap swap значения по умолчанию 0 0
# / dev / md2 / var / loc xfs по умолчанию 0 0
Разметка нового диска
Поскольку у нас есть другие рабочие диски в массиве RAID, легко и удобно скопировать схему разделов рабочего диска на новый диск.Эта задача выполняется с помощью утилиты sgdisk
, которая входит в состав пакета gdisk
.
Установите gdisk
следующим образом (настройте эту команду для вашего дистрибутива):
[root @ server loc] # yum install gdisk
Используя gdisk
, мы сначала передадим параметр -R
(расшифровывается как Replicate). Убедитесь, что вы реплицируете схему разделов рабочего диска. Важно, чтобы вы использовали правильный порядок дисков для репликации схемы разделов с рабочего диска на новый.В нашей ситуации на новом диске находится / dev / sdb
, а рабочие диски — / dev / sdc
, / dev / sdd
, / dev / sde
.
Теперь, чтобы реплицировать схему разделов рабочего диска (скажем, / dev / sdc
) на новый диск / dev / sdb
, необходима следующая команда:
[корень @ расположение сервера] # sgdisk -R / dev / sdb / dev / sdc
Чтобы предотвратить конфликты GUID с другими дисками, нам необходимо рандомизировать GUID нового диска, используя:
[корень @ расположение сервера] # sgdisk -G / dev / sdb
Операция успешно завершена.
Затем проверьте вывод / dev / sdb с помощью утилиты parted
:
[root @ server loc] # parted / dev / sdb print
Добавить новый диск в массив RAID
После завершения репликации схемы разделов на новый диск, теперь мы можем добавить диск в массив RAID:
[корень @ расположение сервера] # mdadm -–manage / dev / md2 -–add / dev / sdb4
mdadm: добавлен / dev / sdb4
Проверить восстановление
Для проверки восстановления RAID используйте следующее:
[корень @ расположение сервера] # cat / proc / mdstat
Личности: [raid6] [raid5] [raid4]
md2: активный raid6 sdb4 [4] sdd4 [2] sdc4 [1] sde4 [3]
5819252736 блоков супер 1.2 уровень 6, фрагмент 512 КБ, алгоритм 2 [4/3] [_UUU]
[==> ………………] восстановление = 12,2% (3575/2909626368) окончание = 424,1 мин скорость = 100283 К / с
растровое изображение: 0/22 страницы [0KB], фрагмент 65536KB
неиспользуемые устройства: <нет>
или:
[корень @ расположение сервера] # mdadm -–query -–detail / dev / md2
/ dev / md2:
Версия: 1.2
Время создания: 22 июн, пн, 08:47:09 2015
Уровень рейда: raid6
Размер массива: 5819252736 (5549,67 ГиБ, 5958,91 ГБ)
Используемый размер Dev: 2909626368 (2774,84 ГиБ, 2979,46 ГБ)
Устройства рейда: 4
Всего устройств: 4
Стойкость: суперблок постоянен
Растровое изображение намерения: внутреннее
Время обновления: понедельник, 15 октября, 12:37:37 2018
Состояние: чистое, деградированное, восстанавливающееся
Активные устройства: 3
Рабочие устройства: 4
Неудачные устройства: 0
Запасные устройства: 1
Расположение: левосимметричное
Размер блока: 512 К
Политика согласованности: растровое изображение
Статус восстановления: завершено на 12%
Имя: localhost.локальный домен: 2
UUID: 54404ab5: 4450e4f3: aba6c1fb: 93a4087e
События: 1046749
Номер Major Minor Raid Device State
4 8 20 0 резервное восстановление / dev / sdb4
1 8 36 1 активная синхронизация / dev / sdc4
2 8 52 2 активная синхронизация / dev / sdd4
3 8 68 3 активная синхронизация / dev / sde4
Из приведенного выше вывода мы видим, что / dev / sdb4
перестраивается, и доступны четыре рабочих и активных устройства.Процесс восстановления может занять некоторое время, в зависимости от общего размера и типа диска (например, традиционный или твердотельный).
Праздновать
Вы успешно заменили неисправный диск RAID 6 на mdadm
. Надеюсь, вам никогда это не понадобится, но оборудование выходит из строя. Скорее всего, если вы используете RAID 6, это рано или поздно произойдет. Если можете, настройте лабораторию, принудительно откажитесь от RAID 6, а затем восстановите его. Знание того, как решить проблему, сделает переживание, когда происходит немыслимое, гораздо менее напряженным.
DMDE — RAID-массивы
TOC · Работа · Меню ·
Диск
RAID-массивы
Диалоговое окно «Построить RAID»
Использовать меню — Диск — Выбрать диск — Создать RAID
Инструмент для создания виртуального RAID с использованием отдельных дисков (или разделов и образов), когда
это невозможно с помощью контроллера (аппаратный RAID)
или операционной системы (программный RAID), а также для автоматического определения структуры RAID
когда некоторые параметры RAID неизвестны.
Если необходимо отсоединить диски от RAID-контроллера
и прикрепить к компу как отдельные диски.
Неправильный выбор типа RAID, ротации данных (чередование) или порядка дисков
вызывает неправильное восстановление данных
(несмотря на возможное восстановление корректной структуры каталогов).
RAID: опция Auto Calculate (Scan) позволяет вычислять неизвестные параметры и / или порядок дисков
для массивов с чередованием.
Некоторые диски могут отсутствовать (однако необходимо точно указать исходное количество дисков).Наиболее вероятные схемы RAID рассчитываются статистически.
Чем точнее указаны возможные параметры RAID для расчета, тем быстрее и точнее будут получены результаты.
Например, программная реализация RAID-5 в ОС Windows использует обратное динамическое вращение и размер полосы 64 КБ.
и эти известные параметры можно указать заранее.
В большинстве программных реализаций RAID используются контейнеры, поэтому этап LBA Offset Step используется для проверки различных смещений контейнера.Современные ОС используют выравнивание 1 МБ, поэтому 2048 LBA (1 МБ) является вариантом по умолчанию.
Старые ОС могут использовать выравнивание 63 LBA.
Для совершенно неизвестного смещения может быть указан шаг 1 LBA.
Типы RAID
RAID-0.
Обычно содержит два диска, на которых информация записывается попеременно блоками (полосами).
При отсутствии одного диска можно восстановить только небольшие файлы, которые умещаются в один блок.
RAID-1.
Обычно содержит два диска, данные дублируются.Размер полосы не используется.
Поддерживается в режиме только для чтения.
Один исправный диск можно открыть как единое устройство без потери данных.
RAID-4.
Обычно содержит три диска. Один диск для четности.
Данные чередуются между остальными дисками.
Можно восстановить все данные без какого-либо диска.
Используйте NULL устройство вместо отсутствующего устройства.
RAID-5.
Обычно содержит три диска (или больше).
Данные чередуются между всеми дисками, при этом один блок четности на остальные блоки данных.В RAID-5 существует четыре типа ротации данных.
Некоторые RAID (обычно аппаратные) могут иметь отложенную четность.
Можно восстановить все данные без одного из дисков
(который следует заменить на NULL-устройство).
RAID-6.
Обычно содержит четыре диска (или больше). Он аналогичен RAID-5 за исключением того, что два блока
четности (разных типов).
Поддерживается только тип четности, поэтому только один диск может быть заменен устройством NULL.
Поддерживается в режиме только для чтения.
RAID: произвольная ротация.
Вы можете определить собственное чередование (используйте Меню — Чередование …).
Используйте целые числа от 0, чтобы указать блоки данных в соответствии с их порядком на дисках,
-1, чтобы указать XOR -блок четности, и
-2 для указания неиспользуемого блока.
Например, для схемы: | => | Укажите чередование как: | |||
Диск № 0 | Диск № 1 | Диск № 2 | Диск № 3 | ||
A1 | A2 | Ap | 0 1-1-2 | ||
B1 | Bp | Bq | B2 | 2-1-2 3 | |
Cp | Cq | C1 | C2 | -1-2 4 5 | |
Dq | D1 | D2 | Dp | -2 6 7-1 |
JBOD / Spanned.
Просто граница дисков, которые используются как один непрерывный диск.
Чередования данных нет, размер полосы не используется.
Данные, находящиеся на любом диске, будут потеряны, если диск отсутствует.
JBOD поддерживается в режиме чтения / записи.
Параметры RAID
Stripe Size: размер блока вращения данных. Не используется в RAID-1 , JBOD
Delay: задержка вращения (специальные реализации RAID-5, и RAID-6, )
Offset: начальное смещение данных на диске (обычно используется на программных RAID)
Смещение и размер: смещение и размер логической единицы RAID на отдельном диске.
Нулевой диск: используется вместо отсутствующего или поврежденного диска
Чередование…: вручную указать чередование для Custom RAID
Save / Load: сохранить / загрузить конфигурацию RAID.
Читать дальше: повышение производительности на RAID с небольшим размером полосы
(не рекомендуется на дисках с битыми секторами).
.