[LSF/Filesystems][ATTEND]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Requesting Attendance:

Trond Myklebust, James Lentini and Anshul Madan


Proposal:

We propose to discuss the design and implementation issues involved in 
introducing a new copy() system call into the Linux kernel. The goal 
of this session would be to determine the required functionality and 
obtain a general consensus on the necessary VFS interface changes. We 
believe that the LSF Summit offers a unique opportunity to discuss 
this topic and gain consensus with developers from several different 
file system communities.

We are implementing the NFS copy offload operations and associated 
system call(s). We would contribute to the discussions on API 
capabilities, design issues, and other VFS issues. We would provide 
insights into different design trade-offs in the VFS layer, and also 
report on the progress of our implementation.  


Keywords: File systems


Background:

There is an emerging trend for file systems to support intelligent 
copies. OCFS2 supports intelligent copies via a reflink ioctl(2). At 
the same time, a proposal has been made for the NFS protocol to 
support intelligent copy operations, see IETF draft 
draft-lentini-nfsv4-server-side-copy. We expect other file systems to 
add support for intelligent copy capabilities in the future. To take 
full advantage of these capabilities, the Linux kernel's system call 
interface must be expanded to allow userspace applications to use this 
feature in a uniform way.

This topic has been discussed both on Linux development mailing lists 
[1] and at previous LSF summits. Joel Becker originally proposed a 
syscall called reflink() that was specific to copying an inode to a 
copy-on-write snapshot. Since then, the need for a generic copy 
interface  that encompassed the reflink semantics as well as less 
restrictive ones has been recognized based on discussion between Linus 
Torvalds and Joel.


Motivation:

Intelligent copies have performance advantages over a traditional 
read/write copy. 

With data deduplication, fragments of data can be shared between 
files. Thus using conventional syscalls like read() and write() for 
doing a copy may lead to the unnecessary data transfers to and from 
the file system. Using a copy() syscall, the file system can make use 
of it's intelligence and thus avoid unnecessary data transfers.

The IT trend toward virtualization via hypervisors has created an 
emerging use case to copy a virtual disk over NFS. The use of a copy 
operation will save network bandwidth on the client and server, and 
intra-server file copy has the potential to avoid all physical data 
copies, if the file system is deduplicated as described above. 
Implementing a VFS inode operation which has a generic interface 
applicable to all types of file systems would allow applications to 
access this functionality in a uniform way. The VFS copy() inode 
operation and corresponding interface should encompass the semantics 
of various file system copy() implementations, such as support for 
asynchronous copies, copy status, and copy abort calls.

---

[1] Relevant posts:

http://www.mail-archive.com/ocfs2-devel@xxxxxxxxxxxxxx/msg04347.html
http://www.mail-archive.com/ocfs2-devel@xxxxxxxxxxxxxx/msg04395.html
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux