LtspPersistentHome

Differences between revisions 6 and 8 (spanning 2 versions)
Revision 6 as of 2006-11-06 00:50:05
Size: 3266
Editor: 207
Comment:
Revision 8 as of 2006-11-06 06:19:26
Size: 3485
Editor: 38
Comment:
Deletions are marked like this. Additions are marked like this.
Line 25: Line 25:
 * User plugs in media into the workstation before login.
 * User logs in.
 * the pam module pam_script will run, and determine from either /etc/ltsp/persistent_homes, or $HOME/.persistent_home, that the user wishes to have a USB persistent home dir.
 * pam_mount executes a ltspfs mount to /media/username, which mounts the vfat formatted media.
 * pam_mount then executes a layered mount of a fuse based filesystem that behaves much like the rockridge extentions for CD's, in that it maps long filenames and permissions (but not userid or groupids) into the corresponding files in a /pershome directory on the vfat media. This directory then is mounted onto $HOME for the user.
 * on logout, reverse unmounting is done.
Line 27: Line 34:
Home directories often contain a lot more than just user data. In UNIX and Linux systems they contain configuration information in files with names that start with a period, e.g. .bashrc or .Xauthority. The exact meaning of these files is context-specific. Moving such a file from one distro to another, or even one release of a given distro to another, may cause unexpected behaviour or even errors in various software components.
 * Our use case should be for an all Edubuntu server. If someone plugs their media in for a different distro's home directory, the result will be undefned.

It may be safer to auto-mount the memory stick as a folder within the student's home directory (e.g. ~/memory_stick/) or, perhaps less conveniently, in a root folder like /mnt/, though this location may vary from one computer to another and thus cause confusion.
 * This is what's already completed today. What we're talking about is actually storing the whole home directory on the memory stick.
 * Design format for /etc/ltsp/persistent_homes
   * simple text file of userids
   * $HOME/.persistent_home simply has to exist.
 * Integrate pam_mount
 * Write fuse-filesystem:
   * fuseexmp.c, simple loopback filesystem.
   * Need to handle getattr, readdir, & link (soft and hard) system calls.
   * rest are passed through.
   * prototype in Python with python-fuse bindings. Rewrite in C if performance is a problem.
 * pam_mount, fuse-python need to be promoted to main.
Line 37: Line 49:
None.
Line 41: Line 55:
 * Network transport?
   * NFS?
   * ltspfs?
 * pam_mount?
Need more input from the rest of the LTSP team.

NOTE: This page is part of the Ubuntu Specification process. Please check the status and details in Launchpad before editing. If the spec is Approved then you should contact the Assignee, or another knowledgeable person, before making changes.

Summary

Rather than store their home directories up on a server, some users would like to plug in flash media, and run off their memory stick. This currently works on the live CD. We should look at getting this to work for LTSP thin clients as well.

Rationale

Edubuntu with LTSP is enjoying much success in schools, especially in third world countries where the cost of a full function PC plus software plus support may exceed a teacher's monthly or even yearly salary. Universities and colleges in these countries also struggle to fund adequate PC labs for the use of students, which impacts on teaching. Edubuntu with LTSP could make a great contribution in tertiary education, but we need to recognise that many students at colleges, and even some at schools, have some access to computers at home, in libraries, and elsewhere. If they can only access their home directories when they are on school or college premises then they are less able to exploit any other computer resources to do homework, projects, or research.

Use cases

  • Joseph is studying journalism at a college. He gets an assignment to study and report on the employment opportunities that the growth of biofuel feedstock crops may offer to subsistence farmers. He starts developing his report on a memory stick inserted into a lab computer at college, then goes to the town library to access more information resources. He wants to further edit his report using a computer available within the library.

Scope

Design

  • User plugs in media into the workstation before login.
  • User logs in.
  • the pam module pam_script will run, and determine from either /etc/ltsp/persistent_homes, or $HOME/.persistent_home, that the user wishes to have a USB persistent home dir.
  • pam_mount executes a ltspfs mount to /media/username, which mounts the vfat formatted media.
  • pam_mount then executes a layered mount of a fuse based filesystem that behaves much like the rockridge extentions for CD's, in that it maps long filenames and permissions (but not userid or groupids) into the corresponding files in a /pershome directory on the vfat media. This directory then is mounted onto $HOME for the user.
  • on logout, reverse unmounting is done.

Implementation

  • Design format for /etc/ltsp/persistent_homes
    • simple text file of userids
    • $HOME/.persistent_home simply has to exist.
  • Integrate pam_mount
  • Write fuse-filesystem:
    • fuseexmp.c, simple loopback filesystem.
    • Need to handle getattr, readdir, & link (soft and hard) system calls.

    • rest are passed through.
    • prototype in Python with python-fuse bindings. Rewrite in C if performance is a problem.
  • pam_mount, fuse-python need to be promoted to main.

Code

Data preservation and migration

None.

Unresolved issues

BoF agenda and discussion

Need more input from the rest of the LTSP team.


CategorySpec

LtspPersistentHome (last edited 2009-07-24 03:07:01 by 201)