fio误操作与恢复服务

近期拿测试机,fio测iops,一个误操作,之后,分区不能使用,各种异常,之后,做一系列分析、处理、恢复

1,fio -filename=/dev/sdb2 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=50G -numjobs=10 -runtime=1000 -group_reporting -name=mytest

用fio做测试,但是fio这个操作,必须在/dev/sdb2这个分区,没有被mount,并且,该分区被fio测试之后,数据会有破坏。

本次测试,/dev/sdb2已经 mount了。所以fio测试完之后,发现 该分区,磁盘 使用率 100%

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        97G  3.7G   88G   5% /
/dev/sdb2        35Z   35Z     0 100% /ssd/data


2,开始,以为/ssd/data磁盘满了,dmesg,内核报 ext4文件系统error。以为是ext4 bug。因为是测试数据,/dev/sdb2数据不重要,可以 fsck -y 。所以准备 umount之后,fsck分区。所以,执行了 umount /dev/sdb2。 发现机器无法连通,怀疑机器重启了。

EXT4-fs error (device sdb2): __ext4_get_inode_loc: unable to read inode block - inode=23461898, block=1191130624
EXT4-fs error (device sdb2): __ext4_get_inode_loc: unable to read inode block - inode=23461898, block=1191130624
EXT4-fs error (device sdb2) in ext4_reserve_inode_write: IO failure
EXT4-fs error (device sdb2): __ext4_get_inode_loc: unable to read inode block - inode=23461894, block=1191130624
EXT4-fs error (device sdb2) in ext4_reserve_inode_write: IO failure
EXT4-fs error (device sdb2): __ext4_get_inode_loc: unable to read inode block - inode=23461895, block=1191130624
EXT4-fs error (device sdb2) in ext4_reserve_inode_write: IO failure
EXT4-fs error (device sdb2): __ext4_get_inode_loc: unable to read inode block - inode=23461896, block=1191130624
EXT4-fs error (device sdb2) in ext4_reserve_inode_write: IO failure
EXT4-fs error (device sdb2): __ext4_get_inode_loc: unable to read inode block - inode=23461897, block=1191130624
EXT4-fs error (device sdb2) in ext4_reserve_inode_write: IO failure
EXT4-fs error (device sdb2): __ext4_get_inode_loc: unable to read inode block - inode=23461899, block=1191130624


3,找idc,查看机器情况,发现机器重启了,重启卡在 挂载磁盘界面。正好卡在 /dev/sdb2。这也是情理之中。

4,进入单用户模式,准备执行 fsck -y /dev/sdb2。发现没效果。

5,进入单用户模式,改变策略,准备修改 /etc/fstab,把开机启动,跳过 /dev/sdb2,挂载这个分区(注释掉)。这样再重启。结果 /etc/fstab 显示只读,无法编辑修改保存。

6,继续单用户模式,ll /etc/fstab,发现是000权限,chmod u+rw /etc/fstab,修改权限,以为可以编辑保存修改 /etc/fstab,发现还是不行。

7,继续单用户模式, mount -o remount rw /   ,再编辑修改 /etc/fstab,注释掉 /dev/sdb2这个分区,这次可以了。保存后重启机器。

8,机器重启成功。因为确实跳过了 /dev/sdb2。

9,谨慎,fio好用,用fio测试过的磁盘分区,数据是破坏了。所以谨慎使用。

10,好久没折腾这种事。

猜你喜欢

转载自blog.csdn.net/longxibendi/article/details/49472925