Ubuntu VM "read only file system" fix?

9

Saya akan menginstal alat VMWare di server Ubuntu Virtual Machine, tetapi saya mengalami masalah karena tidak dapat membuat direktori cdrom di direktori / mnt. Saya kemudian diuji untuk melihat apakah itu hanya masalah izin, tetapi saya bahkan tidak bisa membuat folder di direktori home. Itu terus menyatakan bahwa itu adalah sistem file hanya baca. Saya tahu sedikit tentang Linux, dan saya belum merasa nyaman dengan itu. Saran apa pun akan sangat dihargai.

Informasi yang Diminta dari komentar:

username @ servername : ~ $ mount
/ dev / sda1 on / type ext4 (rw, errors = remount-ro)
proc on / proc type proc (rw)
tidak ada di / sys ketik sysfs (rw, noexec, nosuid, nodev)
tidak ada di / sys / fs / fuse / jenis koneksi fusectl (rw)
tidak ada di / sys / kernel / debug tipe debugfs (rw)
tidak ada di / sys / kernel / tipe keamanan securityfs (rw)
udev on / dev ketik tmpfs (rw, mode = 0755)
tidak ada tipe devpts pada / dev / pts (rw, noexec, nosuid, gid = 5, mode = 0620)
tidak ada pada / dev / shm tipe tmpfs (rw, nosuid, nodev)
tidak ada di / var / run type tmpfs (rw , nosuid, mode = 0755)
tidak ada pada / var / jenis kunci tmpfs (rw, noexec, nosuid, nodev)
tidak ada pada / lib / init / rw ketik tmpfs (rw, nosuid, mode = 0755) binfmt_misc on / proc / sys / fs / binfmt_misc jenis binfmt_misc (rw, noexec, nosuid, nodev)

Untuk keluaran root yang pasti.

root @ server01: ~ # mount
/ dev / sda1 on / type ext4 (rw, errors = remount-ro)
proc di / proc type proc (rw)
tidak ada di / sys ketik sysfs (rw, noexec, nosuid, nodev)
tidak ada di / sys / fs / fuse / jenis koneksi fusectl (rw)
tidak ada di / sys / kernel / debug tipe debugfs (rw)
tidak ada di / sys / kernel / tipe keamanan securityfs (rw)
udev on / dev ketik tmpfs (rw, mode = 0755)
tidak ada tipe devpts pada / dev / pts (rw, noexec, nosuid, gid = 5, mode = 0620)
tidak ada pada / dev / shm tipe tmpfs (rw, nosuid, nodev)
tidak ada di / var / run type tmpfs (rw , nosuid, mode = 0755)
tidak ada pada / var / jenis kunci tmpfs (rw, noexec, nosuid, nodev)
tidak ada pada / lib / init / rw ketik tmpfs (rw, nosuid, mode = 0755) binfmt_misc on / proc / sys / fs / binfmt_misc jenis binfmt_misc (rw, noexec, nosuid, nodev)

teks alternatif

teks alternatif

David
sumber
1
Bisakah Anda mencetak output dari perintah "mount"? (tidak diperlukan parameter)
pgruetter
Ditambahkan ke jawabannya. Terima kasih telah meminta informasi yang bermanfaat.
David
Hanya untuk memastikan: "sudo mkdir / mnt / cdrom" gagal, bukan?
Janne Pikkarainen
Yang membingungkan saya adalah ia mengatakan itu adalah sistem file read only. Output dari perintah menyatakan "rw" yang merupakan sistem file read write. Jadi filesystem itu sendiri harus ok. Di folder mana Anda mencoba menulis? Bisakah Anda juga memberikan output "ls -la <the_folder>"?
pgruetter
Saya menambahkan gambar ke bawah yang merupakan gambar dari apa yang saya dapatkan ketika saya melakukan perintah yang diminta. Beri tahu saya jika Anda membutuhkan saya untuk melakukan hal lain. :)
David

Jawaban:

15

Meskipun ini adalah pertanyaan yang relatif lama, jawabannya tetap sama. Anda memiliki mesin virtual (berjalan pada host fisik) dan beberapa jenis penyimpanan (baik penyimpanan bersama - FC SAN, penyimpanan iSCSI, berbagi NFS - atau penyimpanan lokal).

Dengan virtualisasi, banyak mesin virtual mencoba mengakses sumber daya fisik yang sama secara bersamaan. Karena keterbatasan fisik (jumlah operasi baca / tulis - IOPS; throughput; latensi) mungkin ada masalah untuk memenuhi semua permintaan penyimpanan semua mesin fisik secara bersamaan. Apa yang biasanya terjadi: Anda akan dapat melihat "coba ulang SCSI" dan operasi SCSI yang gagal dalam sistem operasi mesin virtual Anda. Jika Anda mendapatkan terlalu banyak kesalahan / coba lagi dalam periode waktu tertentu, kernel akan mengatur read-only filesystem yang dipasang untuk mencegah kerusakan pada filesystem.

Singkatnya, penyimpanan fisik Anda tidak cukup "kuat". Ada terlalu banyak proses (mesin virtual) yang mengakses sistem penyimpanan pada saat yang bersamaan, mesin virtual Anda tidak mendapatkan respons dari penyimpanan dengan cukup cepat, dan sistem file berjalan hanya-baca.

Tidak banyak hal yang dapat Anda lakukan. Solusi yang jelas adalah penyimpanan yang lebih baik / tambahan. Anda juga dapat mengubah parameter timeout SCSI di kernel Linux. Detail dijelaskan, misalnya, di:

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

Namun, ini hanya akan "menunda" masalah Anda, karena kernel hanya mendapat lebih banyak waktu sebelum filesystem akan diatur read-only. (Yaitu, Anda tidak memecahkan penyebab masalah.)

Pengalaman saya (beberapa tahun dengan VMware) adalah bahwa masalah ini hanya ada pada kernel Linux (kami menggunakan RHEL dan SLES) dan tidak dengan server Windows. Juga, masalah ini terjadi pada semua jenis penyimpanan - FC, iSCSI, penyimpanan lokal. Bagi kami, komponen paling kritis (dan mahal) dalam infrastruktur virtual kami adalah penyimpanan. (Kami sekarang menggunakan HP LeftHand dengan koneksi iSCSI 1 Gbps, dan tidak memiliki masalah penyimpanan sejak itu. Kami memilih LeftHand (lebih dari solusi FC tradisional) untuk skalabilitasnya.

Josef
sumber
Wow! Jawaban yang bagus Saya benar-benar lupa tentang pertanyaan ini. Saya telah menandai jawaban Anda sebagai yang diterima. Pusat data yang saat ini bekerja dengan saya (yang merupakan mitra VMWare besar) baru-baru ini meningkatkan penyimpanan mereka ke Pod Hitachi. Kami sebenarnya menambahkan pod lain ke lingkungan untuk membantu memuat TIO karena kami mulai mengalami masalah tambahan dengan TIO (sebelumnya menekankan bahwa kami perlu memutakhirkan atau memperluas sumber daya SAN). JADI dulu, kami telah menambah sumber daya SAN kami lagi.
David
4

Penjelasan yang mungkin adalah bahwa ada masalah perangkat keras (kegagalan disk parsial), dan bahwa kernel mencatat kembali sistem file root sebagai read-only segera setelah mendeteksi masalah, untuk meminimalkan masalah. Cara yang lebih andal untuk memeriksa opsi pemasangan saat ini adalah cat /proc/mounts( grep ' / ' /proc/mountsuntuk sistem file root, abaikan rootfs / …baris yang merupakan artefak dari proses boot). Anda mungkin akan menemukan bahwa rw,errors=remount-rotelah berubah menjadi ro(opsi lain dapat ditampilkan sebagai tambahan).

Log kernel mungkin berisi pesan tersebut Remounting filesystem read-only, didahului oleh kesalahan akses disk. Log biasanya hidup /var/log/kern.log, tetapi jika ini pada sistem file read-only sekarang pesan tidak akan muncul di sana, meskipun kesalahan sebelumnya harus. Anda juga dapat melihat beberapa kesalahan kernel terbaru dengan dmesgperintah.

Sebagai tambahan, di bawah Ubuntu, tempat biasa untuk titik mount (digunakan oleh antarmuka desktop) berada di bawah /media(misalnya /media/cdrom0), meskipun Anda dapat menggunakan /mntatau /mnt/cdromjika Anda suka.

¹ laporan dari . Jika sistem file root hanya-baca, tidak dapat terus diperbarui. mount/etc/mtab/etc/mtab

Gilles
sumber
Satu-satunya hal tentang perangkat keras yang buruk adalah bahwa ini adalah mesin virtual, oleh karena itu tidak bisa menjadi masalah perangkat keras karena ada ratusan mesin virtual pada host fisik dan saya adalah satu-satunya yang memiliki masalah. Saya akan memeriksa log kernel dan mencoba untuk meletakkan screenshot di pertanyaan.
David
Jika Anda memiliki batasan ukuran pada hard disk virtual Anda, dan penuh, Ubuntu akan gagal menulis, seperti yang ditunjukkan di atas. Anda mungkin memeriksa.
CarlF
@ David: Log menunjukkan bahwa Linux mengalami masalah perangkat keras, hanya perangkat kerasnya yang virtual. Saya menemukan hipotesis CarlF sangat masuk akal.
Gilles
3

Apa yang terjadi adalah, ada kegagalan daya di pusat data baru-baru ini. Sejak itu, saya belum menyentuh server saya. Setelah pusat data kami kehilangan daya, VSphere membuat sistem file Ubuntu hanya bisa dibaca sampai dimulai ulang. Saya akan mencoba memulai kembali tetapi saya tidak ingin semua pemantauan menjadi gila. Saya telah membungkam Nagios (layanan pemantauan) dan semuanya bekerja dengan baik sekarang setelah saya me-restart sistem. Terima kasih atas semua masukannya. Ini sangat dihargai.

David
sumber
1

Mungkin terlihat jelas, tetapi apakah Anda pengguna "root" ketika mencoba melakukan ini? / mnt dimiliki oleh root dan hanya dapat ditulis oleh root. Anda mungkin juga memeriksa untuk melihat apakah Anda memiliki kesalahan saat boot. Output Anda di atas mengatakan bahwa / (dan karenanya / mnt) harus di-remount hanya baca jika proses booting melihat kesalahan. Anda dapat mengubah ini (mis. Remounting sebagai r / w) dengan perintah mount, tapi saya tidak akan melakukan ini kecuali Anda yakin bahwa apa pun yang menyebabkan kesalahan tidak serius.

hotei
sumber
Saya mungkin tidak berada di root secara tidak sengaja ketika saya melakukan itu, tapi saya pikir hasilnya sama. Output root pasti di bawah output pertama.
David