CentOS считает, что диск занят, не может смонтировать или fsck

25

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

История: Наш сервер HP Proliant, Centos 5.9 был отключен вчера без надлежащих процедур отключения. С этого момента раздел / home находился в состоянии, когда мы не можем его fsck, смонтировать или размонтировать. umount указывает, что он не смонтирован, но mount / fsck указывает, что он занят или уже смонтирован. Из-за этого изначально сервер не загружался. В конце концов мы удалили диск / раздел из / etc / fstab, чтобы загрузка не провалилась.

# mount -t ext3 /dev/cciss/c0d0p1 /home
mount: /dev/cciss/c0d0p1 already mounted or /home busy

# fsck /dev/cciss/c0d0p1 
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
fsck.ext3: Device or resource busy while trying to open /dev/cciss/c0d0p1
Filesystem mounted or opened exclusively by another program?

Как видите, диск никак не монтируется.

выходной сигнал:

# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/cciss/c0d1p3    198381228  24920704 163220696  14% /
/dev/cciss/c0d1p2    267818128    191652 253802544   1% /logs
/dev/cciss/c0d1p1       194442     33575    150828  19% /boot
tmpfs                 49495044         0  49495044   0% /dev/shm

смонтировать вывод:

# mount
/dev/cciss/c0d1p3 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/cciss/c0d1p2 on /logs type ext3 (rw)
/dev/cciss/c0d1p1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

/ И т.д. / Fstab

# cat /etc/fstab
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/logs             /logs                   ext3    defaults        1 2
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SW-cciss/c0d1p5   swap                    swap    defaults        0 0

/ И т.д. / mtab

# cat /etc/mtab 
/dev/cciss/c0d1p3 / ext3 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
/dev/cciss/c0d1p2 /logs ext3 rw 0 0
/dev/cciss/c0d1p1 /boot ext3 rw 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0

/ Proc / монтирует

# cat /proc/mounts 
rootfs / rootfs rw 0 0
/dev/root / ext3 rw,data=ordered 0 0
/dev /dev tmpfs rw 0 0
/proc /proc proc rw 0 0
/sys /sys sysfs rw 0 0
/proc/bus/usb /proc/bus/usb usbfs rw 0 0
devpts /dev/pts devpts rw 0 0
/dev/cciss/c0d1p2 /logs ext3 rw,data=ordered 0 0
/dev/cciss/c0d1p1 /boot ext3 rw,data=ordered 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
/etc/auto.misc /misc autofs rw,fd=7,pgrp=9694,timeout=300,minproto=5,maxproto=5,indirect 0 0
-hosts /net autofs rw,fd=13,pgrp=9694,timeout=300,minproto=5,maxproto=5,indirect 0 0

Lsof

# lsof /dev/cciss/c0d0p1 
#

термоблока

# fuser /dev/cciss/c0d0p1  
#

fdisk -l

# fdisk -l /dev/cciss/c0d0

Disk /dev/cciss/c0d0: 1800.2 GB, 1800280694784 bytes
255 heads, 63 sectors/track, 218871 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

           Device Boot      Start         End      Blocks   Id  System
/dev/cciss/c0d0p1   *           1      218871  1758081276   83  Linux

Согласно другим рекомендациям в Интернете, мы использовали удаленный терминал ILO3 для загрузки с Centos LiveCD. Когда мы это сделали, мы смогли смонтировать / размонтировать, fsck, раздел без каких-либо ошибок или проблем. (т.е.: сам диск в порядке).

Мы также использовали «debugfs», чтобы выполнить очистку inode для Journal Inode <8>. Затем fsck пересобрал журнал без ошибок. Мы снова смогли без проблем смонтировать / размонтировать диск при загрузке в LiveCD.

Когда мы вернулись к обычному загрузочному разделу, мы вернулись в то же место, не в состоянии смонтировать или выполнить fsck из-за того, что ОС считает, что раздел занят.

Я пытаюсь понять, что еще в Linux может указывать на то, что этот диск используется. Какие еще утилиты можно использовать, чтобы найти и очистить это?

Любая помощь очень ценится.


Дополнительная информация по запросу :

lsof и fuser в / home, вместе с отображением содержимого / home и правами доступа к каталогу.

# lsof /home
# fuser /home
# ls -la /home
total 16
drwxr-xr-x  2 root root 4096 Mar 15  2013 .
drwxr-xr-x 27 root root 4096 Nov 19 08:31 ..
# ls -l / | grep home
drwxr-xr-x   2 root root  4096 Mar 15  2013 home
#

Смонтировать -o remount не удалось, так как этот раздел не был смонтирован с момента последней загрузки. (Это был рабочий раздел, так как сервер был установлен, и он показал эту проблему только после вчерашней полной перезагрузки).

# mount -o remount -t ext3 /dev/cciss/c0d0p1 /home
mount: /home not mounted already, or bad option

Я мог бы повторно добавить этот раздел в / etc / fstab и перезагрузить при необходимости.


2013/11/19 11:12 CST

вывод dmsetup:

# dmsetup table                
mpath0: 0 3516173232 multipath 1 queue_if_no_path 0 1 1 round-robin 0 1 1 104:0 1000 
mpath0p1: 0 3516162552 linear 253:0 63

# dmsetup info
Name:              mpath0
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      1
Major, minor:      253, 0
Number of targets: 1
UUID: mpath-3600508b1001cb6e6453d25c4052abca5

Name:              mpath0p1
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        0
Event number:      0
Major, minor:      253, 1
Number of targets: 1
UUID: part1-mpath-3600508b1001cb6e6453d25c4052abca5

lsof -n

# lsof -n | grep /home
#

Окончательное решение:

# multipath -ll
mpath0 (3600508b1001cb6e6453d25c4052abca5) dm-0 HP,LOGICAL VOLUME
[size=1.6T][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=1][active]
 \_ #:#:#:# cciss!c0d0 104:0  [active][ready]

# multipath -F

# multipath -ll
#

# mount -t ext3 /dev/cciss/c0d0p1 /home
# cat /proc/mounts | grep home
/dev/cciss/c0d0p1 /home ext3 rw,data=ordered 0 0
TripSixes
источник
5
Отличный пример хорошего первого вопроса.
TheCleaner
2
Хороший вопрос! Это действительно длинный выстрел, но ты не думал попробовать mount -o remount /home? Кроме того, я бы проверил, чтобы убедиться, что / home на самом деле пуст, когда файловая система не смонтирована (это не должно быть проблемой, но кто знает?), И поищу все применимые сообщения в системных журналах, в том числе dmesg.
CVN
2
Вы делаете диск из диска. Вы также пытались сделать lsof / fuser из / home, если что-то работает, что влияет на точку монтирования?
Дженни Ди говорит восстановить Монику
1
Кстати, вы случайно не экспортировали этот каталог, например, через nfs? Если nfs-сервер запущен до монтирования каталога, он может заблокировать его монтирование.
Дженни Ди говорит восстановить Монику
1
Какой выход lsof -n | grep /home? AFAIK lsof / home ищет процесс с / home open, но не сообщает об использовании подкаталогов.
Зоредаче

Ответы:

16

Вероятно, он используется устройством-картографом.

Проверьте вашу таблицу устройств с помощью dmsetup table. Если это там, очистите отображение с помощью dmsetup remove <name>.

Если нет, поищите ошибки dmesgтакже.


# dmsetup table
mpath0: 0 3516173232 multipath 1 queue_if_no_path 0 1 1 round-robin 0 1 1 104:0 1000 
mpath0p1: 0 3516162552 linear 253:0 63

Ах ах! многолучевое распространение диска. Вы можете увидеть, запустив multipath -ll.

Выполнить: multipath -Fсбросить все неиспользуемые карты, после чего multipath -llничего не должно выводиться.

Или просто используйте /dev/mapper/mpath0p1вместо /dev/cciss/c0d0p1.

MikeyB
источник
Я не уверен, что этот вывод говорит мне. Это показывает результат, который вы ожидали? [ Мой возврат каретки не работает в этом поле для комментариев .. ]# dmsetup table mpath0: 0 3516173232 multipath 1 queue_if_no_path 0 1 1 round-robin 0 1 1 104:0 1000 mpath0p1: 0 3516162552 linear 253:0 63
TripSixes
1

Что касается процесса поиска и устранения неисправностей, при попытке использовать lsof или fuser, не проверяйте только соответствующий раздел - проверяйте непосредственно диск. Это быстро привело бы вас к правильному решению:


Плохо:

fuser /dev/cciss/c0d0p1

Хорошо:

fuser /dev/cciss/c0d0

Плохо:

lsof /dev/c0d0p1

Хорошо:

lsof /dev/ | grep c0d0
zaTricky
источник
1

Я только что столкнулся с этим после клонирования существующего SAN LUN на новый сервер. Мое решение было:

  • Войдите в режим обслуживания
  • mount -o remount,rw /dev/sda1 (где sda1 - то, с чем у вас проблемы)
  • Удаление / перемещение /etc/blkid/blkid.tab

Сервер загрузился позже.

theillien
источник
-2

Говоря из моего собственного опыта. Также проверьте ваш fstab, чтобы убедиться, что вы пытаетесь смонтировать устройство как его логический том, а не псевдоним, который вы указали или используете в / etc / multipath / bindings.

крысиный
источник