我有一台运行 ubuntu LTS 的虚拟机,文件系统为 ext4。我们遇到了与 IO 任务相关的性能问题。我使用以下命令检查了文件系统:
fsck.ext4 -nv /dev/sda1 e2fsck 1.41.11(2010 年 3 月 14 日)
警告!/dev/sda1 已挂载。
警告:由于正在进行只读文件系统检查,因此跳过日志恢复。
/dev/sda1 包含一个有错误的文件系统,强制检查。
第 1 阶段:检查 inode、块和大小
第二步:检查目录结构
/var/lib/postgresql/8.4/main/pg_stat_tmp (4721210) 中的条目“pgstat.stat”已删除/未使用的 inode 4732417。清除?否
第三步:检查目录连通性
第四步:检查引用计数
未连接的零长度 inode 2127051。清除吗?否
未连接的 inode 2127051
是否连接到 /lost+found?否
未连接的 inode 4757639
是否连接到 /lost+found?否
第五步:检查组摘要信息
块位图差异: -(1977109--1977118) -5190038 -7050074 -8435151 +8435477 -11906565 -(12532266--12532267) +13664464 +13664508 -13665161 +(13667660--13667674) -(13667675--13667729) -13669860 +(13671792--13671831) -(15571824--15571832) -(15582843--15582846) -16292177 -(16711922--16711928) -19144303 +19689076 -(22516788--22517441) -22635570 -(22974110--22974111) -(23736402--23736403) +(23956398--23957051) -24092764 -24832492
修复?否
当机器仍在运行(-n)时,它报告了几个故障,所以我们打电话给虚拟机的主机,让他关闭它,并对未安装的磁盘进行 fsck。主机说 fsck 没有报告任何 FS 错误,他附上了一张截图。
当虚拟机再次启动时,我重复了 fsck 并得到了相同的结果。
由于文件系统仍然处于挂载状态并且有点“不一致”,结果是否会有所不同?
答案1
答案是肯定的。fsck 假定磁盘未安装且未发生任何变化,并且它对该磁盘具有完全的控制权。
fsck 使用了几遍,这些遍互相影响,由于磁盘一直在变化,所以很可能会记录下错误的信息。
我很好奇,通过对活动磁盘进行 fsck,您觉得可以获得什么信息?
答案2
您可以使用免费的热复制实用程序快照和fsck
已挂载的文件系统,看看它是否真的需要修复。你应该不是 fsck
按照您的方式安装的系统。
hcp --skip-mount /dev/sda1
fsck -a -y /dev/hcp1
我猜你根本不需要修理。然而,有很多问题可能会导致 I/O 不佳,包括内核调度算法到磁盘故障缺乏优质的 RAID 控制器写缓存。
您能提供有关您的设置的更多信息吗?