web-dev-qa-db-ja.com

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

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も同様です。

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

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 
9
user606521
[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モードにドロップしています。基礎となるハードウェアとの通信に問題があるため、roモードにドロップしています。

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

8
MadHatter

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

2
rootslash

私も同じ問題に直面していました。サーバーFSが読み取り専用になりました。inodeを確認してください。おそらく満杯の可能性があります。

df -i

1
dannydsouza0908