Sebbene questa sia una domanda relativamente vecchia, la risposta è sempre la stessa. Hai una macchina virtuale (in esecuzione su un host fisico) e una sorta di archiviazione (archiviazione condivisa (una SAN FC, archiviazione iSCSI, una condivisione NFS) o archiviazione locale).
Con la virtualizzazione, molte macchine virtuali tentano di accedere contemporaneamente alle stesse risorse fisiche. A causa di limitazioni fisiche (numero di operazioni di lettura/scrittura – IOPS; velocità effettiva; latenza) potrebbe verificarsi un problema nel soddisfare contemporaneamente tutte le richieste di archiviazione di tutte le macchine fisiche. Cosa succede di solito:sarai in grado di vedere i "tentativi SCSI" e le operazioni SCSI non riuscite nei sistemi operativi delle tue macchine virtuali. Se ricevi troppi errori/tentativi in un certo periodo di tempo, il kernel imposterà i filesystem montati in sola lettura per evitare danni al filesystem.
Per farla breve:la tua memoria fisica non è abbastanza "potente". Ci sono troppi processi (macchine virtuali) che accedono al sistema di archiviazione contemporaneamente, le tue macchine virtuali non ottengono la risposta dallo spazio di archiviazione abbastanza velocemente e il filesystem diventa di sola lettura.
Non ci sono molte cose che puoi fare. La soluzione ovvia è uno spazio di archiviazione migliore/aggiuntivo. È inoltre possibile modificare i parametri per i timeout SCSI nel kernel Linux. I dettagli sono descritti, ad esempio, in:
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
Tuttavia, questo "ritarderà" solo i tuoi problemi, perché il kernel ha solo più tempo prima che il filesystem venga impostato in sola lettura. (Cioè, non risolvi la causa del problema.)
La mia esperienza (diversi anni con VMware) è che questo problema esiste solo con i kernel Linux (stiamo usando RHEL e SLES) e non con i server Windows. Inoltre, questo problema si verifica su tutti i tipi di archiviazione:FC, iSCSI, archiviazione locale. Per noi, il componente più critico (e costoso) della nostra infrastruttura virtuale è lo storage. (Ora utilizziamo HP LeftHand con connessioni iSCSI da 1 Gbps e da allora non abbiamo avuto problemi di archiviazione. Abbiamo scelto LeftHand (rispetto alle tradizionali soluzioni FC) per la sua scalabilità.
Una probabile spiegazione è che c'è un problema hardware (errore parziale del disco) e che il kernel ha rimontato il filesystem di root in sola lettura non appena ha rilevato il problema, al fine di minimizzare il problema. Un modo più affidabile¹ per verificare le attuali opzioni di montaggio è cat /proc/mounts
(grep ' / ' /proc/mounts
per il filesystem root, ignora un rootfs / …
linea che è un artefatto del processo di avvio). Presumibilmente troverai che rw,errors=remount-ro
è cambiato in ro
(potrebbero essere visualizzate altre opzioni in aggiunta).
I log del kernel probabilmente contengono il messaggio Remounting filesystem read-only
, preceduto da errori di accesso al disco. I log normalmente risiedono in /var/log/kern.log
, tuttavia se questo è su un filesystem ora di sola lettura il messaggio non verrà visualizzato lì, anche se dovrebbero farlo gli errori precedenti. Puoi anche vedere gli ultimi errori del kernel con dmesg
comando.
Per inciso, sotto Ubuntu, il solito posto per i punti di montaggio (utilizzato dall'interfaccia desktop) è sotto /media
(ad es. /media/cdrom0
), anche se puoi usare /mnt
o /mnt/cdrom
se vuoi.
¹ mount
rapporti da /etc/mtab
. Se il filesystem root è di sola lettura, /etc/mtab
non può essere tenuto aggiornato.
Quello che è successo è stato che di recente si è verificata un'interruzione di corrente nel data center. Da allora, non ho toccato il mio server. Una volta che il nostro data center perde potenza, VSphere rende il file system di Ubuntu in sola lettura finché non viene riavviato. Avrei provato a riavviare ma non volevo che tutto il monitoraggio impazzisse. Ho messo a tacere Nagios (servizio di monitoraggio) e tutto funziona correttamente ora che ho riavviato il sistema. Grazie per tutti i suggerimenti. È molto apprezzato.