9p.txt 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. v9fs: Plan 9 Resource Sharing for Linux
  2. =======================================
  3. ABOUT
  4. =====
  5. v9fs is a Unix implementation of the Plan 9 9p remote filesystem protocol.
  6. This software was originally developed by Ron Minnich <rminnich@sandia.gov>
  7. and Maya Gokhale. Additional development by Greg Watson
  8. <gwatson@lanl.gov> and most recently Eric Van Hensbergen
  9. <ericvh@gmail.com>, Latchesar Ionkov <lucho@ionkov.net> and Russ Cox
  10. <rsc@swtch.com>.
  11. The best detailed explanation of the Linux implementation and applications of
  12. the 9p client is available in the form of a USENIX paper:
  13. http://www.usenix.org/events/usenix05/tech/freenix/hensbergen.html
  14. Other applications are described in the following papers:
  15. * XCPU & Clustering
  16. http://xcpu.org/papers/xcpu-talk.pdf
  17. * KVMFS: control file system for KVM
  18. http://xcpu.org/papers/kvmfs.pdf
  19. * CellFS: A New Programming Model for the Cell BE
  20. http://xcpu.org/papers/cellfs-talk.pdf
  21. * PROSE I/O: Using 9p to enable Application Partitions
  22. http://plan9.escet.urjc.es/iwp9/cready/PROSE_iwp9_2006.pdf
  23. * VirtFS: A Virtualization Aware File System pass-through
  24. http://goo.gl/3WPDg
  25. USAGE
  26. =====
  27. For remote file server:
  28. mount -t 9p 10.10.1.2 /mnt/9
  29. For Plan 9 From User Space applications (http://swtch.com/plan9)
  30. mount -t 9p `namespace`/acme /mnt/9 -o trans=unix,uname=$USER
  31. For server running on QEMU host with virtio transport:
  32. mount -t 9p -o trans=virtio <mount_tag> /mnt/9
  33. where mount_tag is the tag associated by the server to each of the exported
  34. mount points. Each 9P export is seen by the client as a virtio device with an
  35. associated "mount_tag" property. Available mount tags can be
  36. seen by reading /sys/bus/virtio/drivers/9pnet_virtio/virtio<n>/mount_tag files.
  37. OPTIONS
  38. =======
  39. trans=name select an alternative transport. Valid options are
  40. currently:
  41. unix - specifying a named pipe mount point
  42. tcp - specifying a normal TCP/IP connection
  43. fd - used passed file descriptors for connection
  44. (see rfdno and wfdno)
  45. virtio - connect to the next virtio channel available
  46. (from QEMU with trans_virtio module)
  47. rdma - connect to a specified RDMA channel
  48. uname=name user name to attempt mount as on the remote server. The
  49. server may override or ignore this value. Certain user
  50. names may require authentication.
  51. aname=name aname specifies the file tree to access when the server is
  52. offering several exported file systems.
  53. cache=mode specifies a caching policy. By default, no caches are used.
  54. loose = no attempts are made at consistency,
  55. intended for exclusive, read-only mounts
  56. fscache = use FS-Cache for a persistent, read-only
  57. cache backend.
  58. debug=n specifies debug level. The debug level is a bitmask.
  59. 0x01 = display verbose error messages
  60. 0x02 = developer debug (DEBUG_CURRENT)
  61. 0x04 = display 9p trace
  62. 0x08 = display VFS trace
  63. 0x10 = display Marshalling debug
  64. 0x20 = display RPC debug
  65. 0x40 = display transport debug
  66. 0x80 = display allocation debug
  67. 0x100 = display protocol message debug
  68. 0x200 = display Fid debug
  69. 0x400 = display packet debug
  70. 0x800 = display fscache tracing debug
  71. rfdno=n the file descriptor for reading with trans=fd
  72. wfdno=n the file descriptor for writing with trans=fd
  73. msize=n the number of bytes to use for 9p packet payload
  74. port=n port to connect to on the remote server
  75. noextend force legacy mode (no 9p2000.u or 9p2000.L semantics)
  76. version=name Select 9P protocol version. Valid options are:
  77. 9p2000 - Legacy mode (same as noextend)
  78. 9p2000.u - Use 9P2000.u protocol
  79. 9p2000.L - Use 9P2000.L protocol
  80. dfltuid attempt to mount as a particular uid
  81. dfltgid attempt to mount with a particular gid
  82. afid security channel - used by Plan 9 authentication protocols
  83. nodevmap do not map special files - represent them as normal files.
  84. This can be used to share devices/named pipes/sockets between
  85. hosts. This functionality will be expanded in later versions.
  86. access there are four access modes.
  87. user = if a user tries to access a file on v9fs
  88. filesystem for the first time, v9fs sends an
  89. attach command (Tattach) for that user.
  90. This is the default mode.
  91. <uid> = allows only user with uid=<uid> to access
  92. the files on the mounted filesystem
  93. any = v9fs does single attach and performs all
  94. operations as one user
  95. client = ACL based access check on the 9p client
  96. side for access validation
  97. cachetag cache tag to use the specified persistent cache.
  98. cache tags for existing cache sessions can be listed at
  99. /sys/fs/9p/caches. (applies only to cache=fscache)
  100. RESOURCES
  101. =========
  102. Protocol specifications are maintained on github:
  103. http://ericvh.github.com/9p-rfc/
  104. 9p client and server implementations are listed on
  105. http://9p.cat-v.org/implementations
  106. A 9p2000.L server is being developed by LLNL and can be found
  107. at http://code.google.com/p/diod/
  108. There are user and developer mailing lists available through the v9fs project
  109. on sourceforge (http://sourceforge.net/projects/v9fs).
  110. News and other information is maintained on a Wiki.
  111. (http://sf.net/apps/mediawiki/v9fs/index.php).
  112. Bug reports may be issued through the kernel.org bugzilla
  113. (http://bugzilla.kernel.org)
  114. For more information on the Plan 9 Operating System check out
  115. http://plan9.bell-labs.com/plan9
  116. For information on Plan 9 from User Space (Plan 9 applications and libraries
  117. ported to Linux/BSD/OSX/etc) check out http://swtch.com/plan9
  118. STATUS
  119. ======
  120. The 2.6 kernel support is working on PPC and x86.
  121. PLEASE USE THE KERNEL BUGZILLA TO REPORT PROBLEMS. (http://bugzilla.kernel.org)