Details
-
Bug
-
Resolution: Not a Bug
-
Minor
-
None
-
Lustre 2.10.4
-
None
-
RHEL 7.5, kernel 3.10.0-862.11.6.el7.x86_64
Seen with 2.10.4 and master (325e23899aa38de32ec00b19ed675bcc64c6e5c8)
ldiskfs MDTs.
-
3
-
9223372036854775807
Description
When moving files that are on MDT0 to a directory residing on MDT1, the corresponding inodes on MDT are not deallocated.
Here is what I see:
[root@lustre211cli test]# for file in {1..999}; do echo $file > $file; done [root@lustre211cli test]# lfs df -i UUID Inodes IUsed IFree IUse% Mounted on test-MDT0000_UUID 419432 1262 418170 1% /test[MDT:0] test-MDT0001_UUID 419432 248 419184 1% /test[MDT:1] test-OST0000_UUID 737280 1389 735891 0% /test[OST:0] filesystem_summary: 737401 1510 735891 0% /test [root@lustre211cli test]# lfs mkdir -i 1 dir2 [root@lustre211cli test]# mv {1..999} dir2/ [root@lustre211cli test]# lfs df -i UUID Inodes IUsed IFree IUse% Mounted on test-MDT0000_UUID 419432 1265 418167 1% /test[MDT:0] test-MDT0001_UUID 419432 1249 418183 1% /test[MDT:1] test-OST0000_UUID 737280 1389 735891 0% /test[OST:0] filesystem_summary: 738405 2514 735891 0% /test [root@lustre211cli test]# ls dir1 dir2 [root@lustre211cli test]# ls dir1 [root@lustre211cli test]# sync [root@lustre211cli test]# echo 3 > /proc/sys/vm/drop_caches [root@lustre211cli test]# lfs df -i UUID Inodes IUsed IFree IUse% Mounted on test-MDT0000_UUID 419432 1265 418167 1% /test[MDT:0] test-MDT0001_UUID 419432 1249 418183 1% /test[MDT:1] test-OST0000_UUID 737280 1389 735891 0% /test[OST:0] filesystem_summary: 738405 2514 735891 0% /test
The inodes used on MDT0 never decrease, even after umount/mount or by umounting the MDT from the MDS.
When performing an e2fsck (1.42.13.wc5) on MDT0, the behaviour changes between 2.10.4 and 2.11.54:
- With 2.10.4, e2fsck will find as many unattached inodes as there were files moved
- With 2.11.54, e2fsck will not find anything
I attach the complete debug logs from the client and server taken during this manipulation.