CentOS pense que le disque est occupé, ne peut pas être monté ou fsck

25

Je suis un utilisateur de longue date et je soumets des questions pour la première fois. J'ai passé une journée entière à rechercher ce site et de nombreux autres sites pour trouver une solution, mais je dois recourir à demander de l'aide pour résoudre ma situation.

Historique: Notre serveur HP Proliant, Centos 5.9 a été mis hors tension hier sans procédures d'arrêt appropriées. À partir de ce moment, la partition / home a été dans un état où nous ne pouvons pas la fsck, la monter ou la démonter. umount indique qu'il n'est pas monté, mais mount / fsck indique qu'il est occupé ou déjà monté. Cela a initialement provoqué le démarrage du serveur. Nous avons finalement supprimé le disque / la partition de / etc / fstab afin que le démarrage n'échoue pas.

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

Comme vous pouvez le voir, le disque n'est monté en aucune façon.

sortie 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

sortie de montage:

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

# 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

Selon d'autres recommandations sur le Web, nous avons utilisé le terminal distant ILO3 pour démarrer à partir d'un Centos LiveCD. Lorsque nous avons fait cela, nous avons pu monter / démonter, fsck, la partition sans aucune erreur ou problème. (ie: le disque lui-même est très bien).

Nous avons également utilisé "debugfs" pour effectuer un effacement d'inode pour le Journal Inode <8>. fsck a ensuite reconstruit le journal sans erreur. Encore une fois, nous avons pu monter / démonter le disque sans aucun problème lors du démarrage dans le LiveCD.

Lorsque nous sommes revenus à la partition de démarrage normale, nous sommes de retour au même endroit, incapable de monter ou de fsck car le système d'exploitation pense que la partition est occupée.

J'essaie de comprendre ce que d'autre dans Linux pourrait indiquer que ce disque est en cours d'utilisation. Quels autres utilitaires peuvent être utilisés pour trouver cela et l'effacer?

Toute aide est grandement appréciée.


Informations supplémentaires, sur demande :

lsof et fuser sur / home, ainsi que l'affichage du contenu / home et des autorisations de répertoire.

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

Le montage -o remount échoue, car cette partition n'a pas été montée depuis le dernier démarrage. (Il s'agissait d'une partition fonctionnelle depuis l'installation du serveur, et n'a montré ce problème qu'après le redémarrage dur d'hier).

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

Je pourrais rajouter cette partition dans / etc / fstab et redémarrer si nécessaire.


2013/11/19 11:12 am CST

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

Solution finale:

# 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
la source
5
Excellent exemple d'une bonne première question.
TheCleaner
2
Bonne question! C'est un plan très long, mais avez-vous envisagé d'essayer mount -o remount /home? De plus, je vérifierais que / home est réellement vide lorsque le système de fichiers n'est pas monté (cela ne devrait pas poser de problème, mais qui sait?) Et rechercherai tous les messages applicables dans les journaux système, y compris dmesg.
un CVn
2
Vous faites un lsof du disque. Avez-vous également essayé de faire un lsof / fuser de / home, au cas où quelque chose en cours affecterait le point de montage?
Jenny D dit Réintégrer Monica
1
Soit dit en passant, êtes-vous par hasard en train d'exporter ce répertoire, par exemple via nfs? Si le serveur nfs est démarré avant de monter le répertoire, il pourrait vous bloquer de le monter.
Jenny D dit Réintégrer Monica
1
Quelle est la sortie de lsof -n | grep /home? AFAIK lsof / home recherche un processus avec / home ouvert, mais ne signale pas l'utilisation des sous-répertoires.
Zoredache

Réponses:

16

Il est probablement utilisé par le mappeur de périphériques.

Vérifiez votre table de mappage de périphérique à l'aide de dmsetup table. S'il est là, effacez le mappage avec dmsetup remove <name>.

Sinon, recherchez également les erreurs 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 a revendiqué le disque. Vous pouvez voir en courant multipath -ll.

Exécuter: multipath -Fpour vider toutes les cartes inutilisées, multipath -llrien ne devrait sortir.

Ou utilisez simplement /dev/mapper/mpath0p1au lieu de /dev/cciss/c0d0p1.

MikeyB
la source
Je ne sais pas ce que cette sortie me dit. Est-ce que cela montre la sortie que vous attendiez? [ Mon retour chariot ne semble pas fonctionner dans cette zone de commentaire .. ]# 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

En ce qui concerne le processus de dépannage, lors de l’essai de lsof ou de l’unité de fusion, ne vous contentez pas de vérifier la partition appropriée - vérifiez directement le disque. Cela vous aurait rapidement orienté vers la bonne solution:


Mauvais:

fuser /dev/cciss/c0d0p1

Bien:

fuser /dev/cciss/c0d0

Mauvais:

lsof /dev/c0d0p1

Bien:

lsof /dev/ | grep c0d0
zaTricky
la source
1

Je viens de rencontrer cela après avoir cloné un SAN LUN existant sur un nouveau serveur. Ma solution était:

  • Entrer en mode maintenance
  • mount -o remount,rw /dev/sda1 (où sda1 est ce que vous rencontrez des problèmes)
  • Supprimer / déplacer /etc/blkid/blkid.tab

Le serveur a ensuite démarré.

theillien
la source
-2

Parlant de mes propres expériences. Vérifiez également votre fstab, pour vous assurer que vous essayez de monter le périphérique comme son volume logique et non l'alias que vous avez donné ou que vous utilisez off / etc / multipath / bindings.

Rat
la source