Ubuntu VMの「読み取り専用ファイルシステム」の修正?


9

Ubuntuサーバーの仮想マシンにVMWareツールをインストールしようとしましたが、/ mntディレクトリにcdromディレクトリを作成できないという問題に遭遇しました。次に、それが単なるアクセス許可の問題かどうかをテストしましたが、ホームディレクトリにフォルダーを作成することさえできませんでした。読み取り専用のファイルシステムであると引き続き示されています。Linuxについては少し知っていますが、まだ慣れていません。何かアドバイスをいただければ幸いです。

コメントから要求された情報:

username @ servername:〜$ mount
/ dev / sda1 on / type ext4(rw、errors = remount-ro)
proc on / proc type proc(rw)
none on / sys type sysfs(rw、noexec、nosuid、nodev)
none on / sys / fs / fuse / connectionsタイプfusectl(rw)
なし/ sys / kernel / debugタイプdebugfs(rw)
なし/ sys / kernel / securityタイプsecurityfs(rw)
udev / devタイプtmpfs(rw、mode = 0755)
/ dev / ptsタイプdevptsにはなし(rw、noexec、nosuid、gid = 5、mode = 0620)
/ dev / shmタイプにありませんtmpfs(rw、nosuid、nodev)
/ var / runタイプにはありませんtmpfs(rw 、nosuid、mode = 0755)
/ var / lockタイプtmpfsにはなし(rw、noexec、nosuid、nodev)
/ lib / init / rwタイプtmpfsにはなし(rw、nosuid、mode = 0755)/ proc / sys / fs / binfmt_miscタイプのbinfmt_misc binfmt_misc(rw、noexec、nosuid、nodev)

確かにルート出力。

root @ server01:〜#mount
/ dev / sda1 on / type ext4(rw、errors = remount-ro)
proc on / proc type proc(rw)
none on / sys type sysfs(rw、noexec、nosuid、nodev)
none on / sys / fs / fuse / connectionsタイプfusectl(rw)
なし/ sys / kernel / debugタイプdebugfs(rw)
なし/ sys / kernel / securityタイプsecurityfs(rw)
udev / devタイプtmpfs(rw、mode = 0755)
/ dev / ptsタイプdevptsにはなし(rw、noexec、nosuid、gid = 5、mode = 0620)
/ dev / shmタイプにありませんtmpfs(rw、nosuid、nodev)
/ var / runタイプにはありませんtmpfs(rw 、nosuid、mode = 0755)
/ var / lockタイプtmpfsにはなし(rw、noexec、nosuid、nodev)
/ lib / init / rwタイプtmpfsにはなし(rw、nosuid、mode = 0755)/ proc / sys / fs / binfmt_miscタイプのbinfmt_misc binfmt_misc(rw、noexec、nosuid、nodev)

代替テキスト

代替テキスト


1
「mount」コマンドの出力を印刷できますか?(パラメーターは不要)
pgruetter 2010年

回答に追加されました。役立つ情報をお寄せいただきありがとうございます。
David

念のため、「sudo mkdir / mnt / cdrom」は失敗しますよね?
Janne Pikkarainen、2010年

私を混乱させるのは、それが読み取り専用のファイルシステムだと言っていることです。コマンドの出力には、読み書き可能なファイルシステムである「rw」が示されます。したがって、ファイルシステム自体は問題ないはずです。どのフォルダに書き込もうとしていますか?「ls -la <the_folder>」の出力も提供できますか?
pgruetter 2010年

下に画像を追加しました。これは、要求されたコマンドを実行したときに表示される画像です。他に何かする必要がある場合はお知らせください。:)
デビッド

回答:


16

これは比較的古い質問ですが、答えは同じです。仮想マシン(物理ホストで実行中)と何らかのストレージ(共有ストレージ-FC SAN、iSCSIストレージ、NFS共有-またはローカルストレージ)があります。

仮想化では、多くの仮想マシンが同じ物理リソースに同時にアクセスしようとします。物理的な制限(読み取り/書き込み操作の数-IOPS、スループット、レイテンシ)により、すべての物理マシンのすべてのストレージ要求を同時に満たすことが問題になる場合があります。通常何が起こるか:仮想マシンのオペレーティングシステムで「SCSI再試行」と失敗したSCSI操作を確認できます。一定期間内にエラー/再試行が多すぎる場合、カーネルはファイルシステムへの損傷を防ぐために、マウントされたファイルシステムを読み取り専用に設定します。

簡単に言えば、物理ストレージは「強力」ではありません。同時にストレージシステムにアクセスするプロセス(仮想マシン)が多すぎるため、仮想マシンがストレージから十分な速度で応答を取得できず、ファイルシステムが読み取り専用になります。

できることはそれほど多くありません。明白な解決策は、より良い/追加のストレージです。LinuxカーネルでSCSIタイムアウトのパラメーターを変更することもできます。詳細は、たとえば次の場所に記載されています。

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

ただし、カーネルはファイルシステムが読み取り専用に設定されるまでの時間が長くなるため、問題を「延期」するだけです。(つまり、問題の原因を解決しません。)

私の経験(VMwareで数年)は、この問題はLinuxカーネル(RHELとSLESを使用している)でのみ発生し、Windowsサーバーでは発生しないということです。また、この問題は、FC、iSCSI、ローカルストレージなど、あらゆる種類のストレージで発生します。私たちにとって、仮想インフラストラクチャで最も重要な(そして高価な)コンポーネントはストレージです。(私たちは現在、1 Gbps iSCSI接続でHP LeftHandを使用しており、それ以来ストレージの問題は発生していません。拡張性のために(従来のFCソリューションではなく)LeftHandを選択しました。


うわー!すばらしい答えです。この質問をすっかり忘れていました。回答を承認済みとしてマークしました。私が現在使用しているデータセンター(大規模なVMWareパートナー)は、最近ストレージをHitachi Podにアップグレードしました。IOPに関する追加の問題が発生し始めたため(SANリソースのアップグレードまたは拡張が必要であることを強調した上で)、実際に環境に別のポッドを追加して、IOPの負荷を支援しています。過去にさかのぼって、私たちは再びSANリソースを増やしました。
David

4

考えられる説明は、ハードウェアの問題(部分的なディスク障害)があり、カーネルが問題を最小限に抑えるために、問題を検出するとすぐにルートファイルシステムを読み取り専用として再マウントしたことです。現在のマウントオプションを確認するより信頼性の高い方法はcat /proc/mountsgrep ' / ' /proc/mountsルートファイルシステムの場合rootfs / …、ブートプロセスのアーティファクトである行を無視します)です。にrw,errors=remount-ro変更されたと思われますro(他のオプションがさらに表示される場合があります)。

カーネルログには、おそらくメッセージのRemounting filesystem read-only前にディスクアクセスエラーが含まれています。ログは通常に存在しますが/var/log/kern.log、これが現在読み取り専用のファイルシステム上にある場合、メッセージはそこに表示されませんが、先行するエラーは表示されます。dmesgコマンドで最新のいくつかのカーネルエラーを確認することもできます。

余談ですが、Ubuntuの下では、マウントポイント(デスクトップインターフェイスで使用)の通常の場所は/media(例:)の下/media/cdrom0にありますが、使用することも、/mnt必要に/mnt/cdrom応じて使用することもできます。

¹ からの報告ルートファイルシステムが読み取り専用の場合、最新の状態に保つことができません。 mount/etc/mtab/etc/mtab


不良ハードウェアについての唯一のことは、これが仮想マシンであることです。したがって、物理ホスト上に何百もの仮想マシンがあり、問題があるのは私だけであるので、ハードウェアの問題ではあり得ません。カーネルログを確認し、そのスクリーンショットを問題に含めます。
David

仮想ハードディスクにサイズ制限があり、それがいっぱいの場合、上記のようにUbuntuは書き込みに失敗します。確認するかもしれません。
CarlF 2010年

@David:Linuxがハードウェアの問題を検出したことをログが示しています。ハードウェアのみが仮想です。CarlFの仮説は非常にもっともらしいと思います。
Gilles「SO-悪をやめる」

3

最近起こったのは、データセンターで停電が起こったことです。それ以来、サーバーには触れていません。データセンターが停電すると、VSphereは再起動されるまでUbuntuのファイルシステムを読み取り専用にします。私は再起動を試みたでしょうが、すべての監視を狂わせたくありませんでした。Nagios(監視サービス)を停止しましたが、システムを再起動したので、すべてが正常に動作しています。すべての入力をありがとう。大変感謝しております。


1

当たり前かもしれませんが、これを行おうとするときに「root」ユーザーですか?/ mntはルートによって所有され、ルートによってのみ書き込み可能です。また、起動時にエラーが発生したかどうかを確認することもできます。上記の出力は、/(および/ mnt)は、ブートプロセスでエラーが検出された場合にのみ読み取りで再マウントする必要があることを示しています。これは、mountコマンドで変更できます(つまり、r / wとして再マウントします)が、エラーの原因が深刻ではないことが確実でない限り、私はこれを行いません。


私がそれをしたとき、私は誤ってルートにいなかったかもしれませんが、出力は同じだと思います。確かにルート出力は最初の出力の下にあります。
David
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.