We are running CentOS 6.4 on VMWare ESXi 5.1.0. On our platform we encoutered a corrupt filesystem after resizing the filesystem. e2fsck -f said that the filesystem itself is fine. It is only that the content of some of the files had changed. To be precise they became empty or contained "NULL"-Values.<br />
The Problem occured while using ext4 filesystems. We where not able to reconstruct the error using ext3 filesystems. Using ext3 everything looked fine.<br />
<br />
We were able to reproduce the errors using the following Testcase:<br />
1. Create new primary Partition with whole Disk Size <br />
fdisk /dev/sdb<br />
partx -la /dev/sdb<br />
lvm pvcreate /dev/sdb1<br />
lvm vgcreate vg_vg02 /dev/sdb1<br />
lvm lvcreate --name lvtest --size 1m vg_vg02<br />
lvm lvresize /dev/vg_vg02/lvtest /dev/sdb1<br />
mkfs /dev/vg_vg02/lvtest<br />
tune2fs -c 0 -i 0 /dev/vg_vg02/lvtest<br />
<br />
2. Mount the device to /mnt/test, no specific options at all<br />
/dev/vg_vg02/lvtest /mnt/test ext4 defaults 1 1<br />
cd /mnt/test<br />
<br />
3. Create Testfiles<br />
for i in ` seq 1 20` ; do dd if=/dev/urandom of=test_preresize$i bs=1M count=20; done<br />
--> See ls outputfile: ls_preresize.txt<br />
<br />
4.Resizing the Disk <br />
--> Double the size in VMWare<br />
echo 1 >/sys/block/sdb/device/rescan<br />
fdisk /dev/sdb<br />
<br />
5. Create new primary Partition with entire free disk space<br />
partx -la /dev/sdb<br />
lvm pvcreate /dev/sdb2<br />
lvm vgextend vg_vg02 /dev/sdb2<br />
lvm lvresize /dev/vg_vg02/lvtest /dev/sdb2<br />
resize2fs /dev/vg_vg02/lvtest<br />
<br />
6. Create more Testfiles <br />
for i in ` seq 1 20` ; do dd if=/dev/urandom of=test_postresize$i bs=1M count=20; done<br />
Everything seems legit, see ls outputfile: ls_postresize_preremount.txt<br />
umount<br />
mount<br />
--> Now there are files with 0 Size which had a size > 0<br />
--> See ls outputfile: ls_postresize_postremount.txt
↧