[OpenAFS-devel] [GSoC2010] the kafs project of OpenAFS

Wang Lei wang840925@gmail.com
Thu, 8 Apr 2010 10:23:36 +0800


Hello, my name is weylan, Chinese name is Wang Lei. Last year, I have
took the project kafs of OpenAFS , as a student of GSoC2009. I have
finished partly a task, as Linus and some of the Linux community
against implement pioctl() directly in the kernel. We used other ways
to talk to the kernel after we gave up some implementation that have
done. There is my project idea and time line at last. My major is
distributed file system. As I have some experience of my research and
this project, I think I could do it well.


The Project Idea And Time Line

Last year, I have finished partly a task, that a common pioctl
implemention between kafs and OpenAFS to allow sharing of userspace.
As Linus and some of the Linux community against implement pioctl()
directly in the kernel. We used [gs]etxattr(), add_key() and keyctl()
and /proc, plus the experimental open(O_NODE) to talk to the kernel,
that we have done last year. Then the first task of this year's
project is that, I would implement some of the OpenAFS file system
commands that have not yet been integrated into kafs, and do some work
to support the OpenAFS userspace tools for kafs. Under the work last
year, I thought I could finish that.

Another task is to let kafs support obtain cell server location from
AFSDB records through DNS. In the past server days, I have read the
code of cifs and some openafs code to have a idea how to implement the
task. I thought it's not too hard for the design, but a straight
forward implement. I am a little clear about this task and maybe I
could finish that first. This is support in the OpenAFS unix/windows
client.
I found no DNS query API or code can be used int the kernel, but some
of the cifs maybe useful. I should send a DNS query and resolve the
answer to cell server location. I thought I should do that in the
kernel, and the DNS query type is here,
http://www.protocolbase.net/protocols/protocol_DNS.php and
http://tools.ietf.org/html/rfc1183. Some work of that is just in the
mount point operation.
 Maybe I should pass the DNS lookup off to user space, I would talk
with the mentor later.

I have found some documentation about the kafs callback interface. I
thought it's like the nfs callback for delegation and file layout. I
thought I could try to implement some feature.

  OpenAFS and kafs to be running on the same machine using different
port numbers, is that only need to change one port and so on? And the
project making a standard keyring implementation that would allow the
client to obtain authentication tokens that would work for both kafs
and OpenAFS.


An Original  Time Line:

 Along the way, I plan on writing tests and documentation for each of
the tasks that I implement.
 now to 5-23
     As I had took this project last year, I could began to work on it
now. Before the summer start, I could be going to implement the DNS
records project or pioctl project. Be familiar with what needed to
kernel development.

5-23 to 7-13 Before Mid-term evaluations deadline finish partly of the project:

 DNS AFSDB being able to obtain cell server location without using
configuration files.
 A common pioctl implementation between kafs and OpenAFS to allow
sharing of user-space

7-13 to 8-10  Finish the other task of the project and improve the
documentation of project finished:

There are another three task should do. I would try to complete the
kafs callback interface. If I could finish it quickly. I would try to
do the other project:
A way for OpenAFS and kafs to be running on the same machine using
different port numbers.
Making a standard keyring implementation that would allow the client
to obtain authentication tokens that would work for both kafs and
OpenAFS.

8-10 to the end
Take a week to scrub code, improve documentation

There is my last year's code
http://code.google.com/p/google-summer-of-code-2009-openafs/downloads/list



-- 
Best Wish.

Wang Lei