Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

For various reasons I need a setup with one server, and two diskless workstations.

The workstations are to be "fat clients", which means I want to enable them to use their own CPU, memory, etc, for everything. Ideally, the workstation users should not have to notice that they are running diskless at all (except for the PXE booting, obviously...).

The workstations should run OpenSuse (some version between and including 11.2 and 11.4) since that is what we use. They don't necessarily have to run a vanilla openSuse install, but as close as possible.

The general idea is to PXE boot the workstations, and then let them mount their (root) filesystems on the server via NFS.

I tried simply copying an existing OpenSuse 11.4 installation to a directory which I then exported via NFS. The kernel and initrd were then exposed via PXE/TFTP. The problem is that the initrd from the install is tailored to the machine it was installed on, so using it as is did not work.

I have made some attempts to use LTSP (KIWI-LTSP for OpenSuse) with very limited success.

So, now to my actual question(s):

1) Apart from modifying the initrd by hand to work with the diskless workstations, is there anything else I could use to aid me?

2) One idea I had was to use the same root ("/") for both workstations, and then mount stuff like /var and /tmp as tmpfs. Are there any pitfalls to avoid here?

3) Any other ideas on how to accomplish this setup? All ideas are very welcome!

share|improve this question
1  
This might be helpful. –  Eelvex Apr 1 '11 at 4:12
add comment

2 Answers

I can not give you a specific answer for opensuse, but there should be a similar process for most distros.

In the debian way (without going too deep in details)

  1. Initrd images are built with update-initramfs (from initramfs-tools package).

    • Most of the times initrd images are good for any normal system, since the boxes are diskless, the only thing that absolutely needs to work during initrd stage is the network and nfs. If some system needs certain modules to use their NIC, they must be specified in /etc/initramfs-tools/modules before running update-initrams.
    • The default image has nfs support and the only thing needed is to add root=/dev/nfs nfsroot=x.x.x.x:/exportedfs dhcp in your pxe config's APPEND line.
  2. In the server side, the exported directory should be a working jailed environment, that would make very easy to upgrade or install software or change configuration. In the client side, /tmp can simply be a tmpfs. For /var there's a couple of options.

    • Either mount some subdirectories as tmpfs, like /var/run, /var/log /var/tmp etc.
    • Or mount a tmpfs somewhere and then use unionfs/aufs to merge it with /var. This way, the system will be able to write or change any file under /var but it won't be persistent.

    You will probably need aufs for /etc/ as well, you'll need a script that will run early in the boot process and setup some per client stuff, like getting the hostname based on the ip and recreating /etc/hosts and /etc/hostname.

  3. /home folder should also be nfs exported and mounted rw. NIS or LDAP or AD or something similar to manage user accounts (and/or configuration files), will help you keep the mess a bit.

I should note that I never did aufs over nfs, in the past I had some problems with unionfs over network shares. Some of the stuff above is theoretical and it was very long ago when I had a few diskless systems of my own.

share|improve this answer
add comment

Perceus should have the functionality you're looking for.

Perceus images are implemented as "VNFS capsules". Unfortunately, I don't think they have a ready-made SUSE capsule, but you may be able to roll your own.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.