Usenix 教程解答深度问题
作为一名 Linux 管理员,您在培训方面有很多选择。要获得深度和实践知识的良好结合,且不重复您从书籍、手册页和实验中可以获得的知识,Usenix 技术会议的教程部分是无与伦比的。
我参加了三个教程:“Linux 内核内幕”,由 Ted Ts'o 主讲,面向考虑进入内核开发的人员;“UNIX 和 Linux 管理主题”,由大师 Trent Hein、Ned McClain 和 Evi Nemeth 主讲,内容是系统管理员应关注的新项目;以及“探索 LDAP 的潜力”,由 Samba 贡献者 Gerald Carter 讲授。
Ts'o 说内核教程提供了“足够的背景材料,让您能够深入研究源代码”,他确实为探索内核的人员提供了一份有用的路线图,而没有放慢速度去讲解实际的源代码。他做了一个有用的假设,即如果他给你一张关于事物如何运作的地图,你就能在到达那里时弄清楚细节。
他确实涵盖了一些来自 2.2 和以前内核的历史兴趣项目,但主要他涵盖了 2.4,偶尔会瞥一眼或推测 2.5 中正在发生的事情。Ts'o 没有简单地介绍事物如何运作,而是向听众介绍了设计决策背后的许多性能考虑因素。例如,他结合 Mindcraft 在 1999 年为 2.2.6 内核周到提供的免费性能测试,介绍了旧的中断 bottom halves 和新的(2.4 版本)tasklets。任何 CPU 上只能运行一个 bottom half,而不同的 CPU 可以运行不同的 tasklets。
tasklet 创新有多有效?Mindcraft 的主页仍然链接到 2.2.6 测试这一事实应该能说明一些问题。撇开性能之争不谈,一位长期内核贡献者对这则轶事的看法有助于有志于成为内核黑客的人了解内核团队认为什么重要。
编写内核代码的其他注意事项包括:每个进程都有自己的 8Kb 内核堆栈,这不足以在堆栈上进行严肃的递归或大型数组。此外,中断可以借用当前运行进程的内核堆栈空间。
最后,尽管本次会议主要是为内核开发人员提供的概述,但 Ts'o 也为使用未修改内核的人们提出了一些很好的建议。例如,关于交换分区至少应等于物理 RAM 大小的旧建议现在已经过时。2.4 及更高版本的内核将丢弃已存在于交换分区上的任何页面,而不会访问磁盘,因此最好拥有两倍于物理 RAM 大小的交换分区,以增加这种情况发生的可能性。
添加更多 RAM 仍然是您性价比最高的性能提升方式。在“为 IBM 工作的优势”方面,Ts'o 的笔记本电脑配备了 512MB 内存,他提到 IBM ThinkPad T23 最多可接受 1GB 内存。最后一个性能提示是,在创建新的 ext2 或 ext3 文件系统时,通常应使块大小与内核页面大小相同。
总而言之,对于刚开始内核开发或进行严肃性能调优,并有兴趣开发事物如何运作的准确心智模型的人来说,这是一个有价值的教程。
在“UNIX 和 Linux 管理主题,第一部分”中,《Linux 系统管理手册》的三位合著者 Trent Hein、Ned McClain 和 Evi Nemeth 介绍了一些尚未出现在任何书籍中,但专业系统管理员需要了解的新主题。
在当今世界,Linux 服务器越来越大,责任也越来越大,其中最相关的是 Linux 逻辑卷管理器部分。使用 LVM,您可以增长和缩小文件系统,而无需重新分区磁盘,并且对于 ext3 或 ReiserFS,甚至无需重新挂载文件系统。LVM 的另一个优点,也许更与日常使用相关,是快照文件系统的能力——快速创建看起来像是完整副本,时间冻结的快照。
当然,快照实际上并不包含原始数据的所有副本。它只存储原始数据中任何已更改块的未更改版本。在创建快照时,您需要指定允许的空间大小。您可能会猜到,在大多数情况下,您应该拍摄快照,将其转储到磁带,然后删除它。
虽然教程的 LVM 部分是 Linux 特有的,但其余部分几乎与任何操作系统都相关。BIND 9 是一个完全重写的版本,包含一些您现在可以开始使用的功能,以及一些重要决策仍需制定的功能。Nemeth 说,您现在可以开始使用 TSIG/TKEY 来验证您的名称服务器之间的区域传输,因为您可以创建和管理必要的密钥。诸如 .com 之类的 TLD 将如何处理更复杂的 DNSSEC 的密钥管理仍在制定中。
如果不涵盖人为因素,任何关于安全性的章节都不完整。在让用户选择好的密码方面,教育他们比简单地拒绝容易猜测的密码更好。确保您的 passwd 实用程序给出诸如“太短”或“基于字典单词”之类的理由,以帮助用户选择一个好的密码。
教育用户了解安全性确实有帮助。“你需要让你的用户稍微认同,”Nemeth 说,教育他们了解安全性有助于实现这一点。此外,当用户绕过安全措施时,安全措施最终可能会降低安全性。“我讨厌密码过期程序,”Nemeth 说。它们让用户在两三个密码之间轮换——无论他们能逃脱多少——并让密码过期工具高兴。
系统管理员最棘手的法律问题之一是发现未经授权的专有软件副本。在许多情况下,您的直接主管可能是违规者之一,并可能告诉您不要管它。但这并非一个选项。“有时你必须向上级管理链申诉,并以书面形式提出你的投诉。有时你不得不辞职,”Nemeth 说。
招聘和解雇是另一个难题。Nemeth 建议您向求职者发放问卷,并添加一些虚构的技术来衡量求职者的“吹牛水平”。如果有人说他或她可以在没有监督的情况下“连接 MX 连接器”,请保持警惕。在核对推荐信时,请记住,其中一些人不愿意明确地说任何负面的话。“认真倾听前任老板的话,”她说。
在一家大公司或公共部门,在雇佣的头几个月解雇某人可能明显更容易,所以不要拖延。无论如何,“如果你不处理那些没有做好本职工作的人,你将会失去优秀的人。”
最后一个常识是,当您有几位管理员在同一组机器上工作时,为每个人保留一份“日记”,其中涵盖硬件和软件更改以及任何异常事件。并标记所有内容。
Gerald Carter 的 LDAP 教程解决了系统管理员可能很快面临的最困难的问题之一:建立一个安全、可持续的公司范围目录,以与许多供应商的服务器程序集成。一切似乎都在使用 LDAP:登录、Samba、DNS、Web 服务器、IMAP 和 POP 服务器等等。Carter 调查了听众他们正在部署哪些 LDAP 服务器,来自 iPlanet(前身为 Netscape)和免费 OpenLDAP 项目的服务器似乎是最常见的。
由于想要与 LDAP 对话的程序数量如此之多,可能没有足够的时间来详细介绍每个程序,因此本教程侧重于模式设计考虑、安全性和回答听众提问等高层次问题。与 PAM 的集成得到了详细的介绍,PAM 是使基于 LDAP 的身份验证作为 NIS 密码文件的简单替代方案工作的关键。
Carter 即将完成一本关于 O'Reilly and Associates 的 LDAP 书籍,这个教程不禁让我觉得我可能需要它。像其他教程一样,这个教程并没有侮辱听众的智力或查找手册页的技能。
由于所有讲师都拥有丰富的经验,所有三个 Usenix 教程都使大量的问答时间变得物有所值。当一位计算机讲师说“这是一个好问题”时,您可能会期望他或她接下来会说“我会查一下并邮寄给您”。但这里不是这种情况。
也没有无聊的讨论、浪费时间的日程调整、管理琐事和与视听相关的教育浪费。Usenix 举办教程已经很长时间了,他们的专业精神显而易见。休息时间安排得很好,可以用来整理笔记、查看邮件、喝咖啡以及与其他与会者和讲师交谈。
讲义材料和幻灯片内容精简但有价值。如果您在人们认为您是 Linux 或 UNIX 专家的环境中工作,那么您可以指望通过参加信息密集的 Usenix 教程来最大化您的培训预算的投资回报率。
Don Marti 是 Linux Journal 的技术编辑。
电子邮件:dmarti@ssc.com