メインファイルシステムが読み取り専用モードになる原因を見つける方法


9

Ubuntu 12.04

ファイルシステムは頻繁に読み取り専用モードになります。まず第一に、私はこの質問を読みました。ファイルシステムは、すでに頻繁に読み取り専用モードになっています。しかし、それが以外の原因ではないのかどうかを知る必要がありdying hard driveます。これは私のクライアントによって提供されるサーバーであり、私はそこでいくつかnode.js workers+ 1を実行しnode.js server、私はを使用していmongodbます。

ときどき(20〜50時間ごとに)システムが突然ファイルシステムを読み取り専用にし、mongodbプロセスが失敗し(読み取り専用fsのため)、私のノードワーカー/サーバー(によって起動されますforever)が強制終了されます。

これがdmesgからのログです-FSが読み取り専用になるエラーとメッセージがいくつかあります。JOURNALエラーもいくつかありますが、それらのエラーの原因を見つけたいと思います。

http://speedy.sh/Ux2VV/dmesg.log.txt


編集する

smartctl -t long /dev/sda
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.5.0-23-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

SMART support is: Unavailable - device lacks SMART capability.
A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.

私は何を間違っていますか?同じですsda2

Moroverで、シェルに存在しないコマンドを入力すると、次のようになります。

Sorry, command-not-found has crashed! Please file a bug report at:
https://bugs.launchpad.net/command-not-found/+filebug
Please include the following information with the report:

edit2

このサーバーは実際にはVPSであり、ハードドライブは正常でRAID 10であるとの情報を得たところ、「fstabでfsckを強制することで解決するはずです」と言われました...


edit3

これはmountコマンドからの出力です:

/dev/sda2 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /media/psf type prl_fs (rw,nosuid,nodev,sync,noatime,share,_netdev)

だから実際にはsdaドライブはありませんか?sda2のみ?


edit4

fsck -Nコマンドからの出力:

root@ubuntu:~# fsck -N sda
fsck from util-linux 2.20.1
[/sbin/fsck.ext4 (1) -- /] fsck.ext4 sda /dev/sda2 

私は同じ問題、NodeJSアプリ、MongoDB、Chrome、VSCode、Robomongo、tilixターミナル、Matemost、Thunderbird、およびPostmanのアクティブなアプリケーションを毎日使用しています
Ankur Loriya

回答:


8
[26729.124569] Write(10): 2a 00 03 96 5a b0 00 00 08 00
[26729.124576] end_request: I/O error, dev sda, sector 60185264
[26729.125298] Buffer I/O error on device sda2, logical block 4593494
[26729.125986] lost page write due to I/O error on sda2

私にとって、それ/dev/sdaはあなたが出て行くことのかなり強力な証拠です。確認のためにsmartctlテストを実行することもできますが(smartctl -t long /dev/sda)、できるだけ早く交換する傾向があります。

編集smartctl私が与えたコマンドは、記述されたとおりです。質問に失敗モードを表示していただきありがとうございます。これは、非常に古いハードウェアを使用しているか、仮想化またはハードウェアRAIDコントローラのいずれかの方法で変換層が存在するように見えます。明確にできますか?

HDDがもうすぐ出るという私の主張を繰り返してもいいですか?テストはすべて順調ですが、システムがパッキングしてデータが失われる前にハードウェアを交換することが、今の優先事項です。少なくとも時間を無駄にする前に、少なくともバックアップが完全に最新であることを確認してくださいsmartctl

編集2:確かに彼らが提案したことを試す価値はあります-ファイルシステムをfscking-しかし、FSが矛盾しているためにFSがroモードに落ちていないので問題が解決することを望んでいません基礎となるハードウェアとの通信に問題が発生しました。

基盤となるハードウェアが問題ないと確信している場合、それはカーネルとハードウェア、つまり仮想化レイヤーの間の問題です。おそらくVPSプロバイダーに、実行しているディストリビューションと正確なカーネルバージョンがVPSシステムで完全にサポートされていることを確認する必要があります。


2

正確なエラーを見つけるためのより完全な方法は、読み取り専用期間中にあり、dmesgバグ/問題についてコマンドを実行することです。fsck何が問題なのかを理解するために、ドライモードで実行することもできます。(アクセス制限により申し訳ありませんが添付ファイルを表示できません。発行期間中の場合は後で確認します)


dmesgファイルシステムが読み取り専用モードのときにコマンドを使用しました。今、私はサーバーを再起動しましたが、今のところそれは機能しています。どういう意味fsck in dry modeですか?私はこのコマンドを使用したことがありません...
user606521 2013年

`fsck -N <partition>`実行せず、何が行われるかを表示するだけです。
rootslash 2013年

私は質問を編集してからの出力を追加しましたfsck -N sda
user606521 2013年

2

また、サーバーFSが読み取り専用になるという同じ問題にも直面していました。inodeのチェックを行ってください。おそらく満杯かもしれません:

df -i

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.