下一步 上一步 目录

2. 基本原理

正如已经说过的,在这种设置中,客户端基本上与服务器共享整个根文件系统(root-fs)。但是客户端当然只能获得对它的读取权限。这就是基本的工作原理。

2.1 事情并非如此简单

不幸的是,事情并非如此简单,在这种简单的设置中,有一些问题需要克服。

每个工作站(WS)都需要一些目录的可写副本

一个正常的Linux设置需要对以下目录具有写入权限

  1. /dev
  2. /var
  3. /tmp

对此有3种解决方案,其中一种仅适用于/dev

  1. 挂载一个内存盘(ramdisk),并通过解压tarball或复制模板目录来填充它。
  2. 在服务器上为每个工作站创建一个目录,并通过NFS以读写方式挂载它。
  3. 对于内核2.2,devfs可以用于/dev,这是一个类似于/proc的虚拟文件系统,用于/dev。

正如您所看到的,有很多方法可以解决这个问题。在本指南的其余部分中,假设采用以下选择

可能需要对/home的写入权限

在每个Unix客户端/服务器设置中,这都不是问题。/home是从服务器以读写方式挂载的,所以我们就这样做;)

工作站(WS)如何找出它的IP,以便它可以与服务器通信?

幸运的是,对于我们来说,这个问题已经解决了,并且Linux内核支持两种自动配置IP地址的方式

  1. RARP
  2. Bootp

Rarp是最容易设置的,bootp是最灵活的。由于大多数启动ROM(bootrom)只支持bootp,所以我们将使用bootp。

关于工作站特定的配置呢?

在Redhat上,大多数系统相关的配置文件已经在/etc/sysconfig中。我们将移动那些不在那里的文件并添加符号链接。然后我们为每个工作站挂载一个单独的/etc/sysconfig。这实际上是唯一与发行版相关的部分。在其他发行版上,您可以只创建一个sysconfig目录,移动所有不能共享的配置文件到那里,并创建符号链接。此外,/etc/rc.d/rc3.d,或其他发行版上的类似目录,可能需要对于服务器和工作站是不同的。假设所有工作站都在运行级别3中运行相同的服务,我们将为工作站和服务器创建一个单独的第3运行级别

  1. 同时创建/etc/rc.d/rc3.ws和/etc/rc.d/rc3.server
  2. 将/etc/rc.d/rc3.d符号链接到/etc/sysconfig/rc3.d
  3. 将/etc/sysconfig/rc3.d符号链接到适当的/etc/rc.d/rc3.xxx
  4. 将rc3.ws中的S99local替换为指向/etc/sysconfig/rc.local的链接,以便每个工作站都可以有自己的rc.local

其他问题

还剩下一些问题

  1. /etc/rc.d/rc.sysinit需要/var,因此/var需要在/etc/rc.d/rc.sysinit运行之前挂载或创建。如果在任何init脚本运行之前挂载工作站特定的/etc/sysconfig也会很好。
  2. /etc/mtab需要可写

下一步 上一步 目录