CentOS, Diskin meşgul olduğunu, monte edemediğini veya fsck yapamadığını düşünüyor


25

Ben uzun zamandır bir kullanıcıyım ve ilk defa soru teslim eden biriyim. Bir çözüm bulmak için bu siteyi ve diğer pek çok siteyi arayarak tam bir gün geçirdim, ancak durumumu çözmek için yardım talep etmek zorundayım.

Tarihçe: HP Proliant, Centos 5.9 sunucumuz dün uygun kapatma prosedürleri olmadan kapatıldı. Bu noktadan itibaren, / home bölümü onu kıramayacağımız, monte edemediğimiz veya ayıramadığımız bir durumdaydı. umount monte edilmediğini belirtir, ancak mount / fsck meşgul veya zaten monte edilmiş olduğunu belirtir. Bu başlangıçta sunucunun önyüklememesine neden oldu. Sonunda / etc / fstab diskini / diskini kaldırdık, böylece önyükleme başarısız oldu.

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

Gördüğünüz gibi, disk hiçbir şekilde monte edilmemiş.

df çıkışı:

# 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

montaj çıkışı:

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

kaynaştırıcı

# 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

İnternetteki diğer önerilere göre, bir Centos LiveCD'yi başlatmak için ILO3 Uzak Terminali kullandık. Bunu yaptığımızda, herhangi bir hata ya da problem yaşamadan bölmeyi takıp çıkarmayı, fsck, ayırmayı başardık. (yani: diskin kendisi iyi).

Journal Inode <8> için temiz bir inode gerçekleştirmek için "debugfs" kullandık. fsck daha sonra dergiyi hatasız olarak yeniden yaptı. Yine, LiveCD'ye önyükleme yaparken diski sorunsuzca takıp çıkarmayı başardık.

Normal önyükleme bölümüne geri döndüğümüzde, aynı yere geri döndük, bölümün meşgul olduğuna inanan işletim sistemi nedeniyle monte edemiyoruz veya fsck yapamıyoruz.

Linux'ta başka hangi diskin kullanımda olduğunu gösteren ne olabileceğini anlamak için bakıyorum. Bunu bulmak ve temizlemek için başka hangi yardımcı programlar kullanılabilir?

Herhangi bir yardım büyük beğeni topluyor.


İstenildiği gibi ek bilgiler :

lsof ve fuser on / home ile birlikte / home içeriğini ve dizin izinlerini gösterir.

# 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 başarısız olur, çünkü bu bölüm en son açılıştan bu yana kurulmadı. (Sunucu kurulduğundan bu yana çalışan bir bölümdü ve bu sorunu ancak dün yeniden başlattıktan sonra gösterdi.)

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

Bu bölümü / etc / fstab dosyasına tekrar ekleyebilir ve gerekirse yeniden başlatabilirim.


2013/11/19 11:12 CST

dmsetup çıkışı:

# 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

Öyle -n

# lsof -n | grep /home
#

Son çözüm:

# 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

5
İyi bir ilk soru için mükemmel bir örnek.
TheCleaner

2
İyi soru! Bu bir var gerçekten uzun çekim ama denemeyi düşündüm var mount -o remount /home? Ayrıca, dosya sistemi takılı olmadığında (bu bir sorun olmamalı , ama kim bilir?) Gerçekten boş / boş olduğundan emin olmak için kontrol ederim ve sistem kayıtlarında da dahil olmak üzere geçerli mesajları ararım dmesg.
CVn

2
Diskin bir parçasını yapıyorsun. Montaj noktasını etkileyen herhangi bir şey olması durumunda, lsof / fuser / home yapmayı denediniz mi?
Jenny D, Monica

1
Bu arada, bu dizini dışa aktarma şansınız var mı, örneğin nfs yoluyla? Dizini bağlamadan önce nfs sunucusu başlatılırsa, onu yerleştirmenizi engelleyebilir.
Jenny D, Monica

1
Çıktı nedir lsof -n | grep /home? AFAIK lsof / home, / home open ile bir işlem arar, ancak alt dizinlerin kullanımını rapor etmez.
Zoredache

Yanıtlar:


16

Muhtemelen cihaz eşleştiricisi tarafından kullanılıyordur.

Cihaz eşleştirici tablonuzu kullanarak kontrol edin dmsetup table. Oradaysa, eşleştirmeyi temizleyin dmsetup remove <name>.

Değilse, hataları da arayın 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

Ah ah! multipath diski talep etti. Çalıştırarak görebilirsiniz multipath -ll.

Çalıştır: multipath -Fkullanılmayan tüm haritaları yıkamak için multipath -llhiçbir şey çıkarmamalı.

Veya, /dev/mapper/mpath0p1yerine kullanın /dev/cciss/c0d0p1.


Bu çıkışın bana ne söylediğinden emin değilim. Bu beklediğiniz çıktıyı gösteriyor mu? [ # 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
Satırbaşımın iadesi

1

Sorun giderme işlemiyle ilgili olarak, lsof veya fuser çalışırken, yalnızca ilgili bölüme bakmayın - doğrudan diske karşı kontrol edin. Bu hızla sizi doğru çözüme yönlendirirdi:


Kötü:

fuser /dev/cciss/c0d0p1

İyi:

fuser /dev/cciss/c0d0

Kötü:

lsof /dev/c0d0p1

İyi:

lsof /dev/ | grep c0d0

1

Mevcut bir SAN LUN'u yeni bir sunucuya klonladıktan sonra yeni tanıştım. Benim çözümüm:

  • Bakım moduna girin
  • mount -o remount,rw /dev/sda1 (sda1 nerede sorun yaşarsanız o olur)
  • Sil / taşı /etc/blkid/blkid.tab

Sunucu daha sonra başlattı.


-2

Kendi deneyimlerimden konuşmak. Aygıtı, verdiğiniz takma ad değil, off / etc / multipath / bindings öğesini değil, mantıksal birimi olarak monte etmeye çalıştığınızdan emin olmak için fstab'inizi de kontrol edin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.