LINUX.ORG.RU
ФорумAdmin

Не грузится centos при извлечении одного из дисков, составляющих RAID

 , ,


0

1

Здравствуйте.

Установил centos 7 minimal, рут на RAID1 двух разделов (sda2 и sdb2), своп на RAID0 на разделах sda1 и sdb1). Не LMV, т.е. стандартные разделы.

Для проверки работоспособности отключаю один из винчестеров - система падает в Dracut emergency shell. При этом выводится

Warning: /dev/disk/by-id/md-uuid-b16e3b4a:782fba52:e99c56f9:5442aa74 does not exist

Вывод на рабочей системе (подключил оба винчестера):

cat /proc/mdstat
cat /etc/mdadm.conf
cat /etc/fstab
mdadm --examine --scan
[root@sweethome ~]# cat /proc/mdstat
Personalities : [raid0] [raid1]
md126 : active raid1 sdb2[1]
      16776192 blocks super 1.2 [2/1] [_U]
      bitmap: 1/1 pages [4KB], 65536KB chunk

md127 : active raid0 sdb1[1] sda1[0]
      8349696 blocks super 1.2 512k chunks

unused devices: <none>
[root@sweethome ~]# cat /etc/mdadm.conf
# mdadm.conf written out by anaconda
MAILADDR root
AUTO +imsm +1.x -all
ARRAY /dev/md/centos_root level=raid1 num-devices=2 UUID=75a75d6c:05a9d3c8:aae59c64:4435121d
ARRAY /dev/md/swap level=raid0 num-devices=2 UUID=b16e3b4a:782fba52:e99c56f9:5442aa74
[root@sweethome ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Wed Sep 18 12:04:46 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=46daf16c-e8a7-46ad-9da6-49e091402dd7 /                       ext4    defaults        1 1
UUID=31e1b2e1-3761-4940-a7b4-d57500b65b27 swap                    swap    defaults        0 0
[root@sweethome ~]# mdadm --examine --scan
ARRAY /dev/md/swap  metadata=1.2 UUID=b16e3b4a:782fba52:e99c56f9:5442aa74 name=sweethome:swap
ARRAY /dev/md/centos_root  metadata=1.2 UUID=75a75d6c:05a9d3c8:aae59c64:4435121d name=sweethome:centos_root
[root@sweethome ~]#
Не могу понять, при загрузке не видно рейда который используется под своп, поэтому система не грузится? Создание рейдов делал прямо в GUI установщика, ожидал что всё заведётся, но то ли лыжи не едут то ли...


Все работает так, как и должно. В чем вопрос?

anonymous
()
Ответ на: комментарий от infomeh

Большое спасибо

Понятно, а то я уж думал что что-то неправильно настроено. Всем большое спасибо!

kt368
() автор топика
Ответ на: комментарий от infomeh

Не тот случай. У него только своп отваливается.

anonymous
()
Ответ на: Большое спасибо от kt368

Не внимательно прочитал твое сообщение, в случае raid0 поведение абсолютно правильное.

Ты настроил систему, чтобы при запуске собирался raid1 и raid0, raid1 без одного из дисков может работать, но будет деградированным, raid0 не может работать без всех своих составляющих.

Так что без одного из дисков в случае raid0 у тебя система запускаться не будет и это правильно.

infomeh ★★
()
Ответ на: комментарий от anc

Зачем загонять swap в raid0 ?

Тут более интересен другой вопрос: зачем разные рейды на одних и тех же дисках?

anonymous
()
Ответ на: комментарий от anonymous

Тут более интересен другой вопрос: зачем разные рейды на одних и тех же дисках?

Это как раз может быть обоснованно. Ненужные данные(которые не страшно потерять) в raid0, нужные в raid1.
И второй момент, который более интересен. Из-за того что мы не смогли смонтировать swap раздел выпадаем. Честно таких тестов никогда не проводил. Но вроде как если их делать раздельно никаких проблем, ну «не смогла и не смогла» работать то будем.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

Насколько я знаю там такое поведение с момента внедрения systemd, который генерит /etc/fstab с failure-опциями, то есть, чтобы при ошибках монтирования система выпадала в emergency как минимум.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от anc

Это как раз может быть обоснованно. Ненужные данные(которые не страшно потерять) в raid0, нужные в raid1.

Рейд - это массив независимых дисков.

Разместив разные рейды на одних тех же дисках мы нарушили само определение рейда про независимость дисков.

После появляются такие темы с вопросами: почему ни с того ни ссего рейд развалился?

anonymous
()
Ответ на: комментарий от anonymous

ЯННП при чем тут «независимость дисков» ? Диски разные. А разделы собраны в разный тип рэйда.

anc ★★★★★
()
Ответ на: комментарий от anc

Да, ты ставишь систему на зеркало и всё прекрасно, но при отвале диска система падает потому что своп валится.

targitaj ★★★★★
()
Ответ на: комментарий от anc

Чтобы всё упало при отвале диска, зачем же еще.

targitaj ★★★★★
()
Ответ на: комментарий от anc

**Диски** разные. А **разделы** собраны в разный тип рэйда.

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

Потом задаются такие вопросы: я тут сделал рейды на **разделах**, удалил **диск** и все пропало.

Сперва определись - диски или разделы.

anonymous
()
Ответ на: комментарий от anonymous

У меня есть два винчестера, и желание на их основе и небольшого системника сделать домашний сервер (для всякого-разного - типа сетевого диска, торрентокачалки, seafile, vpn сервера и т.п.).

В начале каждого винчестера выделил по 4 ГБ разделы, которые объединил в RAID0 и его использую для свопа. Своп на нулевом рейде размещён для повышения быстродействия. Далее на дисках выделено по 16 ГБ, которые объединены в RAID1, куда и ставится сама система. Если побьются те сектора, которые выделены под рейд0, то мне это не страшно т.к. там только своп. Если сектора, соответствующие разделам рейда 1 - то на то он и рейд, данные-то на втором винчестере останутся.

Вы бы посоветовали по-другому поднимать сервер на этих винчестерах?

kt368
() автор топика
Ответ на: комментарий от kt368

Я бы посоветовал не маяться ерундой, а сделать по своп-разделу на каждом из дисков, раз на то пошло, с одинаковым приоритетом. Ядро само соберет из них JBOD.

Deleted
()
Ответ на: комментарий от kt368

Своп на нулевом рейде размещён для повышения быстродействия

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

Если побьются те сектора

Рейд не защищает от битых секторов. Рейд защищает от отказа диска, в твоем случае - раздела. При отказе диска у тебя все накроется медным тазом, и ты об этом знаешь.

Вы бы посоветовали по-другому поднимать сервер на этих винчестерах?

Своп и торренты на разных дисках. Остальное по своему усмотрению. Рейд тебе не нужен. Настрой регулярный бекап важных данных.

anonymous
()
Ответ на: комментарий от anonymous

И защитился ты от чего, сделав рейд на разделах - от отказа диска или от отказа раздела?

Вы внимательно прочитали то что я написал? «Ненужные данные(которые не страшно потерять) в raid0, нужные в raid1»
Ну вылетел диск, пролюбил данные с raid0, те которые были на raid1 останутся.

anc ★★★★★
()
Ответ на: комментарий от anc

Ну вылетел диск, пролюбил данные с raid0, те которые были на raid1 останутся.

... данные на рейд1 остануться в неконсистентном состоянии, потому что система упала, так как зависит от свопа, который на рейд0, у которого вылетел раздел, который на вылетевшем диске. «Все вязано-перевязанно».

anonymous
()
Ответ на: комментарий от anc

Я разве где-то что-то написал про swap ?

Какая разница на каком из дисков своп. Если вылетел диск, на котором своп, то прощай система... (дальше сам продолжишь как там все вязано-перевязано).

anonymous
()
Ответ на: комментарий от anonymous

Если вылетел диск, на котором своп

Почему? Все зависит от конкретной ситуации.

Если в компе два диска, корень на одном диске, а своп - на другом, ничего с системой не будет, если отвалится диск со своп. Просто своп работать не будет.

infomeh ★★
()
Ответ на: комментарий от anonymous

Ну во-первых не прощай система, сама система-то рухнуть не должна. А вот нюансы с отдельными сервисами могут быть, а и могут не быть, все зависит от конкретной ситуации.

anc ★★★★★
()
Ответ на: комментарий от anc

могут быть, а и могут не быть

Это называется неконсистентное состяние. Если удовлетворяет такое состояние, то зачем нужен рейд?

anonymous
()
Ответ на: комментарий от anonymous

Давайте рассмотрим по другому. Сбой планки памяти может к такому привести? Может. Теперь вернемся к swap, активную память вытеснять в него не будут, тот момент что теоретически какая-то приложуха при чтении данных которые находятся в swap и сбое при чтении может не так себя повести себя при записи других данных на диск конечно возможен. Это как раз в варианту «могут быть». Только вот это уже к багам самой приложухи. Или вариант когда память совсем закончилась от слова совсем, но тут уж и без сбоя диска становиться работать крайне тоскливо.

anc ★★★★★
()
Ответ на: комментарий от anc

Давайте рассмотрим по другому. Сбой планки памяти может к такому привести?

Причем тут планка памяти? От всех угроз не защитишься.

У нас конкретный случай - отказ диска, который озвучен в начале темы. (Допустим, биты в памяти не портятся, процессор правильно вычисляет логические операции и тп).

При этом, в вырожденном случае, система не стартовала, хотя защищаемые данные не испорчены.

Осталось рассмотреть *реальный случай* - система работает и неожиданно отказал диск, от отказа которго мы как бы защитились рейдом. Что случилось с защищаемыми данными? Помог ли рейд?

anonymous
()
Ответ на: комментарий от anonymous

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

Вы про описанную выше Не грузится centos при извлечении одного из дисков, составляющих RAID (комментарий) кастомную проблему systemd?

anc ★★★★★
()
Ответ на: комментарий от anc

Рассказывай давай про рабочий для рейда случай - отказ диска во время работы.

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

Рейд - это про безостановочную работу. Рейд не про старт и остановку системы.

И да, поведение системд правильное (если оно такое) - нефиг стартовать систему в консистентном состоянии.

anonymous
()
Ответ на: комментарий от anonymous

нефиг стартовать систему в консистентном состоянии.

нефиг стартовать систему в неконсистентном состоянии.

anonymous
()
Ответ на: комментарий от anonymous

Рейд - это про безостановочную работу.

Да ну? А мужики-то не знали. Вылет из raid0 это остановка или нет? Raid5, raid6 вылеты соответствующего кол-ва 2-3, raid 10 вылет половины... продолжать? Что считать «безостановочной»?

И да, поведение системд правильное (если оно такое) - нефиг стартовать систему в консистентном состоянии.

Неправильное. Если мы не можем подмонтировать то что не особо нужно, это не значит что система не должна стартовать.

нефиг стартовать систему в консистентном состоянии.

Угу, угу. нефиг стартовать особенно когда нет квм/ilo/etc и рук под боком, ну конечно нам не надо стартовать...

anc ★★★★★
()
Ответ на: комментарий от anonymous

PS Давайте рассмотрим типичную СХД. Она должна стартовать? Вроде как да. А что там с рэйдами куда там улетел 12-ти дисковый шестой «юг его знает», и разбираться вам админам. Но СХД стартует. Так надеюсь понятнее ?

anc ★★★★★
()
Ответ на: комментарий от anc

куда там улетел 12-ти дисковый шестой «юг его знает», и разбираться вам админам. Но СХД стартует.

Это так работает, если настроены резервы. Если хочешь стартовать и в деградированном режиме, то тоже надо перенастроить.

boowai ★★★★
()
Ответ на: комментарий от boowai

Стартует не на этом шестом. «Мухи отдельно котлеты отдельно». Сама система должна стартовать в не зависимости от того сколько у меня тут «шестерок» «пятерок» «нулёвок» «десяток» «и так далее» под боком.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

Вылет из raid0 это остановка или нет?

Рейд0 - это не рейд. Потому что там нет основного - «избыточности».

Raid5, raid6 вылеты соответствующего кол-ва 2-3, raid 10 вылет половины... продолжать? Что считать «безостановочной»?

Что за детсадовские примеры: я сломал рейд, поэтому он остановился? У тебя рейд остановился вследствие того, что рейд перестал существовать как система. Что ты хотел сказать?

это не значит что система не должна стартовать.

Она и не стартует как «система».

Какой-то совсем бесполезный спор, в котором я участвовать не хочу.

anonymous
()
Ответ на: комментарий от anonymous

Надо запихнуть поддержку raid в systemd для составления карты. Тогда он сразу «поймет», что внутри raid0 только бесполезный SWAP и продолжит загрузку. Логика такая.

Сейчас же система не знает, что и где находится, пока не активирует все перед монтированием, поэтому и пытается активировать все и паникует. И не знает что важно, а что нет, пока не объяснишь. Нужно делать raid в разделах GPT, и зарезервировать под них guid типа «важный raid», «некритичный raid». Тогда можно без конфигурации обойтись, systemd разберется, как уже пытается делать с обычными разделами.

А если серьезно - для таких финтов нужно править настройки, или даже init(rd), а не надеяться, что мейнтейнеры учли даже такие хотелки и можно сделать через устаноащик. И раз беспокоит отсутствие доступа, то прокачать emergency shell автозапуском sshd.

boowai ★★★★
()
Ответ на: комментарий от boowai

Надо запихнуть поддержку raid в systemd

Ты либо троллишь, либо такой же как 5-звездочный.

Рейд - это не про запуск-остановку систем. Для организации работы «падучих систем» есть другие системы, и это не рейд и не системд.

anonymous
()

Это классическая особенность Linux — отвал всего RAID при неисправности одного из его элементов (носителей). Разбирайтесь в «ручном режиме» с проблемой.

iZEN ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.