Jestem długoletnim użytkownikiem i po raz pierwszy przesyłam pytania. Cały dzień szukałem rozwiązania w tej i wielu innych witrynach, ale muszę rozwiązać problem, prosząc o pomoc.
Historia: Nasz serwer HP Proliant, Centos 5.9 został wczoraj wyłączony bez odpowiednich procedur wyłączania. Od tego momentu partycja / home znajduje się w stanie, w którym nie jesteśmy w stanie jej sprawdzić, zamontować ani odmontować. umount stwierdza, że nie jest zamontowany, ale mount / fsck wskazuje, że jest zajęty lub już zamontowany. Pierwotnie spowodowało to, że serwer nie uruchomił się. Ostatecznie usunęliśmy dysk / partycję z / etc / fstab, aby uruchomienie nie zakończyło się niepowodzeniem.
# 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?
Jak widać, dysk nie jest w żaden sposób zamontowany.
wyjście 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
zamontuj wyjście:
# 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
#
utrwalacz
# 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
Zgodnie z innymi zaleceniami w sieci wykorzystaliśmy Zdalny Terminal ILO3 do uruchomienia LiveCD z Centos. Gdy to zrobiliśmy, byliśmy w stanie zamontować / odmontować, fsck, partycję bez żadnych błędów lub problemów. (tzn. sam dysk jest w porządku).
Użyliśmy również „debugfs” do wykonania wyczyszczenia i-węzła dla Journal Inode <8>. fsck następnie przebudował dziennik bez błędów. Znów byliśmy w stanie zamontować / odmontować dysk bez żadnych problemów po uruchomieniu na LiveCD.
Kiedy wróciliśmy do normalnej partycji rozruchowej, jesteśmy z powrotem w tym samym miejscu, nie jesteśmy w stanie zamontować ani fsck z powodu przekonania systemu operacyjnego, że partycja jest zajęta.
Chcę zrozumieć, co jeszcze w systemie Linux może oznaczać, że ten dysk jest używany. Jakich innych narzędzi można użyć, aby to znaleźć i usunąć?
Każda pomoc jest mile widziana.
Dodatkowe informacje, zgodnie z wnioskiem :
lsof i utrwalacz na / home, wraz z wyświetlaniem zawartości / home i uprawnień do katalogu.
# 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
#
Ponowne zamontowanie -o kończy się niepowodzeniem, ponieważ ta partycja nie została zamontowana od ostatniego uruchomienia. (Była to działająca partycja od czasu zainstalowania serwera i pokazała ten problem dopiero po wczorajszym twardym ponownym uruchomieniu).
# mount -o remount -t ext3 /dev/cciss/c0d0p1 /home
mount: /home not mounted already, or bad option
Mógłbym ponownie dodać tę partycję do / etc / fstab i zrestartować w razie potrzeby.
2013/11/19 11:12 CST
wyjście 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
#
Ostateczne rozwiązanie:
# 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
mount -o remount /home
? Chciałbym również sprawdzić, czy / home jest rzeczywiście pusty, gdy system plików nie jest podłączony ( nie powinno to stanowić problemu, ale kto wie?) I poszukać odpowiednich komunikatów w dziennikach systemu, w tymdmesg
.lsof -n | grep /home
? AFAIK lsof / home szuka procesu z / home open, ale nie zgłasza użycia podkatalogów.Odpowiedzi:
Prawdopodobnie jest używany przez urządzenie mapujące urządzenia.
Sprawdź tabelę mapowania urządzeń za pomocą
dmsetup table
. Jeśli tam jest, wyczyść mapowanie za pomocądmsetup remove <name>
.Jeśli nie, poszukaj również błędów
dmesg
.Ach! multipath przejął dysk. Możesz to zobaczyć po uruchomieniu
multipath -ll
.Uruchom:
multipath -F
aby opróżnić wszystkie nieużywane mapy, niemultipath -ll
powinien nic wypisywać.Lub po prostu użyj
/dev/mapper/mpath0p1
zamiast/dev/cciss/c0d0p1
.źródło
# 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
W związku z procesem rozwiązywania problemów, próbując lsof lub utrwalacza, nie sprawdzaj tylko na odpowiedniej partycji - sprawdź bezpośrednio na dysku. To szybko skierowałoby cię do właściwego rozwiązania:
Zły:
Dobry:
Zły:
Dobry:
źródło
Właśnie się z tym spotkałem po sklonowaniu istniejącej jednostki SAN LUN na nowym serwerze. Moim rozwiązaniem było:
mount -o remount,rw /dev/sda1
(gdzie sda1 jest tym, z czym masz problem)/etc/blkid/blkid.tab
Serwer uruchomił się później.
źródło
Mówiąc z własnych doświadczeń. Sprawdź także swój plik fstab, aby upewnić się, że próbujesz zamontować urządzenie jako jego logiczny wolumin, a nie alias, który podałeś lub używasz off / etc / multipath / bindings.
źródło