CentOS berpikir Disk sedang sibuk, tidak bisa me-mount atau fsck

25

Saya adalah pengguna lama, dan pengirim pertanyaan pertama kali. Saya telah menghabiskan satu hari penuh mencari solusi ini dan banyak situs lain, tetapi saya harus meminta bantuan untuk menyelesaikan situasi saya.

Sejarah: Server HP Proliant kami, Centos 5.9 dimatikan kemarin tanpa prosedur mematikan yang benar. Sejak saat itu, partisi / home telah dalam keadaan di mana kita tidak dapat melakukan fsck, mount, atau umount. umount menyatakan bahwa itu tidak di-mount, namun mount / fsck mengindikasikan bahwa ia sedang sibuk atau sudah di-mount. Ini awalnya menyebabkan server tidak bisa boot. Kami akhirnya menghapus disk / partisi dari / etc / fstab sehingga bootup tidak akan gagal.

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

Seperti yang Anda lihat, disk tidak dipasang dengan cara apa pun.

keluaran df:

# 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

tingkatkan output:

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

/ etc / 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

/ etc / 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 / mounts

# 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

# 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

Per rekomendasi lain di web, kami telah menggunakan Terminal Jarak Jauh ILO3 untuk melakukan booting dari Centos LiveCD. Ketika kami melakukan ini, kami dapat me-mount / unmount, fsck, partisi tanpa kesalahan atau masalah. (yaitu: disk itu sendiri baik-baik saja).

Kami juga menggunakan "debugfs" untuk melakukan inode clear untuk Journal Inode <8>. fsck kemudian membangun kembali jurnal tanpa kesalahan. Sekali lagi, kami dapat memasang / melepas disk tanpa masalah saat boot ke LiveCD.

Ketika kami beralih kembali ke partisi boot normal, kami kembali di tempat yang sama, tidak dapat me-mount atau fsck karena OS percaya bahwa partisi sedang sibuk.

Saya ingin memahami apa lagi yang bisa menunjukkan bahwa disk ini sedang digunakan. Utilitas lain apa yang dapat digunakan untuk menemukan ini dan membersihkannya?

Setiap bantuan sangat dihargai.


Informasi tambahan, seperti yang diminta :

lsof dan fuser on / home, bersama dengan menampilkan / isi rumah dan izin direktori.

# 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
#

Mount -o remount gagal, karena partisi ini belum dipasang sejak boot paling baru. (Ini adalah partisi yang berfungsi sejak server diinstal, dan hanya menunjukkan masalah ini setelah hard reboot kemarin).

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

Saya bisa menambahkan kembali partisi ini ke / etc / fstab, dan reboot jika perlu.


2013/11/19 11:12 CST

output 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

Tidak -n

# lsof -n | grep /home
#

Solusi akhir:

# 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
sumber
5
Contoh luar biasa dari pertanyaan pertama yang bagus.
TheCleaner
2
Pertanyaan bagus! Ini pukulan yang sangat panjang, tetapi apakah Anda sudah mempertimbangkan untuk mencoba mount -o remount /home? Juga, saya akan memeriksa untuk memastikan / home benar-benar kosong ketika sistem file tidak dipasang (yang seharusnya tidak menjadi masalah, tetapi siapa yang tahu?) Dan mencari pesan yang berlaku di log sistem, termasuk dmesg.
CVn
2
Anda melakukan lsof disk. Apakah Anda mencoba melakukan lsof / fuser of / home juga, kalau-kalau ada yang berjalan yang mempengaruhi titik mount?
Jenny D mengatakan Reinstate Monica
1
Omong-omong, apakah Anda kebetulan mengekspor direktori itu, misalnya melalui nfs? Jika nfs-server dimulai sebelum memasang direktori, itu bisa menghalangi Anda untuk memasangnya.
Jenny D mengatakan Reinstate Monica
1
Apa output dari lsof -n | grep /home? AFAIK lsof / home mencari proses dengan / home open, tetapi tidak melaporkan penggunaan subdirektori.
Zoredache

Jawaban:

16

Itu mungkin digunakan oleh device-mapper.

Periksa tabel device-mapper Anda menggunakan dmsetup table. Jika ada di sana, kosongkan pemetaan dengan dmsetup remove <name>.

Jika tidak, cari kesalahan dmesgjuga.


# 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

Ah ah! multipath telah mengklaim disk. Anda bisa melihatnya dengan berlari multipath -ll.

Jalankan: multipath -Funtuk menyiram semua peta yang tidak digunakan maka tidak multipath -llakan menghasilkan apa-apa.

Atau, cukup gunakan /dev/mapper/mpath0p1saja /dev/cciss/c0d0p1.

MikeyB
sumber
Saya tidak yakin apa yang dikatakan output ini kepada saya. Apakah ini menunjukkan output yang Anda harapkan? [ # 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
Pengembalian
1

Sehubungan dengan proses pemecahan masalah, ketika mencoba lsof atau fuser, jangan hanya memeriksa partisi yang relevan - periksa terhadap disk secara langsung. Ini dengan cepat akan mengarahkan Anda ke solusi yang benar:


Buruk:

fuser /dev/cciss/c0d0p1

Baik:

fuser /dev/cciss/c0d0

Buruk:

lsof /dev/c0d0p1

Baik:

lsof /dev/ | grep c0d0
zTricky
sumber
1

Saya baru saja menjumpai ini setelah mengkloning SAN LUN yang ada ke server baru. Solusi saya adalah:

  • Masuk ke mode pemeliharaan
  • mount -o remount,rw /dev/sda1 (di mana sda1 adalah masalah apa pun yang Anda alami)
  • Hapus / pindahkan /etc/blkid/blkid.tab

Server boot setelahnya.

theillien
sumber
-2

Berbicara dari pengalaman saya sendiri. Periksa juga fstab Anda, untuk memastikan Anda mencoba memasang perangkat sebagai volume logisnya dan bukan alias yang Anda berikan atau gunakan dari / etc / multipath / bindings.

Tikus
sumber