If I create a symlink inside a zfs file system and point the link to a file on a ufs file system on the same node how much space should I expect to see taken in the pool as used? Has this changed in the last few months? I know work is being done under 6516171 to make symlinks "dittoable" but I don''t think that has gone back yet. (Has it?) Thanks.
Hello Torrey, Monday, April 2, 2007, 10:44:42 PM, you wrote: TM> If I create a symlink inside a zfs file system and point the link to a TM> file on a ufs file system on the same node how much space should I TM> expect to see taken in the pool as used? Has this changed in the last TM> few months? I know work is being done under 6516171 to make symlinks TM> "dittoable" but I don''t think that has gone back yet. (Has it?) Last time I checked (few days ago) it wasn''t yet committed. Right now a sylmink should consume one dnode (320 bytes) if the name it point to is less than 67 bytes, otherwise a data block is allocated additionally to dnode (and more IOs will be needed to read it). And of course an entry in a directory is needed as for normal file. -- Best regards, Robert mailto:rmilkowski at task.gda.pl http://milek.blogspot.com
It''s hard to say precisely, but asymptotically you should see one znode & one directory entry (plus a bit of associated tree overhead) for "smaller" symlinks (56 bytes?) and an additional data block of 512 or 1024 bytes for larger symlinks. This message posted from opensolaris.org
Hi Robert, Robert Milkowski wrote On 04/02/07 17:48,:> Right now a symlink should consume one dnode (320 bytes)dnode_phys_t are actually 512 bytes: > ::sizeof dnode_phys_t sizeof (dnode_phys_t) = 0x200 > if the name it point to is less than 67 bytes, otherwise a data block is allocated> additionally to dnode (and more IOs will be needed to read it). > And of course an entry in a directory is needed as for normal file.- Right Cheers: Neil.
Hello Neil, Tuesday, April 3, 2007, 2:43:55 PM, you wrote: NP> Hi Robert, NP> Robert Milkowski wrote On 04/02/07 17:48,:>> Right now a symlink should consume one dnode (320 bytes)NP> dnode_phys_t are actually 512 bytes: Yep, right - I mistaken it with bonus buffer size which is 320B. >> ::sizeof dnode_phys_t NP> sizeof (dnode_phys_t) = 0x200 >> if the name it point to is less than 67 bytes, otherwise a data block is NP> allocated>> additionally to dnode (and more IOs will be needed to read it). >> And of course an entry in a directory is needed as for normal file.NP> - Right -- Best regards, Robert mailto:rmilkowski at task.gda.pl http://milek.blogspot.com