Linux 驱动的 LAN 游戏屋

作者:Michael Reed

局域网聚会提供了在真实的社交环境中面对面游戏的乐趣。总的来说,由于互联网游戏的便利性,它们正在经历衰落,但 Kenton Varda 是一个非常重视局域网游戏的人。他的局域网游戏屋是一个 引人入胜的项目,最棒的是,Linux 在使其一切正常运行方面发挥了作用。

Varda 已经完成了他自己的撰写(简短长篇),所以我在这里只给出一个概述。该设置是一个拥有 12 个游戏站和一个服务器计算机的大房子。

客户端计算机本身安装在服务器机房的机架中,并通过延长线(HDMI 用于视频和音频,USB 用于鼠标和键盘)连接到楼上的游戏站。每台客户端计算机都内置在 3U 机架式机箱中,本身就是一个配置良好的游戏设备,配备了 Intel Core i5 处理器、4GB 内存和 Nvidia GeForce 560 以及 60GB SSD 驱动器。

最初,客户端计算机运行的是 Ubuntu Linux 而不是 Windows,游戏在 WINE 下执行,但 Varda 不得不放弃这个方案。正如他在他的网站上解释的那样

“令人惊讶的是,大多数游戏都能正常工作,尽管许多游戏都有小错误(例如,鼠标光标闪烁、轻微的渲染伪影等)。然而,有些游戏无法工作,或者存在严重的错误,使得它们玩起来很烦人。

随后,游戏计算机已被转移到更传统的游戏选择 Windows 7 上。WINE 无法工作真是遗憾,但我可以理解,因为很难找到现代游戏能够完美且以全速原生速度运行。WINE 的另一个问题是它容易出现回归,考虑到不断改进 Windows API 模拟的难度,这并不奇怪。Varda 指出,他更喜欢使用 Linux 客户端,因为它们更容易修改,并且许可负担更少。

Linux 仍然运行着服务器,并且所有使用的工具都是开源软件。这里的硬件是一台 Intel Xeon E3-1230,配备 4GB 内存。挂载在这台机器上的存储比客户端更复杂。除了 60GB SSD 之外,它还配备了 2 个 1TB 驱动器和一个 240GB SDD。

当客户端运行 Linux 时,它们使用对任何设置过 Linux 网络启动的人来说都很熟悉的工具链通过 PXE 启动。DHCP 将客户端指向服务器,然后服务器使用 TFTP 提供 PXELINUX。启动后,文件访问通过 网络块设备 (NBD) 完成。这是一个非常易于使用的系统,允许您通过网络将文件的内容作为块设备提供。客户端计算机运行用户模式设备驱动程序,并且可以使用 mount 命令将设备挂载在文件系统中。

通过 NBD 提供文件访问的一个障碍是,很难对文件系统的不同区域施加任何安全限制,因为服务器只看到一个文件。优点是性能,因为客户端操作系统只看到一个块设备,而且,这些安全问题在这种设置中并不相关。

不幸的是,Windows 7 无法使用 NBD,因此,Varda 不得不切换到 iSCSI(在 Linux 下以服务器和客户端模式工作)。他的网卡在进行网络启动时不符合此标准,但幸运的是,gPXE 提供了帮助,他通过 PXE 引导它。gPXE 也可用作 ISO 镜像,如果您遇到无法管理网络启动的笨拙机器,则值得了解。它还可以选择从 HTTP 服务器而不是更传统的 TFTP 服务器启动。

据 Varda 称,通过千兆以太网网络启动所有 12 台机器的速度非常快,并且一旦启动,这些机器看起来并不比使用本地存储慢多少。加载后,大多数游戏都会尝试加载尽可能多的数据,填满 RAM,并且所需的磁盘和网络带宽很小。值得注意的是,这些是该项目中可能与其他一些瘦客户端场景不同的方面。

在撰写本文时,客户端机器的本地存储似乎没有被利用。相反,客户端从服务器上的一个镜像启动到 Windows 中,该镜像包含操作系统和游戏本身。它使用 LVM 的写入时复制功能,以便将来自客户端的任何写入添加到分配给该客户端的差异镜像中。作为管理员,Varda 可以登录到 Linux 服务器并授权对主镜像进行更改以进行更新等。

摘要

总的来说,Varda 估计该项目的总成本约为 40,000 美元,当然,他需要一个提供大型物理空间的房产,以便容纳计算机和游戏工作站。

显然,该项目与大多数瘦客户端项目存在明显的差异。例如,存储、网络使用、GPU 功率和安全性之间的平衡对于办公室安装来说是不典型的。唯一的遗憾是 WINE 被证明与运行各种现代游戏的兼容性不足,但这也许对它要求过高了,并且向 Varda 致敬,感谢他尝试使其工作。

[更新: Varda 联系以进行两处小更正

写得很好。

我可能会补充一点,大约一半的 4 万美元价格标签仅用于机柜。

哦,还有。 我的房子实际上并不“大”。 1426 平方英尺在它所在的社区中更像是平均/小型。 :)

谢谢!

]

 如果您对此项目感兴趣,请查看 Varda 的页面。主要的两个帖子是这篇 简短介绍 和这篇 更长 且更具技术性的帖子。

感谢 Varda 允许转载他网站上的一些照片。

加载 Disqus 评论