- Работа с mdadm в Linux для организации RAID
- Установка mdadm
- Сборка RAID
- Подготовка носителей
- Создание рейда
- Создание файла mdadm.conf
- Создание файловой системы и монтирование массива
- Информация о RAID
- Размышления о разном
- четверг, 8 октября 2015 г.
- Как примонтировать диск из зеркального RAID в Linux
- IT миниблог
- О том что нужно не потерять
- Монтируем диск из NAS, или как смонтировать RAID-раздел в Linux
- Программный raid в Linux
- Что такое RAID
- Создание программного RAID в Linux
- Шаг 1. Установка mdadm
- Шаг 2. Подготовка дисков
- Шаг 3. Создание RAID 0
- Шаг 4. Тестирование RAID 0
- Шаг 5. Информация о RAID
- Шаг 6. Сохранение RAID массива
- Шаг 7. Переименование RAID массива
- Шаг 8. Удаление RAID массива
- Шаг 10. Создание массива RAID 1
- Выводы
Работа с mdadm в Linux для организации RAID
mdadm — утилита для работы с программными RAID-массивами различных уровней. В данной инструкции рассмотрим примеры ее использования.
Установка mdadm
Утилита mdadm может быть установлена одной командой.
Если используем CentOS / Red Hat:
yum install mdadm
Если используем Ubuntu / Debian:
apt-get install mdadm
Сборка RAID
Перед сборкой, стоит подготовить наши носители. Затем можно приступать к созданию рейд-массива.
Подготовка носителей
Сначала необходимо занулить суперблоки на дисках, которые мы будем использовать для построения RAID (если диски ранее использовались, их суперблоки могут содержать служебную информацию о других RAID):
mdadm —zero-superblock —force /dev/sd
* в данном примере мы зануляем суперблоки для дисков sdb и sdc.
Если мы получили ответ:
mdadm: Unrecognised md component device — /dev/sdb
mdadm: Unrecognised md component device — /dev/sdc
. то значит, что диски не использовались ранее для RAID. Просто продолжаем настройку.
Далее нужно удалить старые метаданные и подпись на дисках:
wipefs —all —force /dev/sd
Создание рейда
Для сборки избыточного массива применяем следующую команду:
mdadm —create —verbose /dev/md0 -l 1 -n 2 /dev/sd
- /dev/md0 — устройство RAID, которое появится после сборки;
- -l 1 — уровень RAID;
- -n 2 — количество дисков, из которых собирается массив;
- /dev/sd — сборка выполняется из дисков sdb и sdc.
Мы должны увидеть что-то на подобие:
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store ‘/boot’ on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
—metadata=0.90
mdadm: size set to 1046528K
Также система задаст контрольный вопрос, хотим ли мы продолжить и создать RAID — нужно ответить y:
Continue creating array? y
Мы увидим что-то на подобие:
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
. и находим информацию о том, что у наших дисков sdb и sdc появился раздел md0, например:
.
sdb 8:16 0 2G 0 disk
??md0 9:0 0 2G 0 raid1
sdc 8:32 0 2G 0 disk
??md0 9:0 0 2G 0 raid1
.
* в примере мы видим собранный raid1 из дисков sdb и sdc.
Создание файла mdadm.conf
В файле mdadm.conf находится информация о RAID-массивах и компонентах, которые в них входят. Для его создания выполняем следующие команды:
echo «DEVICE partitions» > /etc/mdadm/mdadm.conf
mdadm —detail —scan —verbose | awk ‘/ARRAY/
DEVICE partitions
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 name=proxy.dmosk.local:0 UUID=411f9848:0fae25f9:85736344:ff18e41d
* в данном примере хранится информация о массиве /dev/md0 — его уровень 1, он собирается из 2-х дисков.
Создание файловой системы и монтирование массива
Создание файловой системы для массива выполняется также, как для раздела:
* данной командой мы создаем на md0 файловую систему ext4.
Примонтировать раздел можно командой:
mount /dev/md0 /mnt
* в данном случае мы примонтировали наш массив в каталог /mnt.
Чтобы данный раздел также монтировался при загрузке системы, добавляем в fstab следующее:
/dev/md0 /mnt ext4 defaults 1 2
Для проверки правильности fstab, вводим:
Мы должны увидеть примонтированный раздел md, например:
/dev/md0 990M 2,6M 921M 1% /mnt
Информация о RAID
Посмотреть состояние всех RAID можно командой:
В ответ мы получим что-то на подобие:
md0 : active raid1 sdc[1] sdb[0]
1046528 blocks super 1.2 [2/2] [UU]
* где md0 — имя RAID устройства; raid1 sdc[1] sdb[0] — уровень избыточности и из каких дисков собран; 1046528 blocks — размер массива; [2/2] [UU] — количество юнитов, которые на данный момент используются.
** мы можем увидеть строку md0 : active(auto-read-only) — это означает, что после монтирования массива, он не использовался для записи.
Подробную информацию о конкретном массиве можно посмотреть командой:
* где /dev/md0 — имя RAID устройства.
Version : 1.2
Creation Time : Wed Mar 6 09:41:06 2019
Raid Level : raid1
Array Size : 1046528 (1022.00 MiB 1071.64 MB)
Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Wed Mar 6 09:41:26 2019
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : proxy.dmosk.local:0 (local to host proxy.dmosk.local)
UUID : 304ad447:a04cda4a:90457d04:d9a4e884
Events : 17
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
- Version — версия метаданных.
- Creation Time — дата в время создания массива.
- Raid Level — уровень RAID.
- Array Size — объем дискового пространства для RAID.
- Used Dev Size — используемый объем для устройств. Для каждого уровня будет индивидуальный расчет: RAID1 — равен половине общего размера дисков, RAID5 — равен размеру, используемому для контроля четности.
- Raid Devices — количество используемых устройств для RAID.
- Total Devices — количество добавленных в RAID устройств.
- Update Time — дата и время последнего изменения массива.
- State — текущее состояние. clean — все в порядке.
- Active Devices — количество работающих в массиве устройств.
- Working Devices — количество добавленных в массив устройств в рабочем состоянии.
- Failed Devices — количество сбойных устройств.
- Spare Devices — количество запасных устройств.
- Consistency Policy — политика согласованности активного массива (при неожиданном сбое). По умолчанию используется resync — полная ресинхронизация после восстановления. Также могут быть bitmap, journal, ppl.
- Name — имя компьютера.
- UUID — идентификатор для массива.
- Events — количество событий обновления.
- Chunk Size (для RAID5) — размер блока в килобайтах, который пишется на разные диски.
Подробнее про каждый параметр можно прочитать в мануале для mdadm:
Также, информацию о разделах и дисковом пространстве массива можно посмотреть командой fdisk:
Источник
Размышления о разном
четверг, 8 октября 2015 г.
Как примонтировать диск из зеркального RAID в Linux
В связи с тем, что самому мне нагуглить это удалось далеко не сразу, попробую облегчить жизнь другим.
Итак, допустим, у нас есть RAID-массив из двух дисков с зеркалированием (RAID1). И один из дисков «накрылся». Второй вполне рабочий и хотелось бы куда-то подключить его, чтобы перенести информацию (например, на вновь установленные в NAS диски, отличающиеся от имеющихся, поэтому простой заменой неисправного на другой не обойтись).
Первым делом предлагаю подключить диск к компьютеру и посмотреть, что по нему определяет GParted:
В моём случае, раздел с данными, как легко можно определить по наибольшему размеру, – /dev/sdb3. Скорее всего, по умолчанию, у вас будет отображаться диск системы, поэтому переключитесь на нужный накопитель через выпадающий список справа или с помощью меню:
GParted > Устройства > Выбор диска из списка
Создадим каталог, куда и будем монтировать содержимое раздела:
здесь
«ro» – это «Read only», мы не сможем ничего записать на раздел или удалить с него;
«ext4» – файловая система раздела (смотрим в GParted);
«sdb3» – нужный нам раздел диска (также смотрим в GParted);
– название каталога, не принципиально какое.
Далее открываем файловый менеджер (возможно, для доступа к некоторым папкам вам понадобятся повышенные привилегии, поэтому запустим его из терминала через sudo), идём в /mnt и в созданной там директории должно находится содержимое, ради которого всё это затевалось.
Если пересканировать устройства в GParted или его повторно, то в добавившейся колонке «Точка монтирования» для нашего раздела будет указан соответствующий путь.
Источник
IT миниблог
О том что нужно не потерять
Монтируем диск из NAS, или как смонтировать RAID-раздел в Linux
Многие из нас сейчас активно используют такие устройства как NAS. Полезно, удобно, компактно. Иногда эти устройства используются даже в небольших конторах как файловые накопители. И иногда они ломаются. Недавно такое произошло у коллеги работающего на аутсорсе в одной пиар-компаний. Тут-то мы и познакомились получше с тем что находится внтури этих NAS. Как правило, работают они под linux и если в системе используется несколько дисков, то они объединены в RAID. В нашем случае это был RAID1, то есть зеркало. Проблема заключалась в том, что к устройству не было доступа через web и ssh. Сбрасывать через RESET было боязно потерять содержимое дисков. Поэтому было решено вытащить один из дисков из RAID и забэкапить его перед сбросом.
Казалось бы, что может быть проще — загрузиться с LiveCD Linux и смонтировать линуксовый диск? Вообще-то оно действительно просто. Но надо помнить что у наc RAID и потомe монтируется диск несколько иначе, чем обычно.
Итак как смонтировать диск RAID1 в Linux?
Мы будем использовать популярный дистрибутив Linux — Ubuntu.
1. После загрузки установим программу mdadm:
2. Посмотрим разделы на нашем диске:
3. Создадим директорию для монтирования старого диска:
Если мы попытаемся смонтировать диск обычном образом:
то получим в результате следующее сообщение:
Поэтому:
4. Проверяем рейдовый разедл:
5. Cоздаем виртуальное md устройство используя утилиту mdadm:
6. Теперь монтируем созданное устройство в ранее созданную директорию:
Вуа ля и в директории /mnt/old_hdd/ содержимое нашего диска. Можно сделать бэкап и безболезненно сбросить NAS. Хотя как показали дальнейшие исследования обычный RESET не стирает содержимое дисков ?
Но всякий админ знает, что лучше перестраховаться. А то что здесь описано может пригодиться в каком-нибудь другом случае.
После завершения процесса копирования, размонтируем виртуальное устройство и остановим его:
Источник
Программный raid в Linux
В высоконагруженных производственных серверах жесткие диски и SSD подключены не по отдельности, а объединены в специальные массивы, внутри которых данные физически хранятся на нескольких дисках одновременно, что обеспечивает лучшую сохранность данных при выходе дисков из строя, а также увеличивает скорость записи, так как данные можно записывать не на один диск, а сразу на несколько обходя ограничение скорости каждого диска. Такие массивы называются RAID.
Для создания RAID массивов используются аппаратные специальные контроллеры. Однако создать RAID массив можно и без такого контролера. Такие массивы называются программными. В этой статье мы рассмотрим как создать программный RAID Linux.
Что такое RAID
Аббревиатура RAID расшифровывается как Redundant Array of Inexpensive Disks. С помощью этой технологии вы можете превратить несколько реальных жестких дисков в один виртуальный диск с увеличенным объемом и скоростью передачи данных. Но объем полученного диска и параметры его работы уже зависят от выбранного режима работы RAID. Доступны такие режимы:
- RAID 0 — позволяет увеличить скорость записи. Все диски массива будут использоваться для записи данных, поэтому их скорости будут складываться. Например, если у вас есть три диска объемом 512 Гб и скоростью записи 200 Мб в секунду, то объединив их в RAID 0 вы получите виртуальный диск объемом 1,5 Тб и максимальной скоростью записи 600 Мб в секунду.
- RAID 1 — этот режим увеличивает сохранность данных. Во время записи одни и те же данные пишутся параллельно на подключённые диски. В результате у вас будет несколько копий одних и тех же данных. Если один из дисков массива выйдет из строя, система продолжит работать, так как данные есть ещё и на другом диске. Например, если вы объедините два диска по 1 Тб в RAID 1, то получите один виртуальный диск с объемом 1 Тб.
- RAID 10 — объединяет в себе два предыдущих варианта. Он может состоять как минимум из четырех дисков. В таком случае сначала создаются два массива RAID 1, а поверх них создается массив RAID 0 для увеличения производительности.
Конечно, существуют и другие режимы работы, но эти самые популярные. В сегодняшней статье мы рассмотрим как создать программный RAID уровней 0 и 1.
Создание программного RAID в Linux
Шаг 1. Установка mdadm
Для управления программными RAID массивами в Linux используется утилита mdadm. Для того чтобы установить её в Ubuntu или Debian выполните такую команду:
sudo apt install mdadm
Для установки утилиты в CentOS/Fedora/RedHat необходимо выполнить:
sudo yum install mdadm
Шаг 2. Подготовка дисков
Посмотреть список дисков, подключённых к системе можно с помощью команды lsblk:
В этой статье я покажу как объединить три диска в RAID на примере дисков /dev/sda, /dev/sdb и /dev/sdc. Сначала необходимо определиться стоит ли размещать RAID непосредственно на диски или на разделы. Лучше выбрать разделы, так как это дает больше гибкости и безопасности. Во первых, операционная система может перезаписать суперблок RAID если он размещён прямо на диске. Во вторых, если вы выделяете весь диск под RAID, то у вас могут возникнуть проблемы при замене диска. Диски одинакового объема, обычно, немного отличаются у разных производителей. Поэтому для замены вам придется искать точно такой же диск с точно таким же реальным объемом. Если же у вас будет раздел, вы просто сможете создать раздел нужного объема.
Сначала нужно создать таблицу разделов на всех выбранных дисках:
sudo parted /dev/sda mklabel msdos
sudo parted /dev/sdb mklabel msdos
sudo parted /dev/sdc mklabel msdos
Если на диске уже существует таблица разделов программа предупредит о том, что создание новой сотрёт все данные с диска. После создания таблицы разделов следует создать по разделу на каждом диске. Например, создадим разделы размером 460 гигабайт. Для этого можно воспользоваться той же командой parted:
sudo parted /dev/sda mkpart primary ext4 2048 460Gb
sudo parted /dev/sdb mkpart primary ext4 2048 460Gb
sudo parted /dev/sdc mkpart primary ext4 2048 460Gb
Теперь диски готовы к размещению на них RAID:
Шаг 3. Создание RAID 0
Для создания RAID массива надо выполнить команду mdadm с опцией —create, указать режим работы массива, количество дисков и сами диски. Синтаксис команды такой:
$ sudo mdadm —create /dev/имя_массива —level= режим_работы —raid-devices= количество_устройств список устройств
sudo mdadm —create /dev/md0 —level=0 —raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
После выполнения этой команды вы увидите раздел raid в lsblk. С этим разделом можно работать как с любым обычным разделом в вашей системе.
Шаг 4. Тестирование RAID 0
Давайте для примера отформатируем полученный раздел в файловую систему Ext4, смонтируем и попробуем записывать туда файлы:
sudo mkfs -t ext4 /dev/md0
sudo mount /dev/md0 /mnt
Затем можно тестировать скорость с помощью dd:
sudo dd if=/dev/zero of=/mnt/file bs=1G count=5
Как видите, при записи 5 Гб данных мы получаем скорость 400 Мб/сек, это уже на уровне обычного SSD.
Шаг 5. Информация о RAID
Найти информацию обо всех созданных в системе RAID массивах вы можете в файле /proc/mdstat:
Именно так можно посмотреть RAID Linux. Посмотреть более детальную информацию о массиве /dev/md0 можно с помощью самой утилиты mdadm:
sudo mdadm —detail /dev/md0
Здесь в том числе отображается состояние RAID Linux. Посмотреть детальную информацию о каждом устройстве, которое входит в RAID можно с помощью опции —examine:
sudo mdadm —examine /dev/sda1 /dev/sdb1 /dev/sdc1
Шаг 6. Сохранение RAID массива
В принципе, уже сейчас RAID массив работает и продолжит работать после перезагрузки, потому что mdadm просканирует все диски, найдёт метаданные массива и построит его. Но неизвестно какое имя программа присвоит полученному массиву и неизвестно все ли параметры будут восстановлены верно. Поэтому конфигурацию массива лучше сохранить. Для этого используйте такую команду:
sudo mdadm —detail —scan —verbose | sudo tee -a /etc/mdadm/mdadm.conf
Затем нужно пересоздать initramfs с поддержкой этого массива:
sudo update-initramfs -u
С полученным массивом можно обращаться как с обычным разделом диска. Например, для того чтобы автоматически монтировать его в систему добавьте такую строчку в /etc/fstab:
sudo vi /etc/fstab
/dev/md0 /mnt/ ext4 defaults 0 0
На этом создание raid массива linux завершено.
Шаг 7. Переименование RAID массива
Если вы не выполните предыдущий пункт и перезагрузите компьютер, то можете получить RAID массив с именем md127 вместо md0, такое имя также может быть присвоено второму RAID массиву. Для того чтобы переименовать массив, его придется пересобрать. Для этого сначала остановите существующий массив:
sudo mdadm —stop /dev/md127
Затем выполните команду переименования. Синтаксис у неё такой:
$ sudo mdadm —assemble —update= name —name =номер /dev/md_номер список устройств
sudo mdadm —assemble —update=name —name=0 /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1
После этого следует повторить предыдущий шаг для уже правильного сохранения RAID устройства.
Шаг 8. Удаление RAID массива
Если вы не хотите чтобы ваши диски и дальше были объединены в RAID, его можно удалить. Для этого выполните такую команду:
sudo mdadm —remove /dev/md0
Она удалит все метаданные с дисков /dev/md0. Дальше останется только удалить или закомментировать секцию данного RAID массива в /etc/mdadm/mdadm.conf
sudo vi /etc/mdadm/mdadm.conf
Шаг 10. Создание массива RAID 1
Теперь вы знаете как создать raid linux на примере RAID 0. Давайте ещё разберемся с RAID 1. Для создания RAID 1 используется такая же команда как и для RAID 0, но указывается другой уровень работы массива:
sudo mdadm —create /dev/md0 —level=1 —raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
Затем вы можете убедится что RAID создан посмотрев информацию о нём:
sudo mdadm —detail /dev/md0
Ну и с помощью lsblk можно оценить размер устройства:
Как и ожидалось, размер не увеличился, поскольку копии данных будут записываться на все три диска. Теперь давайте посмотрим на скорость:
Скорость записи данных такая же как и у одного диска. Это цена сохранности данных. Если вы отключите один из дисков, то все данные всё равно будут вам доступны.
Выводы
В этой статье мы рассмотрели как создать программный RAID в Linux. Как видите здесь нет ничего очень сложного. Может и программный RAID не такой производительный, как аппаратный, зато полностью решает задачи объединения дисков.
Источник