Mdadm device or resource busy linux

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

Буду благодарен за любую подсказку.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Оглавление

  • mdadm: Device or resource busy, Serge, 12:55 , 22-Сен-07, (1)
    • mdadm: Device or resource busy, s_dog, 18:58 , 22-Сен-07, (2)
      • mdadm: Device or resource busy, cookie, 08:02 , 24-Сен-07, ( 4 )
    • mdadm: Device or resource busy, cookie, 08:00 , 24-Сен-07, ( 3 )
      • mdadm: Device or resource busy, cookie, 08:05 , 24-Сен-07, ( 5 )
        • mdadm: Device or resource busy, s_dog, 15:37 , 24-Сен-07, ( 6 )
          • mdadm: Device or resource busy, cookie, 05:02 , 25-Сен-07, ( 7 )
            • mdadm: Device or resource busy, s_dog, 09:51 , 25-Сен-07, ( 8 )
              • mdadm: Device or resource busy, cookie, 10:17 , 25-Сен-07, ( 9 )
                • mdadm: Device or resource busy, s_dog, 11:45 , 25-Сен-07, ( 10 )
                  • mdadm: Device or resource busy, cookie, 11:50 , 25-Сен-07, ( 11 )

Сообщения по теме [Сортировка по времени | RSS]

1. «mdadm: Device or resource busy»
Сообщение от Serge (??) on 22-Сен-07, 12:55
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. «mdadm: Device or resource busy»
Сообщение от s_dog (??) on 22-Сен-07, 18:58

pvs, vgs, lvs если используете LVM
mdadm -S /dev/mdX — для остановки устройства

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4 . «mdadm: Device or resource busy»
Сообщение от cookie (??) on 24-Сен-07, 08:02

>>
>>>
>>>Буду благодарен за любую подсказку.
>>
>>cat /proc/mounts
>
>pvs, vgs, lvs если используете LVM
>mdadm -S /dev/mdX — для остановки устройства

Установленными RAID разделами нельзя управлять!
т.е. после mdadm -S /dev/mdX нельзя будет сделать ни mdadm -f ни mdadm -r

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3 . «mdadm: Device or resource busy»
Сообщение от cookie (??) on 24-Сен-07, 08:00

А это тут причем?
/dev/sdb* не монтировался никуда, и соответственно там его нет.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5 . «mdadm: Device or resource busy»
Сообщение от cookie (??) on 24-Сен-07, 08:05

Я так думаю что проблема в том, что в md0,1,2,3 задействовано по одному разделу(устройству).
Т.е. я подключил к md только sdb.
sda пока не трогал.

Может как-то можно разрушить raid без удаления mdadm?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6 . «mdadm: Device or resource busy»
Сообщение от s_dog (??) on 24-Сен-07, 15:37

>Я так думаю что проблема в том, что в md0,1,2,3 задействовано по
>одному разделу(устройству).
>Т.е. я подключил к md только sdb.
>sda пока не трогал.
>
>
>Может как-то можно разрушить raid без удаления mdadm?

Как это?
Какая цель вообще?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7 . «mdadm: Device or resource busy»
Сообщение от cookie (??) on 25-Сен-07, 05:02

>>Я так думаю что проблема в том, что в md0,1,2,3 задействовано по
>>одному разделу(устройству).
>>Т.е. я подключил к md только sdb.
>>sda пока не трогал.
>>
>>
>>Может как-то можно разрушить raid без удаления mdadm?
>
>Как это?
>Какая цель вообще?

Цель такая:
По «случайке» в RAID были загнаны разделы свопа 🙂
т.е /dev/md2 состоял из /dev/sda2, /dev/sdb2
Помечаешь, fail любой из разделов, далее делаешь remove и все удачно удаляется при условии чтов /dev/md2 остается хотябы один раздел.

т.е. если RAID раздел содержит всего один диск, его от туда удалить нельзя.
Вот я и хочу полностью удалить /dev/md2 и все диски из него.

p.s. Если сделать stop для /dev/md2 то после перезагрузки он опять стартует.
В /etc/mdadm/mdadm.conf ничего не прописанно для /dev/md2

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8 . «mdadm: Device or resource busy»
Сообщение от s_dog (??) on 25-Сен-07, 09:51

>[оверквотинг удален]
>при условии чтов /dev/md2 остается хотябы один раздел.
>
>т.е. если RAID раздел содержит всего один диск, его от туда удалить
>нельзя.
>Вот я и хочу полностью удалить /dev/md2 и все диски из него.
>
>
>p.s. Если сделать stop для /dev/md2 то после перезагрузки он опять стартует.
>
>В /etc/mdadm/mdadm.conf ничего не прописанно для /dev/md2

Суперблоки MD теперь прописаны на /dev/sda2, /dev/sdb2.
Останови /dev/md2, сделай mkswap /dev/sda2; mkswap /dev/sdb2, измени тип партиций с fd на 82.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9 . «mdadm: Device or resource busy»
Сообщение от cookie (??) on 25-Сен-07, 10:17

>[оверквотинг удален]
>>Вот я и хочу полностью удалить /dev/md2 и все диски из него.
>>
>>
>>p.s. Если сделать stop для /dev/md2 то после перезагрузки он опять стартует.
>>
>>В /etc/mdadm/mdadm.conf ничего не прописанно для /dev/md2
>
>Суперблоки MD теперь прописаны на /dev/sda2, /dev/sdb2.
>Останови /dev/md2, сделай mkswap /dev/sda2; mkswap /dev/sdb2, измени тип партиций с fd
>на 82.

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 (??) on 25-Сен-07, 11:45

>[оверквотинг удален]
>>
>>Суперблоки MD теперь прописаны на /dev/sda2, /dev/sdb2.
>>Останови /dev/md2, сделай mkswap /dev/sda2; mkswap /dev/sdb2, измени тип партиций с fd
>>на 82.
>
>fdisk видит /dev/sda2, /dev/sdb2 как
>Т.е. они уже не fd (

Linux auto Raid)
>
>Если остановить md2 и засунуть /dev/sda2, /dev/sdb2 в SWAP то после перезагрузки
>один из дисков всеравно будет в md2

mdadm -S /dev/md2
mdadm —zero-superblock /dev/sda2
mdadm —zero-superblock /dev/sdb2

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11 . «mdadm: Device or resource busy»
Сообщение от cookie (??) on 25-Сен-07, 11:50

>[оверквотинг удален]
>>
>>fdisk видит /dev/sda2, /dev/sdb2 как
>>Т.е. они уже не fd (

Linux auto Raid)
>>
>>Если остановить md2 и засунуть /dev/sda2, /dev/sdb2 в SWAP то после перезагрузки
>>один из дисков всеравно будет в md2
>
>mdadm -S /dev/md2
>mdadm —zero-superblock /dev/sda2
>mdadm —zero-superblock /dev/sdb2

Все сработало, два диска подключились в SWAP. md2 скрылся.
Спасибо!

Источник

mdadm: Cannot open /dev/sda1: Device or resource busy

The Problem

When 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 solution

Pre-checks

Before we proceed, make sure that if partitions were part of any active FS.

The cause of issue

The 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 )

Workaround

As a workaround you can remove the device from the device-mapper table with the below command.

Permanent solution

As 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.

Verify

Once 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?

Причём крайне желательно сделать это без остановки машины, т.к. проблема осложнена удалённым расположением сервера.

Однажды после аварийного выключения он распался, о чём я узнал из «Дисковой утилиты» (скрин). В ней же я попытался добавить «выпавший» диск, но вместо /dev/sda по недосмотру добавил /dev/sda1.

Ну чего все нормально, НГ корпоратив прошел как надо. 🙂

man mdadm до конца

Откуда у тебя на sda вообще взялась таблица разделов, если раньше там был рейд на весь диск? Ты там диски не перепутал?

Livecd -> dd if=/dev/zero of=/dev/sda

Идиот, sda1 это тот диск, который остался в живых. sdb — spare (запасной)

Откуда у тебя на sda вообще взялась таблица разделов, если раньше там был рейд на весь диск? Ты там диски не перепутал?

Сам не в курсе. 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-массивами.

На самом деле, самый главный вопрос для меня звучит так: а могу ли я остановить и перестроить RAID из работающей на нём системы без последствий?

Можешь, но, главное понимать что у тебя живо и не перепутать диски.

А клевый у тебя рейд. Быстрый, надежный.

Товарищ, товарищ, болять мои раны, болять мои раны у боке
Одная заживает, другая нарывает, а третья засела в глубоке.

она же Дисковая утилита GNOME, она же Диски — софтина в Убунте,

Это сервер такой ?

Откуда у тебя на sda вообще взялась таблица разделов,

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

2/3 серверов с бубунтой которые я вижу, обычно с гуем, потому что сначала фирмы ищут себе вин админов за копейки, и ахают, а потом уже раскошеливаются.

Samba-шара с VirtualBox, т.к. уже после развёртывания RAID и samba в компании появилось win-only ПО, для которого нужен был, соответственно, win-сервер. Не самое лучшее решение, но покупать для этого ещё одну машину тоже бы не стали.

Бекап я, конечно, перед этим сделаю, но хотелось бы понимать, какие команды/операции с RAID выполнять безопасно, а какие могу привести с остановке ОС/потере данных.

Разборка рейда данные не уничтожает. Вот со сборкой могут быть приколы. Типа, не соберешь старый рейд, а создашь новый и добавишь в него диск с данными — тебя переспросят («диск был в составе другого рейда, ты уверен, что его надо добавить сюда?»), но потом затрут твои данные нулями (рейд же новый). Так что внимательно, вдумчиво прочитай 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-утилит).

Samba-шара с VirtualBox, т.к. уже после развёртывания RAID и samba в компании появилось win-only ПО, для которого нужен был, соответственно, win-сервер.

facepalm какой ;( KVM поставить не? Обязательно Vbox ставить с гуями?

Хто сказл что vbox у него с гуями? Может ради разнообразия vbox как раз без гуев, вот raid да, raid мы будем из гуев делать. 🙂

RAID создавал с помощью установщика Ubuntu, объединив 2 физических диска

ручками надо было, ручками..

Прошу прощения за задержку с ответом. Ждал результатов 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 на обоих дисках.

Ну это нормально, не знаю точно где SMART должен включатся в вашем дистрибутиве (smartd или стартовые скрипты), но кроме параметров, нужно ещё смотреть логи ошибок и выполнения SMART long self test.

mdadm: No md superblock detected on /dev/sda1.

mdadm: cannot open /dev/sdb1: No such file or directory

как то не вяжется с этим:

[ 31.422846] md: kicking non-fresh sdb1 from array!

Если нет sdb1 (нет таблицы разделов на sdb), дак как его можно выкинуть из массива? Даже если предполжить, что у вас при презагрузке sda и sdb меняются местами (что нужно проверить перегрузившись несколько раз и каждый раз записывая серийник из вывода smartctl -a /dev/sda), то ″kicking non-fresh″ относится к дискам с md-суперблоком. Если супреблока нет, диск не должно добавлять (и выкидывать) из массива.

Похоже вас спасет только:
Два новых харда (новых! которые в рейде не были), создать на них рейд, перенести систему и перестать мучать себе голову, а заодно и нам с sdb1-sdb и т.д.
А со старыми хардами: на другом компе подключить один из хардов (только его, других быть не должно!) загрузиться с любого live дистра и выполнить dd if=/dev/zero of=/dev/sda, когда завершиться повторить со вторым хардом.

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

К тому же он у тебя пытается и 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 вот так (отсюда):

Источник

Читайте также:  Как отменить синхронизацию файла onedrive windows 10
Оцените статью