copy-on-write files

Steve French smfrench at gmail.com
Mon May 11 18:25:23 GMT 2009


On Mon, May 11, 2009 at 12:53 PM, Joel Becker <Joel.Becker at oracle.com> wrote:
> On Mon, May 11, 2009 at 12:08:17PM -0500, Steve French wrote:
>> Joel,
>> Looking at your documentation for the new "reflink" syscall (to create
>> copy-on-write files):
>> http://git.kernel.org/?p=linux/kernel/git/jlbec/ocfs2.git;a=blob;f=Documentation/filesystems/reflink.txt;h=58a6b3879114c0cb591fb736152b30291037edd2;hb=c04db1c934e67337318b177688c0b882297fdd66
>>
>> Have you looked at whether this is close enough to the existing (e.g.
>> Windows NTFS) copy-on-write syntax/feature so that we could use it
>> under Samba (and on the client side from cifs and in the future smb2).
>>   Windows added copy-on-write about 9 or 10 years ago and uses it
>> extensively. although I have not researched enough to see what
>> creating these would look like over the network.
>
>        I didn't know NTFS had it

There are lots of references to the various services that use copy on write
(e.g. the "Groveler" service, which I first noticed back in Windows 2000
copy-on-write linking remote windows install images, which can be quite big,
apparently saving enormous amounts of disk space, and also the "SIS" or
"Single Instance Store" service which is an optional component of Windows
servers, and I saw a reference to Vista using the same NTFS
copy-on-write feature
for some form of backup/snapshot) but this would be a better question
for a Windows programmer not a Linux kernel developer :)

copy-on-write links seem to be represented as "reparse points" (a type of
Windows inode) with a tag "IO_REPARSE_TAG_SIS" (to distinguish it
from other special purpose inodes such as symlinks, DFS referrals and junctions)

http://msdn.microsoft.com/en-us/library/aa365511(VS.85).aspx

Apparently they can be sent over the network based on section 2.4.35 of

http://msdn.microsoft.com/en-us/library/cc232086(PROT.13).aspx
-- 
Thanks,

Steve


More information about the samba-technical mailing list