Linux CentOS:服务器抛出怪异的错误信息,你可以推测为什么?

我公司有一台服务器,它是生产环境的一部分。 在服务器上运行一个ActiveMQ服务器。 我login到Active-MQ UI并尝试创build一个新的队列。 当我这样做的时候,我收到了这个消息:

HTTP ERROR: 500 /workspace/development/org/apache/activemq/5.1.0/data/kr-store/data/data-container-roots-2 (Read-only file system) RequestURI=/admin/createDestination.action Caused by: java.io.FileNotFoundException: /workspace/development/org/apache/activemq/5.1.0/data/kr-store/data/data-container-roots-2 (Read-only file system) at java.io.RandomAccessFile.open(Native Method) at java.io.RandomAccessFile.(RandomAccessFile.java:212) at org.apache.activemq.kaha.impl.data.DataFile.getRandomAccessFile(DataFile.java:51) at org.apache.activemq.kaha.impl.data.SyncDataFileWriter.storeItem(SyncDataFileWriter.java:71) 

我知道“文件未find”的消息,但它似乎不直接关系到这个问题。

为了解决这个问题,我login到服务器并运行了一些testing,在这些testing中,我发现一些基本的命令,我试图运行失败,同样的错误:

 [root@ctrl3 kr-store]# touch 1 touch: cannot touch `1': Read-only file system [root@ctrl3 /]# chgrp users /workspace chgrp: changing group of `/workspace': Read-only file system [root@ctrl3 kr-store]# chown peeradmin.users /workspace chown: changing ownership of `/workspace': Read-only file system [root@ctrl3 kr-store]# ls -ld data drwxrwxr-x 2 peeradmin users 4096 AUG 12 12:27 data [root@ctrl3 kr-store]# chmod o+w data/ chmod: changing permissions of `data/': Read-only file system 

如果我没有记错的话,最后一次遇到这样的错误,我们后来发现磁盘出现I / O问题,但如果情况并非如此,还有什么可能呢?

编辑#1:

 [root@ctrl3 kr-store]# cat /proc/mounts rootfs / rootfs rw 0 0 /dev/root / ext3 ro,data=ordered 0 0 /dev /dev tmpfs rw 0 0 /proc /proc proc rw 0 0 /sys /sys sysfs rw 0 0 /proc/bus/usb /proc/bus/usb usbfs rw 0 0 devpts /dev/pts devpts rw 0 0 /dev/sda7 /tmp ext3 rw,data=ordered 0 0 /dev/VolGroup00/LogVol00 /workspace ext3 ro,data=ordered 0 0 /dev/sda5 /usr ext3 rw,data=ordered 0 0 /dev/sda3 /var ext3 rw,data=ordered 0 0 /dev/sda1 /boot ext3 rw,data=ordered 0 0 tmpfs /dev/shm tmpfs rw 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0 sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0 /etc/auto.misc /misc autofs rw,fd=7,pgrp=3795,timeout=300,minproto=5,maxproto=5,indirect 0 0 -hosts /net autofs rw,fd=13,pgrp=3795,timeout=300,minproto=5,maxproto=5,indirect 0 0 atlas.sj.company.com:/volumes/atlas_vol/NFS1 /nfs1 nfs rw,noatime,vers=3,rsize=32768,wsize=32768,soft,intr,proto=tcp,timeo=600,retrans=2,sec=sys,addr=atlas.sj.company.com 0 0 atlas.sj.company.com:/volumes/atlas_vol/NFS1/NIS/home /home nfs rw,noatime,vers=3,rsize=32768,wsize=32768,soft,intr,proto=tcp,timeo=600,retrans=2,sec=sys,addr=atlas.sj.company.com 0 0 atlas.sj.company.com:/volumes/atlas_vol/NFS1 /nfs1 nfs rw,noatime,vers=3,rsize=1048576,wsize=1048576,hard,intr,proto=tcp,timeo=600,retrans=2,sec=sys,addr=atlas.sj.company.com 0 0 atlas.sj.company.com:/volumes/atlas_vol/NFS1/NIS/home /home nfs rw,noatime,vers=3,rsize=1048576,wsize=1048576,hard,intr,proto=tcp,timeo=600,retrans=2,sec=sys,addr=atlas.sj.company.com 0 0 

史文:日志没有说什么:

 [root@ctrl3 kr-store]# cat /var/log/messages |grep -v [xinetd\|snmpd] [root@ctrl3 kr-store]# 

另外,如果没有东西可以写入磁盘,那么我猜测日志也不能更新。

编辑#2:因此,似乎文件系统已经损坏了不知何故…我是对的?

 SCSI device sdb: 1953525168 512-byte hdwr sectors (1000205 MB) sdb: Write Protect is off sdb: Mode Sense: 00 3a 00 00 SCSI device sdb: drive cache: write back ext3_abort called. EXT3-fs error (device dm-0): ext3_journal_start_sb: Detected aborted journal Remounting filesystem read-only sd 1:0:0:0: SCSI error: return code = 0x06000000 end_request: I/O error, dev sdb, sector 745962211 printk: 215 messages suppressed. Buffer I/O error on device dm-0, logical block 51773423 lost page write due to I/O error on dm-0 Buffer I/O error on device dm-0, logical block 51773424 lost page write due to I/O error on dm-0 Buffer I/O error on device dm-0, logical block 51773425 lost page write due to I/O error on dm-0 

提前致谢,

您的文件系统似乎以只读方式挂载。 你可以通过cat /proc/mounts来检查。 重新安装文件系统是只读的,通常是由文件系统错误引起的。 原因可能是硬盘问题,所以您应该检查您的磁盘(SMART值,HW RAID等情况下的控制器状态)

编辑#1:你的坐骑表明它确实挂载了只读:

 /dev/VolGroup00/LogVol00 /workspace ext3 ro,data=ordered 0 0 

你可以尝试的是重新安装卷作为可写再次,但我不会推荐这之前,你发现为什么它被重新安装只读之前,否则你将冒险丢失数据:

 mount -o remount,rw /workspace 

您应该首先检查dmesg的输出,并通过smartctl检查您的smartctl智能状态。

编辑#2:

看起来像sdb是这里的物理问题:

 end_request: I/O error, dev sdb, sector 745962211 

检查输出

 smartctl -a /dev/sdb