Linux (CentOS)運用時のメモ : 突然WEBにアクセス出来なくなった。(ファイルシステムがおかしくなった)
ある時、WEBにアクセスできない。調べるとmysqlが動いていない。
スタートしようにも
# service mysqld start
chown: `/webdata/mysql' の所有権を変更中: 読み込み専用ファイルシステムです
chmod: changing permissions of `/webdata/mysql': 読み込み専用ファイルシステムです
MySQL Daemon failed to start. mysqld を起動中: [失敗]
調べてもオーナーは mysql になっているし、オーナーの書き込みが可能になっているのに??
google先生に聞くと、ここに回答があった
ここによると、selinuxが有効になっているか、ファイルシステムが壊れかけているか、ファイルシステム上で食い違いが起きているかだそうです。なので
# /bin/dmesg
で確認してみると
EXT4-fs error (device vdd): ext4_mb_generate_buddy: EXT4-fs: group 144: 14340 blocks in bitmap,
14339 in gd JBD: Spotted dirty metadata buffer (dev = vdd, blocknr = 0).
There's a risk of filesystem corruption in case of system crash.
EXT4-fs warning (device vdd): empty_dir: bad directory (dir #393217) - no `.' or `..'
EXT4-fs warning (device vdd): empty_dir: bad directory (dir #393219) - no `.' or `..'
JBD2 unexpected failure: jbd2_journal_revoke: !buffer_revoked(bh);
inconsistent data on disk
ext4_forget: aborting transaction: IO failure in __ext4_journal_revoke
EXT4-fs error (device vdd): ext4_forget: error -5 when attempting revoke
EXT4-fs (vdd): Remounting filesystem read-only
Aborting journal on device vdd-8.
EXT4-fs error (device vdd) in ext4_free_blocks: Journal has aborted
EXT4-fs error (device vdd) in ext4_reserve_inode_write: Journal has aborted
EXT4-fs error (device vdd) in ext4_reserve_inode_write: Journal has aborted
EXT4-fs error (device vdd) in ext4_ext_remove_space: IO failure
EXT4-fs error (device vdd) in ext4_reserve_inode_write: Journal has aborted
EXT4-fs error (device vdd) in ext4_ext_truncate: IO failure
EXT4-fs error (device vdd) in ext4_reserve_inode_write: Journal has aborted
EXT4-fs error (device vdd) in ext4_orphan_del: Journal has aborted
EXT4-fs error (device vdd) in ext4_reserve_inode_write: Journal has aborted
EXT4-fs error (device vdd) in ext4_delete_inode: IO failure
EXT4-fs error (device vdd): ext4_lookup: deleted inode referenced: 1191615
私はここにはSSDを使っているので、HDDほどには故障しないと思い、思い切ってフォーマットし直して、バックアップしていたデーターで、復旧する事にした。
まずはこのサーバーを止め(kvmのサブホストで動いている)。該当する領域をフォーマットしなおして、バックアップデーターからリストアし、無事復旧した。
追記:コピー後 mysql が走らなかった。調べると
# chkconfig --list mysqld
サービス mysqld は chkconfig をサポートしますが実行レベルで参照されていません (run 'chkconfig --add mysqld')
と出たので
# chkconfig --add mysqld
とやって、
# service mysqld start
やっとOKになり、無事WEBにもアクセス出来た。
投稿された内容の著作権はコメントの投稿者に帰属します。