Based on kernel version 2.6.34. Page generated on 2010-05-31 16:02 EST.
1 v9fs: Plan 9 Resource Sharing for Linux 2 ======================================= 3 4 ABOUT 5 ===== 6 7 v9fs is a Unix implementation of the Plan 9 9p remote filesystem protocol. 8 9 This software was originally developed by Ron Minnich <rminnich[AT]sandia[DOT]gov> 10 and Maya Gokhale. Additional development by Greg Watson 11 <gwatson[AT]lanl[DOT]gov> and most recently Eric Van Hensbergen 12 <ericvh[AT]gmail.com>, Latchesar Ionkov <lucho@ionkov[DOT]net> and Russ Cox 13 <rsc[AT]swtch.com>[DOT] 14 15 The best detailed explanation of the Linux implementation and applications of 16 the 9p client is available in the form of a USENIX paper: 17 http://www.usenix.org/events/usenix05/tech/freenix/hensbergen.html 18 19 Other applications are described in the following papers: 20 * XCPU & Clustering 21 http://xcpu.org/papers/xcpu-talk.pdf 22 * KVMFS: control file system for KVM 23 http://xcpu.org/papers/kvmfs.pdf 24 * CellFS: A New Programming Model for the Cell BE 25 http://xcpu.org/papers/cellfs-talk.pdf 26 * PROSE I/O: Using 9p to enable Application Partitions 27 http://plan9.escet.urjc.es/iwp9/cready/PROSE_iwp9_2006.pdf 28 29 USAGE 30 ===== 31 32 For remote file server: 33 34 mount -t 9p 10.10.1.2 /mnt/9 35 36 For Plan 9 From User Space applications (http://swtch.com/plan9) 37 38 mount -t 9p `namespace`/acme /mnt/9 -o trans=unix,uname=$USER 39 40 For server running on QEMU host with virtio transport: 41 42 mount -t 9p -o trans=virtio <mount_tag> /mnt/9 43 44 where mount_tag is the tag associated by the server to each of the exported 45 mount points. Each 9P export is seen by the client as a virtio device with an 46 associated "mount_tag" property. Available mount tags can be 47 seen by reading /sys/bus/virtio/drivers/9pnet_virtio/virtio<n>/mount_tag files. 48 49 OPTIONS 50 ======= 51 52 trans=name select an alternative transport. Valid options are 53 currently: 54 unix - specifying a named pipe mount point 55 tcp - specifying a normal TCP/IP connection 56 fd - used passed file descriptors for connection 57 (see rfdno and wfdno) 58 virtio - connect to the next virtio channel available 59 (from QEMU with trans_virtio module) 60 rdma - connect to a specified RDMA channel 61 62 uname=name user name to attempt mount as on the remote server. The 63 server may override or ignore this value. Certain user 64 names may require authentication. 65 66 aname=name aname specifies the file tree to access when the server is 67 offering several exported file systems. 68 69 cache=mode specifies a caching policy. By default, no caches are used. 70 loose = no attempts are made at consistency, 71 intended for exclusive, read-only mounts 72 fscache = use FS-Cache for a persistent, read-only 73 cache backend. 74 75 debug=n specifies debug level. The debug level is a bitmask. 76 0x01 = display verbose error messages 77 0x02 = developer debug (DEBUG_CURRENT) 78 0x04 = display 9p trace 79 0x08 = display VFS trace 80 0x10 = display Marshalling debug 81 0x20 = display RPC debug 82 0x40 = display transport debug 83 0x80 = display allocation debug 84 0x100 = display protocol message debug 85 0x200 = display Fid debug 86 0x400 = display packet debug 87 0x800 = display fscache tracing debug 88 89 rfdno=n the file descriptor for reading with trans=fd 90 91 wfdno=n the file descriptor for writing with trans=fd 92 93 maxdata=n the number of bytes to use for 9p packet payload (msize) 94 95 port=n port to connect to on the remote server 96 97 noextend force legacy mode (no 9p2000.u or 9p2000.L semantics) 98 99 version=name Select 9P protocol version. Valid options are: 100 9p2000 - Legacy mode (same as noextend) 101 9p2000.u - Use 9P2000.u protocol 102 9p2000.L - Use 9P2000.L protocol 103 104 dfltuid attempt to mount as a particular uid 105 106 dfltgid attempt to mount with a particular gid 107 108 afid security channel - used by Plan 9 authentication protocols 109 110 nodevmap do not map special files - represent them as normal files. 111 This can be used to share devices/named pipes/sockets between 112 hosts. This functionality will be expanded in later versions. 113 114 access there are three access modes. 115 user = if a user tries to access a file on v9fs 116 filesystem for the first time, v9fs sends an 117 attach command (Tattach) for that user. 118 This is the default mode. 119 <uid> = allows only user with uid=<uid> to access 120 the files on the mounted filesystem 121 any = v9fs does single attach and performs all 122 operations as one user 123 124 cachetag cache tag to use the specified persistent cache. 125 cache tags for existing cache sessions can be listed at 126 /sys/fs/9p/caches. (applies only to cache=fscache) 127 128 RESOURCES 129 ========= 130 131 Our current recommendation is to use Inferno (http://www.vitanuova.com/inferno) 132 as the 9p server. You can start a 9p server under Inferno by issuing the 133 following command: 134 ; styxlisten -A tcp!*!564 export '#U*' 135 136 The -A specifies an unauthenticated export. The 564 is the port # (you may 137 have to choose a higher port number if running as a normal user). The '#U*' 138 specifies exporting the root of the Linux name space. You may specify a 139 subset of the namespace by extending the path: '#U*'/tmp would just export 140 /tmp. For more information, see the Inferno manual pages covering styxlisten 141 and export. 142 143 A Linux version of the 9p server is now maintained under the npfs project 144 on sourceforge (http://sourceforge.net/projects/npfs). The currently 145 maintained version is the single-threaded version of the server (named spfs) 146 available from the same SVN repository. 147 148 There are user and developer mailing lists available through the v9fs project 149 on sourceforge (http://sourceforge.net/projects/v9fs). 150 151 A stand-alone version of the module (which should build for any 2.6 kernel) 152 is available via (http://github.com/ericvh/9p-sac/tree/master) 153 154 News and other information is maintained on SWiK (http://swik.net/v9fs) 155 and the Wiki (http://sf.net/apps/mediawiki/v9fs/index.php). 156 157 Bug reports may be issued through the kernel.org bugzilla 158 (http://bugzilla.kernel.org) 159 160 For more information on the Plan 9 Operating System check out 161 http://plan9.bell-labs.com/plan9 162 163 For information on Plan 9 from User Space (Plan 9 applications and libraries 164 ported to Linux/BSD/OSX/etc) check out http://swtch.com/plan9 165 166 167 STATUS 168 ====== 169 170 The 2.6 kernel support is working on PPC and x86. 171 172 PLEASE USE THE KERNEL BUGZILLA TO REPORT PROBLEMS. (http://bugzilla.kernel.org)