I was just refreshing my knowledge about filesystems... In FreeBSD it is definately easier to investigate fs behavior. You can just do a hexdump of a directory. In Solaris and Linux this does not work. Hexdump of zfs directory is not very interesting. However, in ufs dump we can see that deleted files persist in directory listing:
# zfs create -V 1G zpool/zvol1
# newfs /dev/zvol/zpool/zvol1
# mkdir test
# mount /dev/zvol/zpool/zvol1 `pwd`/test
# cd test
# mkdir 99
# cd 99
# touch a b c d e
# hd .
00000000 00 14 01 00 0c 00 04 01 2e 00 00 00 02 00 00 00 |................|
00000010 0c 00 04 02 2e 2e 00 00 01 14 01 00 0c 00 08 01 |................|
00000020 61 00 05 9e 02 14 01 00 0c 00 08 01 62 00 05 9e |a...........b...|
00000030 03 14 01 00 0c 00 08 01 63 00 05 9e 04 14 01 00 |........c.......|
00000040 0c 00 08 01 64 00 05 9e 05 14 01 00 b8 01 08 01 |....d...........|
00000050 65 00 05 9e 00 00 00 00 00 00 00 00 00 00 00 00 |e...............|
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200
Now, after removing some files we can see that corresponding records still exist in directory:
# rm e d a
# hd .
00000000 00 14 01 00 0c 00 04 01 2e 00 00 00 02 00 00 00 |................|
00000010 18 00 04 02 2e 2e 00 00 01 14 01 00 0c 00 08 01 |................|
00000020 61 00 05 9e 02 14 01 00 0c 00 08 01 62 00 05 9e |a...........b...|
00000030 03 14 01 00 d0 01 08 01 63 00 05 9e 04 14 01 00 |........c.......|
00000040 c4 01 08 01 64 00 05 9e 05 14 01 00 b8 01 08 01 |....d...........|
00000050 65 00 05 9e 00 00 00 00 00 00 00 00 00 00 00 00 |e...............|
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200
# ls
b c
If we add some files, we can see that deleted record is used again:
# touch f
# hd .
00000000 00 14 01 00 0c 00 04 01 2e 00 00 00 02 00 00 00 |................|
00000010 0c 00 04 02 2e 2e 00 00 01 14 01 00 0c 00 08 01 |................|
00000020 66 00 e9 05 02 14 01 00 0c 00 08 01 62 00 05 9e |f...........b...|
00000030 03 14 01 00 d0 01 08 01 63 00 05 9e 04 14 01 00 |........c.......|
00000040 c4 01 08 01 64 00 05 9e 05 14 01 00 b8 01 08 01 |....d...........|
00000050 65 00 05 9e 00 00 00 00 00 00 00 00 00 00 00 00 |e...............|
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200
Комментариев нет:
Отправить комментарий