LTSP 无盘机房运维笔记
机房几十台机器,逐台装系统维护到崩溃,于是上了 LTSP(Linux Terminal Server Project):所有客户端从网卡启动(PXE),系统镜像在服务器上统一维护。这篇记录架构和运维要点。
架构原理
1 | ┌────────────────────────────────────┐ |
客户机不需要本地磁盘,所有文件系统都在服务器上。装软件、改配置只在服务器改一次,全部客户端重启即生效——这是无盘最大的价值。
启动过程是严格分层的:客户端每个阶段要什么、服务器在哪一步提供什么,决定了排障时该查哪一环。
镜像:客户端系统的”母版”
LTSP 的镜像就是一台”样板客户机”的完整根文件系统,构建流程:
1 | # 1. 用 debootstrap 或复制模板机构建基础镜像 |
日常加装软件的姿势(不要直接在客户端上装,客户端重启会还原到镜像状态):
1 | ltsp-chroot -a amd64 -p /opt/ltsp/images/amd64 |
国内源加速
默认的官方源在国内慢得要命,镜像构建前先换国内 mirror(以 ustc 为例):
1 | # 在镜像 chroot 环境内执行 |
注意 chroot 内和服务器宿主机各换各的,两边的源配置互不影响,别只换一边。
启动链路排障
客户端起不来时,按启动顺序一层层看,不要瞎猜:
| 阶段 | 现象 | 排查点 |
|---|---|---|
| PXE 启动 | 网卡灯闪但无 DHCP offer | DHCP 服务是否在跑,next-server 是否指向 LTSP 服务器,BIOS 是否开了网络启动 |
| 内核加载 | 卡在 “Loading kernel” | TFTP 根目录权限、防火墙 69/udp 是否放行 |
| 挂载根文件系统 | kernel panic: unable to mount root fs | NFS/NBD 导出是否正常,/etc/exports 改动后是否 exportfs -ra |
| 图形登录 | 黑屏/登录后闪退 | 显卡驱动(无盘机最爱在这翻车)、/var/log/Xorg.0.log |
高频坑:显卡驱动。 无盘客户端显卡五花八门,镜像里装错驱动直接花屏。稳妥做法是镜像内置开源驱动(对虚拟机/办公场景足够),有 3D 需求的机器单独加闭源驱动并做成”例外镜像”。
日常运维清单
1 | # 看当前连接的客户端 |
镜像体积是隐形炸弹:每次 ltsp-update-image 都会生成新快照,不清的话几个月吃掉几十 GB。把镜像快照数量限制写进维护脚本,每月跑一次。
什么时候不该上无盘
无盘不是银弹,以下场景老老实实本地盘:
- 高性能计算/游戏:NFS/NBD 的 IO 延迟顶不住;
- 网络不稳定的机房:客户端全部依赖服务器和网络,交换机抖一下全军覆没;
- 客户端硬件差异极大:镜像要兼容所有硬件,驱动是个无底洞。
办公教学场景、硬件统一、网络稳定——三个条件占两个以上,无盘的体验真香。
小结
LTSP 把”装机”从体力活变成脚本活,代价是排障要理解完整的网络启动链路。记住两条心法:软件一律在镜像 chroot 里装,客户端永远当”一次性”对待,机房维护就轻松了。