Пример для raid10, raid1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
!!! Без резервной копии дальше ни нагой. !!! spateЗапасной диск с автоматической подменой неисправного диска 0. cat /proc/mdadm - смотрим что у нас там за raid и какой диск вылетел 1. smartctl -a /dev/sda - отобразить подробную информацию об устройстве /dev/sda (пригодится при поиски диска) 2. fdisk -l - показать все диски и разметку (пригодится при поиски диска) 3. Перед добавлением диск нужно подготовить Таблица разделов: !!! sgdisk - копирует таблицу разделов sgdisk /dev/sdx -R /dev/sdz - копировать таблицу разделов с /dev/sdx на /dev/sdz Загрузчик: !!! пред этим определись что у тебя за диск GPT или MBR !!! dd if=что of=куда !!! dd if=/dev/hda of=/temp/backu_bmr.img bs=512 count=1 - создание копии MBR ( Master Boot Record ) с /dev/hda в файл /temp/backu_bmr.img !!! dd if=/temp/backu_bmr.img of=/dev/hda bs=512 count=1 - восстановить MBR из файла /temp/backu_bmr.img на диск /dev/hda !!! dd if=/dev/sdx1 of=/dev/sdz1 - копируем 512M раздел /dev/sdx1 в раздел /dev/sdz1 (в данном примере в этом разделе uefi) grub-install /dev/zdz - можно установить вот так grub загрузчик 4. Добавление диска или раздела как spare !!! Правильнее будет всё-таки добавлять раздел !!! Рекомендуется создавать таблицу разделов на диске и добавлять раздел !!! Работать будет и без таблицы разделов, но вот при сбои raid будет сложно починить !!! В таблице разделов находится информация о массиве mdadm --manage /dev/md22 --add-spare /dev/sdj - добавляем диск /dev/sdj как запасной (spare) в массив /dev/md22 mdadm --manage /dev/md22 --add-spare /dev/sdv2 - добавляем диск /dev/sdv2 как запасной (spare) в массив /dev/md22 |
RAID развалился что делать?:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
!!!Выполнять нужно с чистой головой, чтобы не затереть вообще все данные!!! С первой проблемой с которой вы возможно можете столкнутся это система не загружается и вы проваливаетесь initramfs 0. Смотрим что там у нас с массивом cat /proc/mdstat mdadm --detail /dev/md0 mdadm -E /dev/sd[abcd]2 1. Предположим мы знаем какой у нас raid, допустим raid10 и в mdadm диск sdb вылетел -1- Помечаем раздел как сбойный: mdadm --manage /dev/md0 --fail /dev/sdb1 -2- Отключаем раздел (удаляем из RAID1): mdadm --manage /dev/md0 --remove /dev/sdb1 -3- Выключаем сервер и вставляем новый диск -4- Производим различные проверки что бы убедится кокой диск новый fdisk -l smartctl -a /dev/sdz -5- Копируем таблицу разделов sgdisk /dev/sdx -R /dev/sdz -6- Если требуется копируем загрузчик с помощью dd -7- 2. Развалилось все нафиг !!! Без архивных копий сюда ни нагой !!! Предположим мы знаем какой у нас raid, допустим raid10 и в mdadm нету дисков или один торчит Диски у нас разбиты следующим образом: GPT разметка, sd?1 - загрузчик UEFI, sd?2 - массив RAID10 -0- Можем попробовать собрать raid 10 снова mdadm --stop - останавливаем raid mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2 -1- Проверяем что там у нас с массивом mdadm --examine /dev/sd[a-d]1 mdadm --detail /dev/md0 cat /proc/mdadm Возможно понадобится выполнить fsck Как закончит ребилд пробуем загрузится CTRL+D (напоминаю мы все еще initramfs) -2- Если все загрузилось ставим первым делом загрузчик grub-install /dev/vda grub-install /dev/vdb grub-install /dev/vdc grub-install /dev/vdd -3- Если перезагрузились и торчим в rescue grub !!! https://www.supergrubdisk.org/ - можно воспользоваться этим диском загрузится в систему и далее установить загрузчик grub-install /dev/vdX ls - показать все диски set prefix=(md/0,gpt1)/boot/grub set root=(md/0,gpt1) ls /boot/grub - убедились что есть загрузочные файлы insmod ext2 - загрузили модуль ext2 insmod normal - загрузили модуль normal normal - загружаемся в систему Ставим загрузчик: grub-install /dev/vda grub-install /dev/vdb grub-install /dev/vdc grub-install /dev/vdd |
Замена диска, подключение диска, удаление диска, добавление запасной диск:
1 2 3 4 |
mdadm --manage --fail /dev/md100 /dev/sdb3 - в массиве /dev/md100 пометить диск /dev/sdb3 как сбойный mdadm --remove /dev/md100 /dev/sdb3 - из массива /dev/md100 убрать диск /dev/sdb3 mdadm --add /dev/md0 /dev/sdf1 - добавить новый диск /dev/sdf1 в массив /dev/md0 mdadm --manage /dev/md22 --add-spare /dev/sdv2 - добавляем диск /dev/sdv2 как запасной (spare) в массив /dev/md22 |
Сборка существующего массива:
1 2 3 4 |
Собрать существующий массив можно с помощью mdadm --assemble. Как дополнительный аргумент указывается, нужно ли выполнять сканирование устройств, и если нет, то какие устройства нужно собирать. mdadm --assemble /dev/md0 /dev/hde1 /dev/hdf2 /dev/hdg1 mdadm --assemble --scan |
Таблицы разделвов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Создание таблицы разделов: fdisk /dev/vdX - создание таблицы разделов MBR gsisk /dev/vdX - создание таблицы разделов MBR/GPT Копирование таблицы разделов: !!! fdisk не умеет работать с GPT sfdisk -d /dev/sda | sfdisk /dev/sdb - копирование таблицы разделов (MBR) sgdisk /dev/sdx -R /dev/sdz - копирование таблицы разделов (MBR or GPT) Копирование таблицы разделов sfdisk: sfdisk -d /dev/sda > part_table - сохранить sfdisk /dev/sda < part_table - восстановить Копирование таблицы разделов с помощью dd: dd if=/dev/sda of=partitiontable.bin bs=1 skip=446 count=64 # backup dd if=partitiontable.bin of=/dev/sda bs=1 seek=446 count=64 # restore |
Установка загрузчика:
1 |
grub-install /dev/vdX - установка загрузчика |
оффтоп
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
Типы разделов: 8300 - linux file system FD00 - linux raid Создание массивов: mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/vd[a-d]1 - создание массива raid10 mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/vd[xz]1 - создание массива raid1 Проверка состояния массивов: cat /proc/mdstat - проверка состояния массива mdadm --examine /dev/sdf mdadm --examine /dev/sdf1 mdadm --detail /dev/md0 Сохранение настроек mdadm: mdadm --detail --scan --verbose >> /etc/mdadm.conf - копирование конфигурации Создание файловой системы ext4: mkfs.ext4 /dev/md100 - создание файловой системы Монтирование дисков: lsblk - показать UUID диска /etc/fstab - файл авто монтирования дисков при загрузке maunt -a - перечитать файл /etc/fstab и примонтировать устройства Пометка диска как сбойного: mdadm /dev/md0 --fail /dev/hde1 mdadm /dev/md0 -f /dev/hde1 Удаление сбойного диска: mdadm /dev/md100 --remove /dev/hde1 mdadm /dev/md100 -r /dev/hde1 Добавление нового диска: mdadm /dev/md0 --add /dev/hde1 mdadm /dev/md0 -a /dev/hde1 |
Ссылки:
1 2 |
http://xgu.ru/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D1%8B%D0%B9_RAID_%D0%B2_Linux https://valynkin.ru/shpargalka-po-mdraid.html |