Архивы: Raid

md0 после сбоя не стартует

Запись будет дополнятся, но пока ключевое для себя вынесу в такой сумбур.

Уже 2 раза было, проблемы с питанием, рушится рейд, точнее выходит покурить один из дисков, тесты по диску проходят отлично но, диск назад не идёт в рейд под различными предлогами.
в статусе написано
State : active, degraded, Not Started
при добавлении диска в сислоге отражается вот это
md0: ADD_NEW_DISK not supported
по пол дня убивал на воскрешение, и решил записать примерную последовательность.

помогает удалить этот диск из рейда, и заного собрать массив с -f флагом
пробуем собрать массив
mdadm --assemble --scan
смотрим что там и как
mdadm --detail /dev/md0
раз не пошло, тормозим его
mdadm --stop /dev/md0
и пробуем ещё раз
mdadm --assemble --force /dev/md0
смотрим что буквы U_UUUU появились
cat /proc/mdstat
если по началу было так
Personalities : [raid6] [raid5] [raid4]
md0 : inactive sdf1[9] sdg1[2] sdh1[3] sdc1[5] sdd1[4] sda1[8] sdb1[7] sde1[0]
12697839538 blocks super 1.2

то стало так
# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sde1[0] sdb1[7] sda1[8] sdd1[4] sdc1[5] sdh1[3] sdg1[2] sdf1[9]
10255949312 blocks super 1.2 level 5, 512k chunk, algorithm 2 [8/7] [U_UUUUUU]
[>....................] recovery = 1.5% (22352004/1465135616) finish=1610.7min speed=14928K/sec

unused devices:

mdadm заменить диск, изменить размер массива (программный рейд)

ВАЖНО перед любыми операциями на хранилище убедитесь что бэкапы актуальны и исправны.

Сначала смотрим состояние массива, важно чтоб не шла синхронизация либо пересборка..
(я сделал ошибку, диск сбойнул и электричество выключили, я поменял физически диск и потом пытался собрать массив, что стоило мне немного нервов, надо было дождаться восстановления массива(а диск что вылетел пометить как сбойный), а уже потом идти менять диск.)

cat /proc/mdstat

вот например

# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sdc1[8] sde1[7] sdg1[5] sdf1[2] sdd1[6]
5860147200 blocks super 1.2 level 6, 512k chunk, algorithm 2 [5/5] [UUUUU]
[=================>...] resync = 88.6% (1732051884/1953382400) finish=38.6min speed=95562K/sec

unused devices:

если такого нет, то помечаем диск сбойным

mdadm --manage /dev/md0 --fail /dev/sda1

затем удаляем его из массива
mdadm --manage /dev/md0 --remove /dev/sda1

выключаем сервер, меняем диск, новый диск перед добавлением в массив надо подготовить
а именно, копируем на него таблицу разделов с уже имеющего в рейде диска
sfdisk -d /dev/sdb | sfdisk /dev/sda

И добавляем заменённый диск в массив
mdadm --manage /dev/md0 --add /dev/sda1

после чего автоматически начнётся пересборка массива.

Расширение массива
Так получилось, что у меня массив состоял из дисков по 1.5ТБ но потом их перестали выпускать, и я менял диски на 2ТБ, но они не использовались по полной…
в итоге остался один диск на 1.5ТБ, решено его заменить на 2ТБ и расширить массив.

также перед началом смотрим что массив наш исправен, если всё ок то начинаем
mdadm --grow /dev/md0 --size=max
Автоматически начинается пересборка массива, у меня началась с 75%

вот что было до команды
# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Mon Mar 11 11:32:41 2013
Raid Level : raid6
Array Size : 4395018240 (4191.42 GiB 4500.50 GB)
Used Dev Size : 1465006080 (1397.14 GiB 1500.17 GB)
Raid Devices : 5
Total Devices : 5

вот что стало после
# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Mon Mar 11 11:32:41 2013
Raid Level : raid6
Array Size : 5860147200 (5588.67 GiB 6000.79 GB)
Used Dev Size : 1953382400 (1862.89 GiB 2000.26 GB)
Raid Devices : 5
Total Devices : 5

После синхронизации дисков, нужно расширить Файловую систему
предварительно выполнив проверку текущей, но
перед проверкой надо отмонтировать фс
umount /dev/md0
и проверяем
e2fsck -f /dev/md0

если всё ок, то расширяем ФС
resize2fs /dev/md0

Следить за процессом пересборки массива удобно вот такой командой
watch cat /proc/mdstat

fsck.ext4: Memory allocation failed while retrying to read bitmaps for /dev/md0 e2fsck: aborted

Вот такой заголовок текст мне кинул мой NAS на debian выполняющий роль Бэкап хранилища…

[cc lang=”bash”]fsck.ext4: Memory allocation failed while retrying to read bitmaps for /dev/md0 e2fsck: aborted[/cc]

При этом отказывался грузиться, потерю бэкап сервера я заметил не сразу, может недельку без него прожил.. а не дай бог в это время что-то случилось?

так вот гугл толком ничгео не сказал, но если прочитать сообщение стало понятно, что он не смог вгрузить битовую карту 4Тб хранилища из-за мелкого размера оперативки(500) и swap(100!!!)
Хотя разметку диска дебиан делал автоматически.
так вот ладно грузимся дальше начинаем понимать, вижу что кончается опера и ивсё виснет htop не успевает показать что swap тоже кончается, пробую увеличить swap

создаю файл на 1Гб
[cc lang=”bash”]dd if=/dev/zero of=/swapfile ibs=10485760 count=100[/cc]
создаю файловую систему
[cc lang=”bash”]mkswap /swapfile[/cc]
подключаю новый файл как файл подкачки
[cc lang=”bash”]swapon /swapfile[/cc]
вот так смотрю что у меня с подкачкой?
[cc lang=”bash”]# swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 92152 37880 -1
/swapfile file 981296 144 -2
[/cc]

ну и всё запускаю заново проверку FS и она продолжается успешно…

Есть админы, которые…

Много много букавак….

Все мы знаем, что есть админы, которые не делают бэкапы, и кто уже делает бэкапы…

Я вот непонятно кто, есть у меня сервер со злым рейдом на 4 порта, исторически сложилось, что на нём 2 зеркальных массива.
2х500 и 2х1500гб

И посетило меня чудо-юдо..
один винт из зеркального рейда пошёл в мир иной, точнее как пошёл, из одной папки пропала вся инфа, я подумал, что юзеры удалили попытался туда вернуть файлы из бэкапа, но убунта мне сказала что они уже там лежат.

Читать далее »