Correction du système de fichiers en lecture seule de la machine virtuelle Ubuntu?

9

J'allais installer les outils VMWare sur une machine virtuelle du serveur Ubuntu, mais j'ai rencontré le problème de ne pas pouvoir créer un répertoire cdrom dans le répertoire / mnt. J'ai ensuite testé pour voir s'il s'agissait simplement d'un problème d'autorisations, mais je n'ai même pas pu créer de dossier dans le répertoire personnel. Il continue d'indiquer qu'il s'agit d'un système de fichiers en lecture seule. Je connais un peu Linux, et je ne suis pas encore à l'aise avec ça. Tout conseil serait très apprécié.

Informations demandées d'un commentaire:

username @ servername : ~ $ mount
/ dev / sda1 on / type ext4 (rw, errors = remount-ro)
proc on / proc type proc (rw)
aucun on / sys type sysfs (rw, noexec, nosuid, nodev)
aucun on / sys / fs / fuse / connections type fusectl (rw)
aucun sur / sys / kernel / debug type debugfs (rw)
aucun sur / sys / kernel / security type securityfs (rw)
udev sur / dev type tmpfs (rw, mode = 0755)
aucun sur les devpts de type / dev / pts (rw, noexec, nosuid, gid = 5, mode = 0620)
aucun sur les tmpfs de type / dev / shm (rw, nosuid, nodev)
aucun sur les types de / var / run tmpfs (rw , nosuid, mode = 0755)
aucun sur tmpfs de type / var / lock (rw, noexec, nosuid, nodev)
aucun sur / lib / init / rw type tmpfs (rw, nosuid, mode = 0755) binfmt_misc sur / proc / sys / fs / binfmt_misc type binfmt_misc (rw, noexec, nosuid, nodev)

Pour une sortie racine sûre.

root @ server01: ~ # mount
/ dev / sda1 on / type ext4 (rw, errors = remount-ro)
proc on / proc type proc (rw)
aucun on / sys type sysfs (rw, noexec, nosuid, nodev)
aucun on / sys / fs / fuse / connections type fusectl (rw)
aucun sur / sys / kernel / debug type debugfs (rw)
aucun sur / sys / kernel / security type securityfs (rw)
udev sur / dev type tmpfs (rw, mode = 0755)
aucun sur les devpts de type / dev / pts (rw, noexec, nosuid, gid = 5, mode = 0620)
aucun sur les tmpfs de type / dev / shm (rw, nosuid, nodev)
aucun sur les types de / var / run tmpfs (rw , nosuid, mode = 0755)
aucun sur tmpfs de type / var / lock (rw, noexec, nosuid, nodev)
aucun sur / lib / init / rw type tmpfs (rw, nosuid, mode = 0755) binfmt_misc sur / proc / sys / fs / binfmt_misc type binfmt_misc (rw, noexec, nosuid, nodev)

texte alternatif

texte alternatif

David
la source
1
Pouvez-vous imprimer la sortie de la commande "mount"? (aucun paramètre requis)
pgruetter
Ajouté à la réponse. Merci d'avoir demandé des informations utiles.
David
Juste pour être sûr: "sudo mkdir / mnt / cdrom" échoue, non?
Janne Pikkarainen
Ce qui m'embrouille, c'est qu'il dit que c'est un système de fichiers en lecture seule. La sortie de la commande indique "rw" qui est un système de fichiers en lecture-écriture. Le système de fichiers lui-même devrait donc être correct. Dans quel dossier essayez-vous d'écrire? Pouvez-vous également donner la sortie de "ls -la <the_folder>"?
pgruetter
J'ai ajouté une image en bas qui est une image de ce que j'obtiens lorsque je fais la commande demandée. Faites-moi savoir si vous avez besoin de moi pour faire autre chose. :)
David

Réponses:

16

Bien qu'il s'agisse d'une question relativement ancienne, la réponse est toujours la même. Vous avez une machine virtuelle (exécutée sur un hôte physique) et une sorte de stockage (soit un stockage partagé - un SAN FC, un stockage iSCSI, un partage NFS - ou un stockage local).

Avec la virtualisation, de nombreuses machines virtuelles tentent d'accéder aux mêmes ressources physiques en même temps. En raison des limitations physiques (nombre d'opérations de lecture / écriture - IOPS; débit; latence), il peut y avoir un problème pour satisfaire toutes les demandes de stockage de toutes les machines physiques en même temps. Ce qui se passe généralement: vous pourrez voir les «nouvelles tentatives SCSI» et les opérations SCSI ayant échoué dans les systèmes d'exploitation de vos machines virtuelles. Si vous obtenez trop d'erreurs / tentatives dans un certain laps de temps, le noyau définira les systèmes de fichiers montés en lecture seule afin d'éviter d'endommager le système de fichiers.

Pour faire court: votre stockage physique n'est pas assez "puissant". Il y a trop de processus (machines virtuelles) accédant au système de stockage en même temps, vos machines virtuelles n'obtiennent pas la réponse du stockage assez rapidement et le système de fichiers passe en lecture seule.

Il n'y a pas grand chose à faire. La solution évidente est un meilleur stockage / supplémentaire. Vous pouvez également modifier les paramètres des délais d'expiration SCSI dans le noyau Linux. Les détails sont décrits, par exemple, dans:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009465

http://www.cyberciti.biz/tips/vmware-esx-server-scsi-timeout-for-linux-guest.html

Cependant, cela ne fera que "reporter" vos problèmes, car le noyau ne dispose que de plus de temps avant que le système de fichiers soit défini en lecture seule. (C'est-à-dire que vous ne résolvez pas la cause du problème.)

D'après mon expérience (plusieurs années avec VMware), ce problème existe uniquement avec les noyaux Linux (nous utilisons RHEL et SLES) et non avec les serveurs Windows. En outre, ce problème se produit sur toutes sortes de stockage - FC, iSCSI, stockage local. Pour nous, le composant le plus critique (et le plus cher) de notre infrastructure virtuelle est le stockage. (Nous utilisons maintenant HP LeftHand avec des connexions iSCSI à 1 Gbit / s et nous n'avons eu aucun problème de stockage depuis. Nous avons choisi LeftHand (plutôt que les solutions FC traditionnelles) pour son évolutivité.

Josef
la source
Hou la la! Très bonne réponse. J'ai complètement oublié cette question. J'ai marqué votre réponse comme acceptée. Le centre de données avec lequel je travaille actuellement (qui est un grand partenaire VMWare) a récemment mis à niveau son stockage vers un Hitachi Pod. Nous ajoutons en fait un autre pod à l'environnement pour aider au chargement des IOP car nous avons commencé à rencontrer des problèmes supplémentaires avec les IOP (en soulignant que nous devions mettre à niveau ou étendre les ressources SAN). Donc, dans le passé, nous avons encore augmenté nos ressources SAN.
David
4

Une explication probable est qu'il y a un problème matériel (défaillance partielle du disque) et que le noyau a remonté le système de fichiers racine en lecture seule dès qu'il a détecté le problème, afin de minimiser le problème. Une façon plus fiable¹ de vérifier les options de montage actuelles est cat /proc/mounts( grep ' / ' /proc/mountspour le système de fichiers racine, ignorer une rootfs / …ligne qui est un artefact du processus de démarrage). Vous constaterez vraisemblablement que cette option rw,errors=remount-roa changé en ro(d'autres options peuvent s'afficher en plus).

Les journaux du noyau contiennent probablement le message Remounting filesystem read-only, précédé d'erreurs d'accès au disque. Les journaux vivent normalement /var/log/kern.log, mais si cela se trouve sur un système de fichiers désormais en lecture seule, le message n'apparaîtra pas là-bas, bien que les erreurs précédentes le devraient. Vous pouvez également voir les dernières erreurs du noyau avec la dmesgcommande.

En passant, sous Ubuntu, l'emplacement habituel pour les points de montage (utilisé par l'interface de bureau) est sous /media(par exemple /media/cdrom0), bien que vous puissiez utiliser /mntou /mnt/cdromsi vous le souhaitez.

¹ rapports de . Si le système de fichiers racine est en lecture seule, il ne peut pas être mis à jour. mount/etc/mtab/etc/mtab

Gilles 'SO- arrête d'être méchant'
la source
La seule chose à propos du mauvais matériel est qu'il s'agit d'une machine virtuelle, donc cela ne peut pas être un problème matériel car il y a des centaines de machines virtuelles sur les hôtes physiques et le mien est le seul à avoir un problème. Je vais vérifier les journaux du noyau et essayer d'en mettre une capture d'écran dans la question.
David
Si vous avez une limite de taille sur votre disque dur virtuel et qu'il est plein, Ubuntu ne parviendra pas à écrire, comme indiqué ci-dessus. Vous pourriez vérifier.
CarlF
@David: Les journaux montrent que Linux a rencontré un problème matériel, seul le matériel est virtuel. Je trouve l'hypothèse de CarlF très plausible.
Gilles 'SO- arrête d'être méchant'
3

Ce qui s'est passé, c'est qu'il y a eu récemment une panne de courant dans le centre de données. Depuis lors, je n'ai pas touché mon serveur. Une fois que notre centre de données perd de sa puissance, VSphere met le système de fichiers d'Ubuntu en lecture seule jusqu'au redémarrage. J'aurais essayé de redémarrer mais je ne voulais pas que toute la surveillance devienne folle. J'ai fait taire Nagios (service de surveillance) et tout fonctionne bien maintenant que j'ai redémarré le système. Merci pour toutes les contributions. C'est très apprécié.

David
la source
1

Cela peut être évident, mais êtes-vous un utilisateur "root" lorsque vous essayez de faire cela? / mnt appartient à root et n'est accessible en écriture que par root. Vous pouvez également vérifier si vous avez rencontré des erreurs au démarrage. Votre sortie ci-dessus indique que / (et donc / mnt) devrait être remonté en lecture uniquement si le processus de démarrage voit des erreurs. Vous pouvez changer cela (c'est-à-dire remonter en r / w) avec la commande mount, mais je ne le ferais pas à moins d'être sûr que la cause de l'erreur n'est pas grave.

hotei
la source
Je n'ai peut-être pas été dans une racine par accident quand je l'ai fait, mais je pense que la sortie est la même. La sortie racine à coup sûr est inférieure à la première sortie.
David