» tagged pages
» logout

(Feed found, click Add Page to syndicate.) Error finding feed, please try again » Find feed title

A Blog Page allows you to add entries, for news or other time sensitive postings

(Login required to save to your tagged pages.)
(or Cancel)

Recent Edits

created by ericvh

Slides from KVM Developer Forum on 9p/virtio

June 19
The entry was created.
http://kvm.qumranet.com/kvmwiki/KvmForum2008?action=AttachFile&do=get&target=kdf2008_16.pdf
Slides from KVM Developer Forum on 9p/virtio
Undo this change because:
edit by ericvh

v9fs

June 19

The current source code for v9fs is maintained here: http://git.kernel.org/?p=linux/kernel/git/ericvh/v9fs.git;a=summary

The...

» complete change

!{margin:0 auto; display:block; float:right; padding:1em;}http://v9fs.sourceforge.net/tuxbunnysuit.jpg!

v9fs provides a [[Plan9]] 9P2000 resource sharing protocol client for the [[Linux]] 2.6 kernel. The source code has been maintained as part of the main-line kernel since 2.6.14 with bugtracking through bugzilla org. Normal [[plan9]] servers will work with v9fs, but for folks looking for a Linux-based server we have moved towards support the [[npfs]] libraries and applications.

v9fs was originally developed by Ron Minnich(rminnich%lanl.gov) and Maya Gokhale(maya%lanl.gov). Additional development by Greg Watson(gwatson%lanl.gov) and most recently Eric Van Hensbergen(ericvh%gmail.com).

The 2.6 port of V9FS and performance analysis was supported in part by the Defense Advance Research Projects Agency under Contract No. NBCH30390004. The original V9FS research work by Ron Minnich was supported by DARPA Contract #F30602-96-C-0297.

Documentation can be found in the Linux kernel source under Documentation/filesystems/9p.txt with a snapshot captured "here":http://git.kernel.org/?p=linux/kernel/git/ericvh/v9fs.git;a=blob_plain;f=Documentation/filesystems/9p.txt;hb=HEAD

The current source code for v9fs is maintained here: http://git.kernel.org/?p=linux/kernel/git/ericvh/v9fs.git;a=summary

The master branch contains the latest tested stable version. The v9fs-devel branch contains the current development branch.

Undo this change because:
created by uriel

9P Resources

June 10
The entry was created.
http://9p.cat-v.org
9P Resources
Undo this change because:
deleted by uriel

https://launchpad.net/9p-linux

June 10
“dupe”
The entry and its contents were erased.
https://launchpad.net/9p-linux
Undo this change because:
deleted by ericvh

Summer of Code 2007 Ideas

February 13
“out of date”
The page and its contents were erased.

* Mount helper application (userspace)

** providing DNS resolution, id mapping, and security hooks

** optionalize linkage with...

» complete change

* Mount helper application (userspace)

** providing DNS resolution, id mapping, and security hooks

** optionalize linkage with p9p authentication mechanisms

** zeroconf integration

** build-in support for ssh as transport

** document and package for distributions

* Userspace server (userspace)

** "Productize" existing userspace file server

** add maxclient limitations

** support directory restrictions

** authentication mechanisms

** id mapping mechanisms

** zeroconf integration

** document and package for distributions

* Userspace Filesystems (userspace)

** Gitfs - file system interface for git

** devip (tcp/ip & udp/ip stack interface)

** look for ways to improvide performance and scalability

* Security (kernel & userspace)

** Add security mechanisms for authentication, encryption, and/or digesting.

** idmapd based id mapping

* Cacheing (kernel)

** Add mechanisms in support of coherent cacheing

** delay-based loose coherence (ala NFSv3)

** call-back based leased coherence (ala AFS and NFSv4) (kernel & userspace)

** Integrating cacheing with the FS-cache project mechanisms.

Undo this change because:
edit by ericvh

Development Guidelines

February 13

* master: linus: will have a pristine linus tree.

* v9fs-devel: old-v9fs: will be (at least temporarily) hold the old v9fs-devel...

» complete change

h1. Repository and Branches

I've created a new git repository

(/pub/scm/linux/kernel/git/ericvh/v9fs.git) to eventually replace v9fs-devel.git. This tree will be organized a bit differently with most stuff stored in the following branches:

* master: linus: will have a pristine linus tree.

* mm: will have the most recent andrew morton release.

* v9fs-devel: old-v9fs: will be (at least temporarily) hold the old v9fs-devel tree.

* test: will contain my development tree (which gets pulled into mm) current test branch (unstable)

* standalone-test: will contain a version of test with ifdefs to help compile on older kernels.

* release: will contain changes which have passed our regression suite.

* for-linus: standalone: will contain a version of release with ifdefs to help compile on older kernels.

The fs/9p directory of the standalone trees will be patches snapshotted in sf.net CVS under linux-9p on a somewhat regular basis for linus folks that want to only build the module.

Most folks will probably only want to pull during merge windows deal with the release branch or grabbing the standalone branch from CVS.

h1. Regression Testing

Right now we request folks perform a sanity check on any changes by running the following benchmarks (available from v9fs CVS on sf.net under the test module):

mount -t 9P 127.0.0.1 /mnt/9

cd /mnt/9/var/tmp

fsx -N 100 -W -d testfile

Bonnie -s 1

echo run | postmark

ls -l

cd /

umount /mnt/9

A more complicated regression suite is being developed and it will be distributed (along with scripts which run it) shortly. We also request that folks run their builds with Sparse (C=1) to make sure the build is _really_ clean.

h1. Patch Acceptance/Test Process

Please generate patch files with git (git-format-patch-script) and inline email them to v9fs-developer. These patches will go in my patch queue and eventually be merged first into the test branch for baseline regression. Patches passing baseline regression will be merged into the release branch for more thorough testing by the v9fs community, and then be sent as patches to LKML.

h1. Code Style

Follow the Linux kernel guidelines found in Documentation/CodingStyle.

Undo this change because:
deleted by ericvh

Roadmap

February 13
“moved to launchpad”
The page and its contents were erased.

* [[v9fs packaging]] - rolling packages for distros (need volunteers)

* a new server infrastructure

* [[v9fs Security Support]]...

» complete change

* [[v9fs packaging]] - rolling packages for distros (need volunteers)

* a new server infrastructure

* [[v9fs Security Support]]

* [[v9fs Cache Infrastructure]]

----

*Eric's Work Queue*

| # | *Description* | *Progress* |

| 1 | reorganization | ongoing |

----

*Current Patch Queue (Waiting to be merged into test)*

| *Date Submitted* | *Description* | *Submitter* |

Undo this change because:
created by ericvh

Design and Roadmap Information

February 13
The entry was created.
https://launchpad.net/9p-linux
Design and Roadmap Information
Undo this change because:
created by ericvh

https://launchpad.net/9p-linux

February 13
The entry was created.
https://launchpad.net/9p-linux
Design and Roadmap Information
edit by ericvh

Roadmap

February 13

| 1 | reorganization regression in 2.6.21 | ongoing |

| 2 | automated regressions in mambo | 0% |

| 3 | exportfs in-kernel server...

» complete change

* [[v9fs packaging]] - rolling packages for distros (need volunteers)

* a new server infrastructure

* [[v9fs Security Support]]

* [[v9fs Cache Infrastructure]]

----

*Eric's Work Queue*

| # | *Description* | *Progress* |

| 1 | reorganization regression in 2.6.21 | ongoing |

| 2 | automated regressions in mambo | 0% |

| 3 | exportfs in-kernel server | 0% |

----

*Current Patch Queue (Waiting to be merged into test)*

| *Date Submitted* | *Description* | *Submitter* |

deleted by ericvh

v9fs HOWTO

October 9, 2007
The page and its contents were erased.

(the most recent version of this documentation can be found in the kernel docs in the Linux source tree under Documentation/filesystems/9p.txt)...

» complete change

(the most recent version of this documentation can be found in the kernel docs in the Linux source tree under Documentation/filesystems/9p.txt)

h1. ABOUT

v9fs is a Unix implementation of the Plan 9 9p remote filesystem protocol.

This software was originally developed by Ron Minnich <rminnich@sandia.gov>

and Maya Gokhale. Additional development by Greg Watson

<gwatson@lanl.gov> and most recently Eric Van Hensbergen

<ericvh@gmail.com>, Latchesar Ionkov <lucho@ionkov.net> and Russ Cox

<rsc@swtch.com>.

The best detailed explanation of the Linux implementation and applications of

the 9p client is available in the form of a USENIX paper:

http://www.usenix.org/events/usenix05/tech/freenix/hensbergen.html

Other applications are described in the following papers:

* XCPU & Clustering

http://www.xcpu.org/xcpu-talk.pdf

* KVMFS: control file system for KVM

http://www.xcpu.org/kvmfs.pdf

* CellFS: A New ProgrammingModel for the Cell BE

http://www.xcpu.org/cellfs-talk.pdf

* PROSE I/O: Using 9p to enable Application Partitions

http://plan9.escet.urjc.es/iwp9/cready/PROSE_iwp9_2006.pdf

h1. Usage

For remote file server:

mount -t 9p 10.10.1.2 /mnt/9

For Plan 9 From User Space applications (http://swtch.com/plan9)

mount -t 9p `namespace`/acme /mnt/9 -o proto=unix,uname=$USER

h1. Options

<pre>

proto=name select an alternative transport. Valid options are

currently:

unix - specifying a named pipe mount point

tcp - specifying a normal TCP/IP connection

fd - used passed file descriptors for connection

(see rfdno and wfdno)

uname=name user name to attempt mount as on the remote server. The

server may override or ignore this value. Certain user

names may require authentication.

aname=name aname specifies the file tree to access when the server is

offering several exported file systems.

cache=mode specifies a cacheing policy. By default, no caches are used.

loose = no attempts are made at consistency,

intended for exclusive, read-only mounts

debug=n specifies debug level. The debug level is a bitmask.

0x01 = display verbose error messages

0x02 = developer debug (DEBUG_CURRENT)

0x04 = display 9p trace

0x08 = display VFS trace

0x10 = display Marshalling debug

0x20 = display RPC debug

0x40 = display transport debug

0x80 = display allocation debug

rfdno=n the file descriptor for reading with proto=fd

wfdno=n the file descriptor for writing with proto=fd

maxdata=n the number of bytes to use for 9p packet payload (msize)

port=n port to connect to on the remote server

noextend force legacy mode (no 9p2000.u semantics)

uid attempt to mount as a particular uid

gid attempt to mount with a particular gid

afid security channel - used by Plan 9 authentication protocols

nodevmap do not map special files - represent them as normal files.

This can be used to share devices/named pipes/sockets between

hosts. This functionality will be expanded in later versions.

</pre>

h1. Resources

Our current recommendation is to use Inferno (http://www.vitanuova.com/inferno)

as the 9p server. You can start a 9p server under Inferno by issuing the

following command:

<pre>

; styxlisten -A tcp!*!564 export '#U*'

</pre>

The -A specifies an unauthenticated export. The 564 is the port # (you may

have to choose a higher port number if running as a normal user). The #U*

specifies exporting the root of the Linux name space. You may specify a

subset of the namespace by extending the path: '#U*'/tmp would just export

/tmp. For more information, see the Inferno manual pages covering styxlisten

and export.

A Linux version of the 9p server is now maintained under the npfs project

on sourceforge (http://sourceforge.net/projects/npfs). The currently

maintained version is the single-threaded version of the server (named spfs)

available from the same CVS repository.

There are user and developer mailing lists available through the v9fs project

on sourceforge (http://sourceforge.net/projects/v9fs).

News and other information is maintained on SWiK (http://swik.net/v9fs).

Bug reports may be issued through the kernel.org bugzilla

(http://bugzilla.kernel.org)

For more information on the Plan 9 Operating System check out

http://plan9.bell-labs.com/plan9

For information on Plan 9 from User Space (Plan 9 applications and libraries

ported to Linux/BSD/OSX/etc) check out http://swtch.com/plan9

h1. Status

The 2.6 kernel support is working on PPC and x86.

PLEASE USE THE KERNEL BUGZILLA TO REPORT PROBLEMS. (http://bugzilla.kernel.org)

Undo this change because:
edit by ericvh

v9fs

October 9, 2007

Documentation can be found in the Linux kernel source under Documentation/filesystems/9p.txt with a snapshot captured "here":http://git.kernel.org/?p=linux/kernel/git/ericvh/v9fs.git;a=blob_plain;f=Documentation/filesystems/9p.txt;hb=HEAD...

» complete change

!{margin:0 auto; display:block; float:right; padding:1em;}http://v9fs.sourceforge.net/tuxbunnysuit.jpg!

v9fs provides a [[Plan9]] 9P2000 resource sharing protocol client for the [[Linux]] 2.6 kernel. The source code has been maintained as part of the main-line kernel since 2.6.14 with bugtracking through bugzilla org. Normal [[plan9]] servers will work with v9fs, but for folks looking for a Linux-based server we have moved towards support the [[npfs]] libraries and applications.

v9fs was originally developed by Ron Minnich(rminnich%lanl.gov) and Maya Gokhale(maya%lanl.gov). Additional development by Greg Watson(gwatson%lanl.gov) and most recently Eric Van Hensbergen(ericvh%gmail.com).

The 2.6 port of V9FS and performance analysis was supported in part by the Defense Advance Research Projects Agency under Contract No. NBCH30390004. The original V9FS research work by Ron Minnich was supported by DARPA Contract #F30602-96-C-0297.

Documentation can be found in the Linux kernel source under Documentation/filesystems/9p.txt with a snapshot captured "here":http://git.kernel.org/?p=linux/kernel/git/ericvh/v9fs.git;a=blob_plain;f=Documentation/filesystems/9p.txt;hb=HEAD here: [v9fs+HOWTO].

edit by ericvh

v9fs

October 9, 2007

Documentation can be found in the Linux kernel source under Documentation/filesystems/9p.txt with a snapshot captured here:...

» complete change

!{margin:0 auto; display:block; float:right; padding:1em;}http://v9fs.sourceforge.net/tuxbunnysuit.jpg!

v9fs provides a [[Plan9]] 9P2000 resource sharing protocol client for the [[Linux]] 2.6 kernel. The source code has been maintained as part of the main-line kernel since 2.6.14 with bugtracking through bugzilla org. Normal [[plan9]] servers will work with v9fs, but for folks looking for a Linux-based server we have moved towards support the [[npfs]] libraries and applications.

v9fs was originally developed by Ron Minnich(rminnich%lanl.gov) and Maya Gokhale(maya%lanl.gov). Additional development by Greg Watson(gwatson%lanl.gov) and most recently Eric Van Hensbergen(ericvh%gmail.com).

The 2.6 port of V9FS and performance analysis was supported in part by the Defense Advance Research Projects Agency under Contract No. NBCH30390004. The original V9FS research work by Ron Minnich was supported by DARPA Contract #F30602-96-C-0297.

Documentation can be found in the Linux kernel source under Documentation/filesystems/9p.txt with a snapshot captured here: [v9fs+HOWTO]. [[v9fs+HOWTO]].

edit by ericvh

v9fs

October 9, 2007

Documentation can be found in the Linux kernel source under Documentation/filesystems/9p.txt with a snapshot captured here:...

» complete change

!{margin:0 auto; display:block; float:right; padding:1em;}http://v9fs.sourceforge.net/tuxbunnysuit.jpg!

v9fs provides a [[Plan9]] 9P2000 resource sharing protocol client for the [[Linux]] 2.6 kernel. The source code has been maintained as part of the main-line kernel since 2.6.14 with bugtracking through bugzilla org. Normal [[plan9]] servers will work with v9fs, but for folks looking for a Linux-based server we have moved towards support the [[npfs]] libraries and applications.

v9fs was originally developed by Ron Minnich(rminnich%lanl.gov) and Maya Gokhale(maya%lanl.gov). Additional development by Greg Watson(gwatson%lanl.gov) and most recently Eric Van Hensbergen(ericvh%gmail.com).

The 2.6 port of V9FS and performance analysis was supported in part by the Defense Advance Research Projects Agency under Contract No. NBCH30390004. The original V9FS research work by Ron Minnich was supported by DARPA Contract #F30602-96-C-0297.

Documentation can be found in the Linux kernel source under Documentation/filesystems/9p.txt with a snapshot captured here: [[v9fs+HOWTO]]. [[v9fs HOWTO]].

edit by ericvh

v9fs

October 9, 2007

Documentation can be found in the Linux kernel source under Documentation/filesystems/9p.txt with a snapshot captured here:...

» complete change

!{margin:0 auto; display:block; float:right; padding:1em;}http://v9fs.sourceforge.net/tuxbunnysuit.jpg!

v9fs provides a [[Plan9]] 9P2000 resource sharing protocol client for the [[Linux]] 2.6 kernel. The source code has been maintained as part of the main-line kernel since 2.6.14 with bugtracking through bugzilla org. Normal [[plan9]] servers will work with v9fs, but for folks looking for a Linux-based server we have moved towards support the [[npfs]] libraries and applications.

v9fs was originally developed by Ron Minnich(rminnich%lanl.gov) and Maya Gokhale(maya%lanl.gov). Additional development by Greg Watson(gwatson%lanl.gov) and most recently Eric Van Hensbergen(ericvh%gmail.com).

The 2.6 port of V9FS and performance analysis was supported in part by the Defense Advance Research Projects Agency under Contract No. NBCH30390004. The original V9FS research work by Ron Minnich was supported by DARPA Contract #F30602-96-C-0297.

Documentation can be found in the Linux kernel source under Documentation/filesystems/9p.txt with a snapshot captured here: [[v9fs HOWTO]].

deleted by ericvh

v9fs mount options

October 9, 2007
The page and its contents were erased.

For remote file server (can't use DNS host names, only dot-quadded ip addresses):

<pre>

mount -t 9p 10.10.1.2 /mnt/9

</pre>

For...

» complete change

For remote file server (can't use DNS host names, only dot-quadded ip addresses):

<pre>

mount -t 9p 10.10.1.2 /mnt/9

</pre>

For Plan 9 From User Space applications (http://swtch.com/plan9)

<pre>

mount -t 9p `namespace`/acme /mnt/9 -o proto=unix,uname=$USER

</pre>

<h2>OPTIONS</h2>

<ul>

<li><tt>proto=<i>name</i></tt> - select an alternative transport. Valid options are currently:

<ul>

<li><tt>unix</tt> - specifying a named pipe mount point</li>

<li><tt>tcp</tt> - specifying a normal TCP/IP connection</li>

<li><tt>fd</tt> - used passed file descriptors for connection (see rfdno and wfdno)</li>

</ul>

</li>

<li>

<tt>uname=<i>name</i></tt> - user name to attempt mount as on the remote server. The server may override or ignore this value. Certain user

names may require authentication.

</li>

<li>

<tt>aname=<i>name</i></tt> aname specifies the file tree to access when the server is offering several exported file systems.

</li>

<li>

<tt>debug=</i>n</i></tt> specifies debug level. The debug level is a bitmask.

<ul>

<li><tt>0x01</tt> - display verbose error messages</li>

<li><tt>0x02</tt> - developer debug (DEBUG_CURRENT)</li>

<li><tt>0x04</tt> - display 9p trace</li>

<li><tt>0x08</tt> - display VFS trace</li>

<li><tt>0x10</tt> - display Marshalling debug</li>

<li><tt>0x20</tt> - display RPC debug</li>

<li><tt>0x40</tt> - display transport debug</li>

<li><tt>0x80</tt> - display allocation debug</li>

</ul>

</li>

<li><tt>rfdno=<i>n</i></tt> - the file descriptor for reading with proto=fd</li>

<li><tt>wfdno=<i>n</i></tt> - the file descriptor for writing with proto=fd</li>

<li><tt>maxdata=<i>n</i></tt> - the number of bytes to use for 9p packet payload (msize)</li>

<li><tt>port=<i>n</i></tt> - port to connect to on the remote server</li>

<li><tt>noextend</tt> - force legacy mode (no 9p2000.u semantics)</li>

<li><tt>uid</tt> - attempt to mount as a particular uid</li>

<li><tt>gid</tt> - attempt to mount with a particular gid</li>

<li><tt>afid</tt> - security channel - used by Plan 9 authentication protocols</li>

<li><tt>nodevmap</tt> - do not map special files - represent them as normal files.

This can be used to share devices/named pipes/sockets between

hosts. This functionality will be expanded in later versions.

</li>

</ul>

Undo this change because:
edit by ericvh

v9fs HOWTO

October 9, 2007

<pre>

proto=name select an alternative transport. Valid options are

hosts. This functionality will be expanded in later versions....

» complete change

(the most recent version of this documentation can be found in the kernel docs in the Linux source tree under Documentation/filesystems/9p.txt)

h1. ABOUT

v9fs is a Unix implementation of the Plan 9 9p remote filesystem protocol.

This software was originally developed by Ron Minnich <rminnich@sandia.gov>

and Maya Gokhale. Additional development by Greg Watson

<gwatson@lanl.gov> and most recently Eric Van Hensbergen

<ericvh@gmail.com>, Latchesar Ionkov <lucho@ionkov.net> and Russ Cox

<rsc@swtch.com>.

The best detailed explanation of the Linux implementation and applications of

the 9p client is available in the form of a USENIX paper:

http://www.usenix.org/events/usenix05/tech/freenix/hensbergen.html

Other applications are described in the following papers:

* XCPU & Clustering

http://www.xcpu.org/xcpu-talk.pdf

* KVMFS: control file system for KVM

http://www.xcpu.org/kvmfs.pdf

* CellFS: A New ProgrammingModel for the Cell BE

http://www.xcpu.org/cellfs-talk.pdf

* PROSE I/O: Using 9p to enable Application Partitions

http://plan9.escet.urjc.es/iwp9/cready/PROSE_iwp9_2006.pdf

h1. Usage

For remote file server:

mount -t 9p 10.10.1.2 /mnt/9

For Plan 9 From User Space applications (http://swtch.com/plan9)

mount -t 9p `namespace`/acme /mnt/9 -o proto=unix,uname=$USER

h1. Options

<pre>

proto=name select an alternative transport. Valid options are

currently:

unix - specifying a named pipe mount point

tcp - specifying a normal TCP/IP connection

fd - used passed file descriptors for connection

(see rfdno and wfdno)

uname=name user name to attempt mount as on the remote server. The

server may override or ignore this value. Certain user

names may require authentication.

aname=name aname specifies the file tree to access when the server is

offering several exported file systems.

cache=mode specifies a cacheing policy. By default, no caches are used.

loose = no attempts are made at consistency,

intended for exclusive, read-only mounts

debug=n specifies debug level. The debug level is a bitmask.

0x01 = display verbose error messages

0x02 = developer debug (DEBUG_CURRENT)

0x04 = display 9p trace

0x08 = display VFS trace

0x10 = display Marshalling debug

0x20 = display RPC debug

0x40 = display transport debug

0x80 = display allocation debug

rfdno=n the file descriptor for reading with proto=fd

wfdno=n the file descriptor for writing with proto=fd

maxdata=n the number of bytes to use for 9p packet payload (msize)

port=n port to connect to on the remote server

noextend force legacy mode (no 9p2000.u semantics)

uid attempt to mount as a particular uid

gid attempt to mount with a particular gid

afid security channel - used by Plan 9 authentication protocols

nodevmap do not map special files - represent them as normal files.

This can be used to share devices/named pipes/sockets between

hosts. This functionality will be expanded in later versions.

</pre>

h1. Resources

Our current recommendation is to use Inferno (http://www.vitanuova.com/inferno)

as the 9p server. You can start a 9p server under Inferno by issuing the

following command:

<pre>

; styxlisten -A tcp!*!564 export '#U*'

</pre>

The -A specifies an unauthenticated export. The 564 is the port # (you may

have to choose a higher port number if running as a normal user). The #U* '#U*'

specifies exporting the root of the Linux name space. You may specify a

subset of the namespace by extending the path: '#U*'/tmp would just export

/tmp. For more information, see the Inferno manual pages covering styxlisten

and export.

A Linux version of the 9p server is now maintained under the npfs project

on sourceforge (http://sourceforge.net/projects/npfs). The currently

maintained version is the single-threaded version of the server (named spfs)

available from the same CVS repository.

There are user and developer mailing lists available through the v9fs project

on sourceforge (http://sourceforge.net/projects/v9fs).

News and other information is maintained on SWiK (http://swik.net/v9fs).

Bug reports may be issued through the kernel.org bugzilla

(http://bugzilla.kernel.org)

For more information on the Plan 9 Operating System check out

http://plan9.bell-labs.com/plan9

For information on Plan 9 from User Space (Plan 9 applications and libraries

ported to Linux/BSD/OSX/etc) check out http://swtch.com/plan9

h1. Status

The 2.6 kernel support is working on PPC and x86.

PLEASE USE THE KERNEL BUGZILLA TO REPORT PROBLEMS. (http://bugzilla.kernel.org)

edit by ericvh

v9fs HOWTO

October 9, 2007

<pre>

proto=name select an alternative transport. Valid options are

hosts. This functionality will be expanded in later versions....

» complete change

(the most recent version of this documentation can be found in the kernel docs in the Linux source tree under Documentation/filesystems/9p.txt)

h1. ABOUT

v9fs is a Unix implementation of the Plan 9 9p remote filesystem protocol.

This software was originally developed by Ron Minnich <rminnich@sandia.gov>

and Maya Gokhale. Additional development by Greg Watson

<gwatson@lanl.gov> and most recently Eric Van Hensbergen

<ericvh@gmail.com>, Latchesar Ionkov <lucho@ionkov.net> and Russ Cox

<rsc@swtch.com>.

The best detailed explanation of the Linux implementation and applications of

the 9p client is available in the form of a USENIX paper:

http://www.usenix.org/events/usenix05/tech/freenix/hensbergen.html

Other applications are described in the following papers:

* XCPU & Clustering

http://www.xcpu.org/xcpu-talk.pdf

* KVMFS: control file system for KVM

http://www.xcpu.org/kvmfs.pdf

* CellFS: A New ProgrammingModel for the Cell BE

http://www.xcpu.org/cellfs-talk.pdf

* PROSE I/O: Using 9p to enable Application Partitions

http://plan9.escet.urjc.es/iwp9/cready/PROSE_iwp9_2006.pdf

h1. Usage

For remote file server:

mount -t 9p 10.10.1.2 /mnt/9

For Plan 9 From User Space applications (http://swtch.com/plan9)

mount -t 9p `namespace`/acme /mnt/9 -o proto=unix,uname=$USER

h1. Options

<pre>

proto=name select an alternative transport. Valid options are

currently:

unix - specifying a named pipe mount point

tcp - specifying a normal TCP/IP connection

fd - used passed file descriptors for connection

(see rfdno and wfdno)

uname=name user name to attempt mount as on the remote server. The

server may override or ignore this value. Certain user

names may require authentication.

aname=name aname specifies the file tree to access when the server is

offering several exported file systems.

cache=mode specifies a cacheing policy. By default, no caches are used.

loose = no attempts are made at consistency,

intended for exclusive, read-only mounts

debug=n specifies debug level. The debug level is a bitmask.

0x01 = display verbose error messages

0x02 = developer debug (DEBUG_CURRENT)

0x04 = display 9p trace

0x08 = display VFS trace

0x10 = display Marshalling debug

0x20 = display RPC debug

0x40 = display transport debug

0x80 = display allocation debug

rfdno=n the file descriptor for reading with proto=fd

wfdno=n the file descriptor for writing with proto=fd

maxdata=n the number of bytes to use for 9p packet payload (msize)

port=n port to connect to on the remote server

noextend force legacy mode (no 9p2000.u semantics)

uid attempt to mount as a particular uid

gid attempt to mount with a particular gid

afid security channel - used by Plan 9 authentication protocols

nodevmap do not map special files - represent them as normal files.

This can be used to share devices/named pipes/sockets between

hosts. This functionality will be expanded in later versions.

</pre>

h1. Resources

=========

Our current recommendation is to use Inferno (http://www.vitanuova.com/inferno)

as the 9p server. You can start a 9p server under Inferno by issuing the

following command:

; styxlisten -A tcp!*!564 export '#U*'

The -A specifies an unauthenticated export. The 564 is the port # (you may

have to choose a higher port number if running as a normal user). The '#U*'

specifies exporting the root of the Linux name space. You may specify a

subset of the namespace by extending the path: '#U*'/tmp would just export

/tmp. For more information, see the Inferno manual pages covering styxlisten

and export.

A Linux version of the 9p server is now maintained under the npfs project

on sourceforge (http://sourceforge.net/projects/npfs). The currently

maintained version is the single-threaded version of the server (named spfs)

available from the same CVS repository.

There are user and developer mailing lists available through the v9fs project

on sourceforge (http://sourceforge.net/projects/v9fs).

News and other information is maintained on SWiK (http://swik.net/v9fs).

Bug reports may be issued through the kernel.org bugzilla

(http://bugzilla.kernel.org)

For more information on the Plan 9 Operating System check out

http://plan9.bell-labs.com/plan9

For information on Plan 9 from User Space (Plan 9 applications and libraries

ported to Linux/BSD/OSX/etc) check out http://swtch.com/plan9

h1. Status

The 2.6 kernel support is working on PPC and x86.

PLEASE USE THE KERNEL BUGZILLA TO REPORT PROBLEMS. (http://bugzilla.kernel.org)

created by ericvh

v9fs HOWTO

October 9, 2007
The page was created.
v9fs HOWTO
Article

(the most recent version of this documentation can be found in the kernel docs in the Linux source tree under Documentation/filesystems/9p.txt)...

» complete change

(the most recent version of this documentation can be found in the kernel docs in the Linux source tree under Documentation/filesystems/9p.txt)

h1. ABOUT

v9fs is a Unix implementation of the Plan 9 9p remote filesystem protocol.

This software was originally developed by Ron Minnich <rminnich@sandia.gov>

and Maya Gokhale. Additional development by Greg Watson

<gwatson@lanl.gov> and most recently Eric Van Hensbergen

<ericvh@gmail.com>, Latchesar Ionkov <lucho@ionkov.net> and Russ Cox

<rsc@swtch.com>.

The best detailed explanation of the Linux implementation and applications of

the 9p client is available in the form of a USENIX paper:

http://www.usenix.org/events/usenix05/tech/freenix/hensbergen.html

Other applications are described in the following papers:

* XCPU & Clustering

http://www.xcpu.org/xcpu-talk.pdf

* KVMFS: control file system for KVM

http://www.xcpu.org/kvmfs.pdf

* CellFS: A New ProgrammingModel for the Cell BE

http://www.xcpu.org/cellfs-talk.pdf

* PROSE I/O: Using 9p to enable Application Partitions

http://plan9.escet.urjc.es/iwp9/cready/PROSE_iwp9_2006.pdf

h1. Usage

For remote file server:

mount -t 9p 10.10.1.2 /mnt/9

For Plan 9 From User Space applications (http://swtch.com/plan9)

mount -t 9p `namespace`/acme /mnt/9 -o proto=unix,uname=$USER

h1. Options

<pre>

proto=name select an alternative transport. Valid options are

currently:

unix - specifying a named pipe mount point

tcp - specifying a normal TCP/IP connection

fd - used passed file descriptors for connection

(see rfdno and wfdno)

uname=name user name to attempt mount as on the remote server. The

server may override or ignore this value. Certain user

names may require authentication.

aname=name aname specifies the file tree to access when the server is

offering several exported file systems.

cache=mode specifies a cacheing policy. By default, no caches are used.

loose = no attempts are made at consistency,

intended for exclusive, read-only mounts

debug=n specifies debug level. The debug level is a bitmask.

0x01 = display verbose error messages

0x02 = developer debug (DEBUG_CURRENT)

0x04 = display 9p trace

0x08 = display VFS trace

0x10 = display Marshalling debug

0x20 = display RPC debug

0x40 = display transport debug

0x80 = display allocation debug

rfdno=n the file descriptor for reading with proto=fd

wfdno=n the file descriptor for writing with proto=fd

maxdata=n the number of bytes to use for 9p packet payload (msize)

port=n port to connect to on the remote server

noextend force legacy mode (no 9p2000.u semantics)

uid attempt to mount as a particular uid

gid attempt to mount with a particular gid

afid security channel - used by Plan 9 authentication protocols

nodevmap do not map special files - represent them as normal files.

This can be used to share devices/named pipes/sockets between

hosts. This functionality will be expanded in later versions.

</pre>

h1. Resources

=========

Our current recommendation is to use Inferno (http://www.vitanuova.com/inferno)

as the 9p server. You can start a 9p server under Inferno by issuing the

following command:

; styxlisten -A tcp!*!564 export '#U*'

The -A specifies an unauthenticated export. The 564 is the port # (you may

have to choose a higher port number if running as a normal user). The '#U*'

specifies exporting the root of the Linux name space. You may specify a

subset of the namespace by extending the path: '#U*'/tmp would just export

/tmp. For more information, see the Inferno manual pages covering styxlisten

and export.

A Linux version of the 9p server is now maintained under the npfs project

on sourceforge (http://sourceforge.net/projects/npfs). The currently

maintained version is the single-threaded version of the server (named spfs)

available from the same CVS repository.

There are user and developer mailing lists available through the v9fs project

on sourceforge (http://sourceforge.net/projects/v9fs).

News and other information is maintained on SWiK (http://swik.net/v9fs).

Bug reports may be issued through the kernel.org bugzilla

(http://bugzilla.kernel.org)

For more information on the Plan 9 Operating System check out

http://plan9.bell-labs.com/plan9

For information on Plan 9 from User Space (Plan 9 applications and libraries

ported to Linux/BSD/OSX/etc) check out http://swtch.com/plan9

h1. Status

The 2.6 kernel support is working on PPC and x86.

PLEASE USE THE KERNEL BUGZILLA TO REPORT PROBLEMS. (http://bugzilla.kernel.org)

edit by 18.246.7.61

v9fs mount options

July 7, 2007
“added the point that you can't just use host names for tcp mounts”

For remote file server (can't use DNS host names, only dot-quadded ip addresses): server:

» complete change

For remote file server (can't use DNS host names, only dot-quadded ip addresses): server:

<pre>

mount -t 9p 10.10.1.2 /mnt/9

</pre>

For Plan 9 From User Space applications (http://swtch.com/plan9)

<pre>

mount -t 9p `namespace`/acme /mnt/9 -o proto=unix,uname=$USER

</pre>

<h2>OPTIONS</h2>

<ul>

<li><tt>proto=<i>name</i></tt> - select an alternative transport. Valid options are currently:

<ul>

<li><tt>unix</tt> - specifying a named pipe mount point</li>

<li><tt>tcp</tt> - specifying a normal TCP/IP connection</li>

<li><tt>fd</tt> - used passed file descriptors for connection (see rfdno and wfdno)</li>

</ul>

</li>

<li>

<tt>uname=<i>name</i></tt> - user name to attempt mount as on the remote server. The server may override or ignore this value. Certain user

names may require authentication.

</li>

<li>

<tt>aname=<i>name</i></tt> aname specifies the file tree to access when the server is offering several exported file systems.

</li>

<li>

<tt>debug=</i>n</i></tt> specifies debug level. The debug level is a bitmask.

<ul>

<li><tt>0x01</tt> - display verbose error messages</li>

<li><tt>0x02</tt> - developer debug (DEBUG_CURRENT)</li>

<li><tt>0x04</tt> - display 9p trace</li>

<li><tt>0x08</tt> - display VFS trace</li>

<li><tt>0x10</tt> - display Marshalling debug</li>

<li><tt>0x20</tt> - display RPC debug</li>

<li><tt>0x40</tt> - display transport debug</li>

<li><tt>0x80</tt> - display allocation debug</li>

</ul>

</li>

<li><tt>rfdno=<i>n</i></tt> - the file descriptor for reading with proto=fd</li>

<li><tt>wfdno=<i>n</i></tt> - the file descriptor for writing with proto=fd</li>

<li><tt>maxdata=<i>n</i></tt> - the number of bytes to use for 9p packet payload (msize)</li>

<li><tt>port=<i>n</i></tt> - port to connect to on the remote server</li>

<li><tt>noextend</tt> - force legacy mode (no 9p2000.u semantics)</li>

<li><tt>uid</tt> - attempt to mount as a particular uid</li>

<li><tt>gid</tt> - attempt to mount with a particular gid</li>

<li><tt>afid</tt> - security channel - used by Plan 9 authentication protocols</li>

<li><tt>nodevmap</tt> - do not map special files - represent them as normal files.

This can be used to share devices/named pipes/sockets between

hosts. This functionality will be expanded in later versions.

</li>

</ul>

edit by ericvh

Summer of Code 2007 Ideas

March 4, 2007

* Security (kernel & userspace)

** Add security mechanisms for authentication, encryption, and/or digesting.

* Cacheing (kernel)...

» complete change

* Security (kernel & userspace)

** Add security mechanisms for authentication, encryption, and/or digesting.

* Cacheing (kernel)

** Add mechanisms in support of coherent cacheing

** delay-based loose coherence (ala NFSv3)

** call-back based leased coherence (ala AFS and NFSv4) (kernel & userspace)

* FS-cache (kernel)

** Integrating cacheing with the FS-cache project mechanisms.

* Device Support (kernel)

** Provide support for gatewaying raw block devices and network devices.

* Userspace Filesystems (userspace)

** Gitfs - file system interface for git

** devip (tcp/ip & udp/ip stack interface)

* Mount helper application (userspace)

** providing DNS resolution, id mapping, and security hooks

** optionalize linkage with p9p authentication mechanisms

** zeroconf integration

** build-in support for ssh as transport

** document and package for distributions

* Userspace server (userspace)

** "Productize" existing userspace file server

** add maxclient limitations

** support directory restrictions

** authentication mechanisms

** id mapping mechanisms

** zeroconf integration

** document and package for distributions

* Userspace Filesystems (userspace)

** Gitfs - file system interface for git

** devip (tcp/ip & udp/ip stack interface)

** look for ways to improvide performance and scalability

* Security (kernel & userspace)

** Add security mechanisms for authentication, encryption, and/or digesting.

** idmapd based id mapping

* Cacheing (kernel)

** Add mechanisms in support of coherent cacheing

** delay-based loose coherence (ala NFSv3)

** call-back based leased coherence (ala AFS and NFSv4) (kernel & userspace)

** Integrating cacheing with the FS-cache project mechanisms.

edit by ericvh

Summer of Code 2007 Ideas

March 4, 2007

** optionalize linkage with p9p authentication mechanisms

** zeroconf integration

** document and package for distributions

**...

» complete change

* Security (kernel & userspace)

** Add security mechanisms for authentication, encryption, and/or digesting.

* Cacheing (kernel)

** Add mechanisms in support of coherent cacheing

** delay-based loose coherence (ala NFSv3)

** call-back based leased coherence (ala AFS and NFSv4) (kernel & userspace)

* FS-cache (kernel)

** Integrating cacheing with the FS-cache project mechanisms.

* Device Support (kernel)

** Provide support for gatewaying raw block devices and network devices.

* Userspace Filesystems (userspace)

** Gitfs - file system interface for git

** devip (tcp/ip & udp/ip stack interface)

* Mount helper application (userspace)

** providing DNS resolution, id mapping, and security hooks

** optionalize linkage with p9p authentication mechanisms

** zeroconf integration

** document and package for distributions

* Userspace server (userspace)

** "Productize" existing userspace file server

** add maxclient limitations

** support directory restrictions

** authentication mechanisms

** id mapping mechanisms

** zeroconf integration

** document and package for distributions

edit by ericvh

Summer of Code 2007 Ideas

March 4, 2007

* Security (kernel & userspace)

** bq. Add security mechanisms for authentication, encryption, and/or digesting.

* Cacheing (kernel)...

» complete change

* Security (kernel & userspace)

** bq. Add security mechanisms for authentication, encryption, and/or digesting.

* Cacheing (kernel)

** .bq Add mechanisms in support of coherent cacheing

** cacheing, delay-based loose coherence (ala NFSv3)

** coherence, and call-back based leased coherence (ala AFS and NFSv4) (kernel & userspace) coherence.

* FS-cache (kernel)

** .bq Integrating cacheing with the FS-cache project mechanisms.

* Device Support (kernel)

** .bq Provide support for gatewaying raw block devices and network devices.

* Userspace Filesystems (userspace)

** Gitfs - file system interface for git

** devip (tcp/ip & udp/ip stack interface)

* Mount helper application (userspace)

** providing DNS resolution, id mapping, and security hooks

** document and package for distributions

* Userspace server (userspace)

** .bq "Productize" existing userspace server

** add maxclient limitations

** support by adding features supporting directory restrictions

** restrictions, authentication mechanisms

** mechanisms, id mapping mechanisms

** mechanisms. Also document and package for distributions

edit by ericvh

Summer of Code 2007 Ideas

March 4, 2007

bq. Add security mechanisms for authentication, encryption, and/or digesting. digesting

» complete change

* Security

bq. Add security mechanisms for authentication, encryption, and/or digesting. digesting

* Cacheing

.bq Add mechanisms in support of coherent cacheing, delay-based loose coherence, and call-back based leased coherence.

* FS-cache

.bq Integrating cacheing with the FS-cache project mechanisms.

* Device Support

.bq Provide support for gatewaying raw block devices and network devices.

* Userspace Filesystems

** Gitfs - file system interface for git

** devip (tcp/ip & udp/ip stack interface)

* Mount helper application

** providing DNS resolution, id mapping, and security hooks

** document and package for distributions

* Userspace server

.bq "Productize" existing server by adding features supporting directory restrictions, authentication mechanisms, id mapping mechanisms. Also document and package for distributions

edit by ericvh

Summer of Code 2007 Ideas

March 4, 2007

o) adding security mechanisms (via keyfs?) and integrating idmapd support

o) adding cache mechanisms (coherent, time-based-coherent,...

» complete change

o) adding security mechanisms (via keyfs?) and integrating idmapd support

o) adding cache mechanisms (coherent, time-based-coherent,

callback-coherent, etc.)

o) integrated fscache support

o) support for gatewaying raw network devices and block devices efficiently

* Security

bq. Add security mechanisms for authentication, encryption, and/or digesting

* Cacheing

.bq Add mechanisms in support of coherent cacheing, delay-based loose coherence, and call-back based leased coherence.

* FS-cache

.bq Integrating cacheing with the FS-cache project mechanisms.

* Device Support

.bq Provide support for gatewaying raw block devices and network devices.

* Userspace Filesystems

** Gitfs - file system interface for git

** devip (tcp/ip & udp/ip stack interface)

* Mount helper application

** providing DNS resolution, id mapping, and security hooks

** document and package for distributions

* Userspace server

.bq "Productize" existing server by adding features supporting directory restrictions, authentication mechanisms, id mapping mechanisms. Also document and package for distributions

edit by ericvh

Summer of Code 2007 Ideas

March 4, 2007

* # Security

* # Cacheing

* # FS-cache

.bq Integrating cacheing with the FS-cache project mechanisms. mechanisms

* # Device Support

» complete change

o) adding security mechanisms (via keyfs?) and integrating idmapd support

o) adding cache mechanisms (coherent, time-based-coherent,

callback-coherent, etc.)

o) integrated fscache support

o) support for gatewaying raw network devices and block devices efficiently

* # Security

bq. Add security mechanisms for authentication, encryption, and/or digesting

* # Cacheing

.bq Add mechanisms in support of coherent cacheing, delay-based loose coherence, and call-back based leased coherence.

* # FS-cache

.bq Integrating cacheing with the FS-cache project mechanisms. mechanisms

* # Device Support

.bq Provide support for gatewaying raw block devices and network devices. gateways.

* # Userspace Filesystems

** ## Gitfs - file system interface for git

** ## devip (tcp/ip & udp/ip stack interface)

##

edit by ericvh

Summer of Code 2007 Ideas

March 4, 2007

» complete change

o) adding security mechanisms (via keyfs?) and integrating idmapd support

o) adding cache mechanisms (coherent, time-based-coherent,

callback-coherent, etc.)

o) integrated fscache support

o) support for gatewaying raw network devices and block devices efficiently

# Security

bq. Add security mechanisms for authentication, encryption, and/or digesting

# Cacheing

.bq Add mechanisms in support of coherent cacheing, delay-based loose coherence, and call-back based leased coherence.

# FS-cache

.bq Integrating cacheing with the FS-cache project mechanisms

# Device Support

.bq Provide support for gateways.

# Userspace Filesystems

## Gitfs

## devip (tcp/ip & udp/ip stack interface)

##

created by ericvh

Summer of Code 2007 Ideas

March 4, 2007
The page was created.
Summer of Code 2007 Ideas
Article

o) adding security mechanisms (via keyfs?) and integrating idmapd support

o) adding cache mechanisms (coherent, time-based-coherent,...

» complete change

o) adding security mechanisms (via keyfs?) and integrating idmapd support

o) adding cache mechanisms (coherent, time-based-coherent,

callback-coherent, etc.)

o) integrated fscache support

o) support for gatewaying raw network devices and block devices efficiently

# Security

bq. Add security mechanisms for authentication, encryption, and/or digesting

# Cacheing

.bq Add mechanisms in support of coherent cacheing, delay-based loose coherence, and call-back based leased coherence.

# FS-cache

.bq Integrating cacheing with the FS-cache project mechanisms

# Device Support

.bq Provide support for gateways.

# Userspace Filesystems

## Gitfs

## devip (tcp/ip & udp/ip stack interface)

##

edit by ericvh

Roadmap

March 4, 2007

| 1 | regression bug-fixes in 2.6.21 2.6.20 | ongoing 50% |

» complete change

* [[v9fs packaging]] - rolling packages for distros (need volunteers)

* a new server infrastructure

* [[v9fs Security Support]]

* [[v9fs Cache Infrastructure]]

----

*Eric's Work Queue*

| # | *Description* | *Progress* |

| 1 | regression bug-fixes in 2.6.21 2.6.20 | ongoing 50% |

| 2 | automated regressions in mambo | 0% |

| 3 | exportfs in-kernel server | 0% |

----

*Current Patch Queue (Waiting to be merged into test)*

| *Date Submitted* | *Description* | *Submitter* |

edit by alex

Grave Robber's from Outerspace

February 13, 2007
http://graverobbers.blogspot.com/atom.xml http://www.graverobber.org/atom.xml
Undo this change because:
edit by alex

Grave Robber's from Outerspace

February 13, 2007
http://www.graverobber.org/atom.xml http://www.graverobber.org/atom.xml?poke
edit by alex

Grave Robber's from Outerspace

February 13, 2007
http://www.graverobber.org/atom.xml?poke http://www.graverobber.org/atom.xml