I'm still investigating this hard link story...
Now I've got a wonderful reproducible behaviour: each incremental dump
with an odd level trashes four of eleven links and each incremental dump
with an even level restores the missing four links.
The filesystem gets rsync'ed (-aH) to an MRTG (http://www.mrtg.org/)
subdirectory tree. Some PNGs (mrtg-{l,m,r,ti}.png) have a link count of
11. In addition, there are eight inodes with a link counter of five and
21 inodes with a link counter of two.
Counting the links in the restored filesystem after level 0:
# cat hl-count.test2.0
files with link counter = 1 : 624
files with link counter = 2 : 42
files with link counter = 3 : 0
files with link counter = 4 : 0
files with link counter = 5 : 40
files with link counter = 6 : 0
files with link counter = 7 : 0
files with link counter = 8 : 0
files with link counter = 9 : 0
files with link counter = 10 : 0
files with link counter = 11 : 44
files with link counter = 12 : 0
files with link counter = 13 : 0
after having level 1 applied:
# cat hl-count.test2.1
files with link counter = 1 : 636
files with link counter = 2 : 18
files with link counter = 3 : 0
files with link counter = 4 : 0
files with link counter = 5 : 40
files with link counter = 6 : 0
files with link counter = 7 : 28
files with link counter = 8 : 0
files with link counter = 9 : 0
files with link counter = 10 : 0
files with link counter = 11 : 0
files with link counter = 12 : 0
files with link counter = 13 : 0
level 2:
# cat hl-count.test2.2
files with link counter = 1 : 615
files with link counter = 2 : 32
files with link counter = 3 : 0
files with link counter = 4 : 0
files with link counter = 5 : 40
files with link counter = 6 : 0
files with link counter = 7 : 0
files with link counter = 8 : 0
files with link counter = 9 : 0
files with link counter = 10 : 0
files with link counter = 11 : 44
files with link counter = 12 : 0
files with link counter = 13 : 0
level 3:
# cat hl-count.test2.3
files with link counter = 1 : 636
files with link counter = 2 : 18
files with link counter = 3 : 0
files with link counter = 4 : 0
files with link counter = 5 : 40
files with link counter = 6 : 0
files with link counter = 7 : 28
files with link counter = 8 : 0
files with link counter = 9 : 0
files with link counter = 10 : 0
files with link counter = 11 : 0
files with link counter = 12 : 0
files with link counter = 13 : 0
level 4:
# cat hl-count.test2.4
files with link counter = 1 : 629
files with link counter = 2 : 32
files with link counter = 3 : 0
files with link counter = 4 : 0
files with link counter = 5 : 40
files with link counter = 6 : 0
files with link counter = 7 : 0
files with link counter = 8 : 0
files with link counter = 9 : 0
files with link counter = 10 : 0
files with link counter = 11 : 44
files with link counter = 12 : 0
files with link counter = 13 : 0
I'll concentrate on the file mrtg/apollo/mrtg-l.png (inode no. 786583).
Some output from xfsrestore -r -v 4 in the different levels:
level 0:
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (new)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: restoring mrtg/ente/mrtg-l.png (786583 1)
/sbin/xfsrestore: restoring regular file ino 786583 mrtg/ente/mrtg-l.png
/sbin/xfsrestore: truncating mrtg/ente/mrtg-l.png from 0 to 538
/sbin/xfsrestore: link mrtg/ente/mrtg-l.png to mrtg/squid/mrtg-l.png
(786583 1)
/sbin/xfsrestore: linking mrtg/ente/mrtg-l.png to mrtg/squid/mrtg-l.png
/sbin/xfsrestore: link mrtg/ente/mrtg-l.png to mrtg/i12/mrtg-l.png
(786583 1)
/sbin/xfsrestore: linking mrtg/ente/mrtg-l.png to mrtg/i12/mrtg-l.png
/sbin/xfsrestore: link mrtg/ente/mrtg-l.png to mrtg/james/mrtg-l.png
(786583 1)
/sbin/xfsrestore: linking mrtg/ente/mrtg-l.png to mrtg/james/mrtg-l.png
/sbin/xfsrestore: link mrtg/ente/mrtg-l.png to mrtg/kpnqwest/mrtg-l.png
(786583 1)
/sbin/xfsrestore: linking mrtg/ente/mrtg-l.png to
mrtg/kpnqwest/mrtg-l.png
/sbin/xfsrestore: link mrtg/ente/mrtg-l.png to
mrtg/kpnqwest/194.122.243.116/mrtg-l.png (786583 1)
/sbin/xfsrestore: linking mrtg/ente/mrtg-l.png to
mrtg/kpnqwest/194.122.243.116/mrtg-l.png
/sbin/xfsrestore: link mrtg/ente/mrtg-l.png to
mrtg/kpnqwest/194.122.243.205/mrtg-l.png (786583 1)
/sbin/xfsrestore: linking mrtg/ente/mrtg-l.png to
mrtg/kpnqwest/194.122.243.205/mrtg-l.png
/sbin/xfsrestore: link mrtg/ente/mrtg-l.png to
mrtg/139.4.65.66/mrtg-l.png (786583 1)
/sbin/xfsrestore: linking mrtg/ente/mrtg-l.png to
mrtg/139.4.65.66/mrtg-l.png
/sbin/xfsrestore: link mrtg/ente/mrtg-l.png to
mrtg/kpnqwest/194.122.243.206/mrtg-l.png (786583 1)
/sbin/xfsrestore: linking mrtg/ente/mrtg-l.png to
mrtg/kpnqwest/194.122.243.206/mrtg-l.png
/sbin/xfsrestore: link mrtg/ente/mrtg-l.png to mrtg/apollo/mrtg-l.png
(786583 1)/sbin/xfsrestore: linking mrtg/ente/mrtg-l.png to
mrtg/apollo/mrtg-l.png
/sbin/xfsrestore: link mrtg/ente/mrtg-l.png to
mrtg/kpnqwest/194.122.243.98/mrtg-l.png (786583 1)
/sbin/xfsrestore: linking mrtg/ente/mrtg-l.png to
mrtg/kpnqwest/194.122.243.98/mrtg-l.png
level 1:
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: retaining (nondir)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: retaining (nondir)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: retaining (nondir)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: retaining (nondir)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: retaining (nondir)
/sbin/xfsrestore: unlink mrtg/squid/mrtg-l.png
/sbin/xfsrestore: unlink mrtg/james/mrtg-l.png
/sbin/xfsrestore: unlink mrtg/i12/mrtg-l.png
/sbin/xfsrestore: unlink mrtg/apollo/mrtg-l.png
/sbin/xfsrestore: processing hardlinks to 786583 1
/sbin/xfsrestore: skipping node 1000001f: real and ref
/sbin/xfsrestore: node 1000001f will be link src
/sbin/xfsrestore: skipping node 1000015e: real and ref
/sbin/xfsrestore: skipping node 10000175: real and ref
/sbin/xfsrestore: skipping node 100001a6: real and ref
/sbin/xfsrestore: skipping node 100001ee: real and ref
/sbin/xfsrestore: skipping node 10000208: real and ref
/sbin/xfsrestore: skipping node 100002c6: real and ref
level 2:
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: retaining (nondir)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: link nondir mrtg/ente/mrtg-l.png to
mrtg/apollo/mrtg-l.png
/sbin/xfsrestore: link nondir mrtg/ente/mrtg-l.png to
mrtg/james/mrtg-l.png
/sbin/xfsrestore: link nondir mrtg/ente/mrtg-l.png to
mrtg/i12/mrtg-l.png
/sbin/xfsrestore: link nondir mrtg/ente/mrtg-l.png to
mrtg/squid/mrtg-l.png
/sbin/xfsrestore: processing hardlinks to 786583 1
/sbin/xfsrestore: skipping node 1000001f: real and ref
/sbin/xfsrestore: node 1000001f will be link src
/sbin/xfsrestore: skipping node 1000015e: real and ref
/sbin/xfsrestore: skipping node 10000175: real and ref
/sbin/xfsrestore: skipping node 100001a6: real and ref
/sbin/xfsrestore: skipping node 100001ee: real and ref
/sbin/xfsrestore: skipping node 10000208: real and ref
/sbin/xfsrestore: skipping node 100002c6: real and ref
/sbin/xfsrestore: making node 10000229 dst: not real, refed, sel
/sbin/xfsrestore: making node 1000004c dst: not real, refed, sel
/sbin/xfsrestore: making node 100000e3 dst: not real, refed, sel
/sbin/xfsrestore: making node 1000022f dst: not real, refed, sel
/sbin/xfsrestore: link nondir mrtg/ente/mrtg-l.png to
mrtg/apollo/mrtg-l.png
/sbin/xfsrestore: link nondir mrtg/ente/mrtg-l.png to
mrtg/james/mrtg-l.png
/sbin/xfsrestore: link nondir mrtg/ente/mrtg-l.png to
mrtg/i12/mrtg-l.png
/sbin/xfsrestore: link nondir mrtg/ente/mrtg-l.png to
mrtg/squid/mrtg-l.png
level 3:
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: retaining (nondir)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: retaining (nondir)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: retaining (nondir)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: retaining (nondir)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: retaining (nondir)
/sbin/xfsrestore: unlink mrtg/squid/mrtg-l.png
/sbin/xfsrestore: unlink mrtg/james/mrtg-l.png
/sbin/xfsrestore: unlink mrtg/i12/mrtg-l.png
/sbin/xfsrestore: unlink mrtg/apollo/mrtg-l.png
/sbin/xfsrestore: processing hardlinks to 786583 1
/sbin/xfsrestore: skipping node 1000001f: real and ref
/sbin/xfsrestore: node 1000001f will be link src
/sbin/xfsrestore: skipping node 1000015e: real and ref
/sbin/xfsrestore: skipping node 10000175: real and ref
/sbin/xfsrestore: skipping node 100001a6: real and ref
/sbin/xfsrestore: skipping node 100001ee: real and ref
/sbin/xfsrestore: skipping node 10000208: real and ref
/sbin/xfsrestore: skipping node 100002c6: real and ref
level 4:
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: retaining (nondir)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: dirent mrtg-l.png 786583 1: adding (link)
/sbin/xfsrestore: link nondir mrtg/ente/mrtg-l.png to
mrtg/apollo/mrtg-l.png
/sbin/xfsrestore: link nondir mrtg/ente/mrtg-l.png to
mrtg/james/mrtg-l.png
/sbin/xfsrestore: link nondir mrtg/ente/mrtg-l.png to
mrtg/i12/mrtg-l.png
/sbin/xfsrestore: link nondir mrtg/ente/mrtg-l.png to
mrtg/squid/mrtg-l.png
/sbin/xfsrestore: processing hardlinks to 786583 1
/sbin/xfsrestore: skipping node 1000001f: real and ref
/sbin/xfsrestore: node 1000001f will be link src
/sbin/xfsrestore: skipping node 1000015e: real and ref
/sbin/xfsrestore: skipping node 10000175: real and ref
/sbin/xfsrestore: skipping node 100001a6: real and ref
/sbin/xfsrestore: skipping node 100001ee: real and ref
/sbin/xfsrestore: skipping node 10000208: real and ref
/sbin/xfsrestore: skipping node 100002c6: real and ref
/sbin/xfsrestore: making node 100000b5 dst: not real, refed, sel
/sbin/xfsrestore: making node 10000129 dst: not real, refed, sel
/sbin/xfsrestore: making node 1000011d dst: not real, refed, sel
/sbin/xfsrestore: making node 10000036 dst: not real, refed, sel
/sbin/xfsrestore: link nondir mrtg/ente/mrtg-l.png to
mrtg/apollo/mrtg-l.png
/sbin/xfsrestore: link nondir mrtg/ente/mrtg-l.png to
mrtg/james/mrtg-l.png
/sbin/xfsrestore: link nondir mrtg/ente/mrtg-l.png to
mrtg/i12/mrtg-l.png
/sbin/xfsrestore: link nondir mrtg/ente/mrtg-l.png to
mrtg/squid/mrtg-l.png
|