无盘工作站

无盘工作站

由于各种原因,我需要设置一台服务器和两个无盘工作站。

工作站将是“胖客户端”,这意味着我希望让它们使用自己的 CPU、内存等来完成所有操作。理想情况下,工作站用户根本不应该注意到它们是在无盘运行(当然,PXE 启动除外……)。

工作站应该运行 OpenSuse(11.2 和 11.4 之间的某个版本),因为我们使用的是 OpenSuse。他们不一定必须运行普通的 openSuse 安装,但要尽可能接近。

总体思路是通过 PXE 引导工作站,然后让它们通过 NFS 将其(根)文件系统挂载到服务器上。

我尝试简单地将现有的 OpenSuse 11.4 安装复制到一个目录,然后通过 NFS 导出该目录。然后通过 PXE/TFTP 暴露内核和 initrd。问题是安装中的 initrd 是根据安装它的机器定制的,因此按原样使用它是行不通的。

我曾尝试使用 LTSP(KIWI-LTSP for OpenSuse),但取得的成功非常有限。

那么,现在我的实际问题是:

1)除了手动修改initrd以与无盘工作站一起工作之外,还有什么可以帮助我的吗?

2)我的一个想法是对两个工作站使用相同的根(“/”),然后将 /var 和 /tmp 等内容挂载为 tmpfs。这里有什么需要避免的陷阱吗?

3)关于如何完成此设置还有其他想法吗?所有的想法都非常受欢迎!

答案1

我无法给你关于 opensuse 的具体答案,但大多数发行版应该有类似的过程。

以 Debian 方式(无需深入细节)

  1. Initrd 映像是使用update-initramfs(来自 initramfs-tools 包)构建的。

    • 大多数情况下,initrd 映像对于任何普通系统都适用,因为这些机器是无盘的,在 initrd 阶段唯一需要工作的是网络和 nfs。如果某些系统需要某些模块来使用其网卡,则必须在/etc/initramfs-tools/modules运行之前指定它们update-initrams
    • 默认映像具有 nfs 支持,唯一需要的就是root=/dev/nfs nfsroot=x.x.x.x:/exportedfs dhcp在 pxe 配置的 APPEND 行中添加。
  2. 在服务器端,导出的目录应该是一个工作的监狱环境,这将使升级或安装软件或更改配置变得非常容易。在客户端,/tmp可以简单地是一个tmpfs。因为/var有几个选择。

    • 要么将一些子目录挂载为 tmpfs,例如等/var/run/var/log /var/tmp
    • 或者在某处安装 tmpfs,然后使用 unionfs/aufs 将其与/var.这样,系统将能够写入或更改其下的任何文件/var,但它不会持久。

    您可能/etc/还需要 aufs,您需要一个在启动过程早期运行的脚本,并为每个客户端设置一些内容,例如根据 ip 获取主机名并重新/etc/hosts创建/etc/hostname.

  3. /home文件夹也应该是 nfs 导出并挂载 rw。 NIS 或 LDAP 或 AD 或类似的东西来管理用户帐户(和/或配置文件),将帮助您保持一点混乱。

我应该注意的是,我从未在 nfs 上做过 aufs,过去我在网络共享上使用 unionfs 时遇到了一些问题。上面的一些内容是理论上的,那是很久以前的事了,当时我有一些自己的无盘系统。

答案2

珀尔修斯应该具有您正在寻找的功能。

Perceus 图像被实现为“VNFS 胶囊”。不幸的是,我认为他们没有现成的 SUSE 胶囊,但您也许可以自己推出。

相关内容