Mdadm device or resource busy linux
Есть программный Raid, в нем один диск (второй еще не успел добавить)
При удалении диска из массива пишет сообщение: mdadm: Device or resource busy
Мои действия:
>> mdadm /dev/md0 -f /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0
>> mdadm /dev/md0 -r /dev/sdb1
mdadm: hot remove failed for /dev/sdb1: Device or resource busy
Буду благодарен за любую подсказку.
Оглавление |
|
Сообщения по теме | [Сортировка по времени | RSS] |
1. «mdadm: Device or resource busy» | |
Сообщение от Serge | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
2. «mdadm: Device or resource busy» | |
Сообщение от s_dog | |
pvs, vgs, lvs если используете LVM | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
4 . «mdadm: Device or resource busy» | |
Сообщение от cookie | |
Установленными RAID разделами нельзя управлять! | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
3 . «mdadm: Device or resource busy» | |
Сообщение от cookie | |
А это тут причем? | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
5 . «mdadm: Device or resource busy» | |
Сообщение от cookie | |
Может как-то можно разрушить raid без удаления mdadm? | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
6 . «mdadm: Device or resource busy» | |
Сообщение от s_dog | |
Как это? | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
7 . «mdadm: Device or resource busy» | |
Сообщение от cookie | |
Цель такая: т.е. если RAID раздел содержит всего один диск, его от туда удалить нельзя. p.s. Если сделать stop для /dev/md2 то после перезагрузки он опять стартует. | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
8 . «mdadm: Device or resource busy» | |
Сообщение от s_dog | |
Суперблоки MD теперь прописаны на /dev/sda2, /dev/sdb2. | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
9 . «mdadm: Device or resource busy» | |
Сообщение от cookie | |
fdisk видит /dev/sda2, /dev/sdb2 как >Т.е. они уже не fd ( Linux auto Raid) Если остановить md2 и засунуть /dev/sda2, /dev/sdb2 в SWAP то после перезагрузки один из дисков всеравно будет в md2 | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
10 . «mdadm: Device or resource busy» | |
Сообщение от s_dog | |
Linux auto Raid) mdadm -S /dev/md2 | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
11 . «mdadm: Device or resource busy» | |
Сообщение от cookie | |
Linux auto Raid) Все сработало, два диска подключились в SWAP. md2 скрылся. Источник mdadm: Cannot open /dev/sda1: Device or resource busyThe ProblemWhen trying to re-add a device to a raid, you get the following message: Whereas the mdstat command indicates that the device is inactive. mdadm fail to create software raid device with Device or resource busy error message. The solutionPre-checksBefore we proceed, make sure that if partitions were part of any active FS. The cause of issueThe cause of this issue can be that the device-mapper-multipath ( or other device-mapper modules ) has control over this device, therefore mdadm cannot access it. The command “dmsetup table” will show that this devices is controlled by the device-mapper ( see “man dmsetup” for more detailed information ) WorkaroundAs a workaround you can remove the device from the device-mapper table with the below command. Permanent solutionAs a solution you can either start your server without certain device-mapper modules, for example dmraid you can add “nodmraid” to the kernel command line in /etc/grub.conf as shown below. or if device-mapper-multipath has control over this device you can add it to the blacklist section in /etc/multipath.conf Reload the multipathd for changes to take effect: Make sure multipath does not create maps for these devices in ‘multipath -ll’. The device-mapper should not take control at boot time. VerifyOnce you have performed the steps mentioned above, you should be ableto create the software RAID. To verify: Источник Добавил в распавшийся soft RAID1 sda1 вместо sda. Как исправить?Есть RAID1, состоящий из /dev/sda и /dev/sdb. Однажды после аварийного выключения он распался, о чём я узнал из «Дисковой утилиты» (скрин). В ней же я попытался добавить «выпавший» диск, но вместо /dev/sda по недосмотру добавил /dev/sda1. Теперь при попытке удалить этот раздел получаю Device or resource busy: Вот так сейчас выглядит рейд: Вопрос: как теперь удалить из рейда раздел sda1 и добавить диск sda? Причём крайне желательно сделать это без остановки машины, т.к. проблема осложнена удалённым расположением сервера.
Ну чего все нормально, НГ корпоратив прошел как надо. 🙂 man mdadm до конца Откуда у тебя на sda вообще взялась таблица разделов, если раньше там был рейд на весь диск? Ты там диски не перепутал? Livecd -> dd if=/dev/zero of=/dev/sda Идиот, sda1 это тот диск, который остался в живых. sdb — spare (запасной)
Сам не в курсе. RAID создавал с помощью установщика Ubuntu, объединив 2 физических диска, и уже на нём создавал таблицу разделов. Причём ситуация с распавшимся рейдом уже была месяц назад (UPS стоит, да, но иногда подводит). Я тогда точно также добавил обратно диск через ту же «Дисковую утилиту» — но тогда я добавил именно sda. Диск синхронизировался около суток, затем всё стало ОК. В этом раз я хотел сделать также, но случайно добавил раздел. Я раньше не создавал RAID-массивы и могу легко напутать в терминологии, но я знаю точно, что после аварийного выключения в списке дисков массива в «Дисковой утилите» был один диск — /dev/sdb в состоянии «Резервный». /dev/sda1 появился там только после того, как я его добавил (скрин). Софт-рейды распадаются иногда при нештатных ребутах, это факт. Главное собери его потом нормально и всё. Разделы сами не появляются, разберись аккуратно, что и как у тебя. Как тебе написал анонимус, судя по /proc/mdstat, sda1 у тебя ща основной, активный, а sdb добавлен как spare, но не юзается. Возможно, потому что места на нём меньше, чем нужно. Что у тебя за «дисковая утилита», я хз. mdadm и /proc/mdstat вполне достаточно для работы. Просто разберись в своих дисках, проверь, что пашет ща, что не пашет и не сломай хрупкое равновесие 🙂 AngryElf, спасибо за подробный ответ. На самом деле, самый главный вопрос для меня звучит так: а могу ли я остановить и перестроить RAID из работающей на нём системы без последствий? Бекап я, конечно, перед этим сделаю, но хотелось бы понимать, какие команды/операции с RAID выполнять безопасно, а какие могу привести с остановке ОС/потере данных. P.S. «Дисковая утилита» — она же Дисковая утилита GNOME, она же Диски — софтина в Убунте, установленная по умолчанию для работы с дисками, в т.ч. с RAID-массивами.
Можешь, но, главное понимать что у тебя живо и не перепутать диски. А клевый у тебя рейд. Быстрый, надежный.
Это сервер такой ?
Так установщик Ubuntu мог сделать при создании массива, но точно не буду утвержать, запамятовал. 2/3 серверов с бубунтой которые я вижу, обычно с гуем, потому что сначала фирмы ищут себе вин админов за копейки, и ахают, а потом уже раскошеливаются. Samba-шара с VirtualBox, т.к. уже после развёртывания RAID и samba в компании появилось win-only ПО, для которого нужен был, соответственно, win-сервер. Не самое лучшее решение, но покупать для этого ещё одну машину тоже бы не стали.
Разборка рейда данные не уничтожает. Вот со сборкой могут быть приколы. Типа, не соберешь старый рейд, а создашь новый и добавишь в него диск с данными — тебя переспросят («диск был в составе другого рейда, ты уверен, что его надо добавить сюда?»), но потом затрут твои данные нулями (рейд же новый). Так что внимательно, вдумчиво прочитай man mdadm. А так, играться, добавлять-убирать диски, останавливать-запускать рейд можно без проблем. И очень советую играться в консольке, с mdadm, а не в графической утилите. Гуевая утилита один хрен mdadm использует, но какие-то вещи может делать коряво и неявно. А, ну да, ты б учился с рейдами работать не на боевом сервере, много нервов бы себе сэкономил 🙂 Создай у себя виртуалку (что б свои диски не упороть) и поиграйся там. В рейд можно добавлять не только физические диски, а любое блочное устройство, хоть файлы на дисках, хоть LVM-разделы. Личный опыт празднования НГ на продакшн сервере? 🙂 У вас сейчас массив работате на одном диске /dev/sda1, поэтому его и нельзя из него убрать. Если вам хочется массив sda + sdb, то вам нужно сначала убрать sdb из массива, потом добавить его, дождаться завершения синхронизации, чтобы ″Active Devices : 2″, потом можно будет убрать из массива sda1 и добавить sda и опять синхронизация. Но, я совсем не уверен, что у вас раньше массив был именно на sda + sdb, ведь в сервере у вас больше дисков нет. И инсталяторы избегают таких конфигураций, потому что некоторые bios обязательно хотят на диске таблицу разделов и метку Active у одного из разделов. Возможно, что на самом деле при добавлении sda ваша гуиювая утилита добавила sda1. Ведь sda1 меньше по размеру, чем sda, а RAID в суперблоке помнит свой размер и просто так меньше не станет. В посмотрите что у вас на sdb (есть ли sdb1 и что говорит ″mdadm —examine″ относительно sdb и sdb1 (если он есть). И, сколько я помню, при вырубании питания диски из массива не исчезали. Массив просто при включении начинал синхронизироваться. А раз у вас sdb непонятно почему в spare, то, может его выкинуло из RAID’а по аппаратным причинам, может нужно посмотреть SMART, потестировать. Ну, и по хорошему, нужно всегда делать резервные копии разметки диска (вывод fdisk, mdadm —detail/—examine, LVM-утилит).
facepalm какой ;( KVM поставить не? Обязательно Vbox ставить с гуями? Хто сказл что vbox у него с гуями? Может ради разнообразия vbox как раз без гуев, вот raid да, raid мы будем из гуев делать. 🙂
ручками надо было, ручками.. Прошу прощения за задержку с ответом. Ждал результатов SMART-тестов, делал бекапы ( 1ТБ). и, внезапно, из массива вывалился /dev/sdb. В итоге массив восстановил точно так, как написал mky: добавил обратно sdb, дождался синхронизации, удалил sda1, добавил sda. За что отдельное спасибо. Проблема в том, что после перезагрузки, даже не аварийной, массив продолжает разваливаться. За 2 дня 2 раза подряд выпал sdb. Сейчас восстановленный после падения массив выглядит вот так (последние 2 раза диск в массив вернул командой mdadm —manage /dev/md0 —add /dev/sdb): А после того, как распался последний раз (сразу после перезагрузки через reboot) — вот так: SMART не идеальный, но вроде и без серьёзных проблем: В общем, сейчас проблема в том, что каждая перезагрузка оканчивается тем, что в массиве остаётся только 1 диск. Да, и ещё после перезагрузки отключается SMART на обоих дисках. Как бы найти причину такого поведения? В догонку:В syslog mdadm пишет про kicking non-fresh sdb1 from array! Быстрое гугление говорит о том, что такое бывает после аварийного выключения. mdadm считает перезагрузку через reboot аварийным выключением? Так sdb1 или sdb? Ты разберись, что у тебя в рейде. Re: В догонку:ты, мягко говоря, утомил уже своей путаницей между sda/sdb и sda1/sdb1. определись уже
Ну это нормально, не знаю точно где SMART должен включатся в вашем дистрибутиве (smartd или стартовые скрипты), но кроме параметров, нужно ещё смотреть логи ошибок и выполнения SMART long self test.
как то не вяжется с этим:
Если нет sdb1 (нет таблицы разделов на sdb), дак как его можно выкинуть из массива? Даже если предполжить, что у вас при презагрузке sda и sdb меняются местами (что нужно проверить перегрузившись несколько раз и каждый раз записывая серийник из вывода smartctl -a /dev/sda), то ″kicking non-fresh″ относится к дискам с md-суперблоком. Если супреблока нет, диск не должно добавлять (и выкидывать) из массива. Похоже вас спасет только: У тебя массив при ребуте и шатдауне не стопится штатно. Из-за этого суперблоки на девайсах-членах отличаются. Это и есть нон-фреш. Видимо последовательность останова неверная. Например массив пытаются остановить до того, как отсортированы все фс и деактивированы все свопы. К тому же он у тебя пытается и sdb1, и sdb к массиву подключить. Видимо из-за того, что и на sdb1, и на sdb есть суперблок массива с одним и тем же UUID. Надо суперблок на sdb1 затереть. mdadm —zero-superblock /dev/sdb1. Только надо sdb сначала принудительно пометить как сбойный, чтобы он из массива вышел. У массива суперблок располагается не в начале девайса-члена, а в конце. Поэтому таблица разделов из нулевого сектора девайса-массива располагается в нулевых секторах девайсов-членов. Поэтому ядро и детектит таблицу разделов на девайсе-члене. После того, как md биндит девайс-член в массив, он запрещает к члену доступ всем, кроме себя. Чтобы доступ к девайсам-активным-членам не шел в обход md.
РешеноВсем большое спасибо, проблему с degraded raid наконец-то решил. Версия о меняющихся местами sda и sdb не подтвердилась. Очистка суперблока на выпадающем диске тоже не помогла. Причина была в разметке второго диска, а именно — в таблице разделов GPT Похоже, это результат использования всё той же «Дисковой утилиты» — пока тестировал действия на виртуалке, понял, такой RAID1 (массив из двух дисков, поделённый на разделы) нельзя создать установщиком 14.04 (после образования массива установщик не позволяет создавать на нём больше 1 раздела), а значит даже рэйд я создавал не им, а этой гномовской утилитой (!), о чём я уже успел забыть. Да, виндоус-вей, самому стыдно. Переходя к сути: проблему решил простым копированием разделов sda на sdb вот так (отсюда): Источник |