文章
服务器与存储管理
作者:Manik Ahuja 和 Kamal Dodeja
2013 年 7 月发布
|
本文是一个由六部分组成的系列的第 1 部分,其目的是帮助 SUSE Linux 管理员快速了解并执行 Oracle Linux 上的日常系统管理任务。
该系列概括了 Linux 系统管理主要领域之间的相似点和区别,例如,文件系统差异、启动序列、配置常用后台程序(如邮件和 Web)以及软件包管理。纵观整个系列,您将发现实际配置示例以及实现特定目标所需的步骤。这些示例可重复用于 Oracle Linux 和 SUSE Linux。
阅读该系列文章后,您不仅能够辨别两个操作系统之间的微妙差异,还能轻松执行日常任务。该系列还将帮助您降低从 SUSE Linux 迁移到 Oracle Linux 所带来的任何风险。
在该系列中,Oracle Linux 6.1 和 SUSE Linux Enterprise Server 11 作为两个基本操作系统进行比较。所有配置示例和解释说明均基于 Oracle Linux 6.1 或 SUSE Linux Enterprise Server。
每个操作系统厂商都提供一个支持中心,用于注册系统以及下载最新更新、安全补丁和勘误表。Oracle 针对 Oracle Linux 提供了 Unbreakable Linux Network,SUSE 通过 Novell Customer Center (NCC) 提供支持服务订阅、Linux 软件补丁、更新和修复程序。
以下内容概要介绍如何配置 Unbreakable Linux Network 和 NCC 才能获取软件包、更新和勘误表。
安装 Oracle Linux 6 操作系统后,首先应在 Unbreakable Linux Network 注册您的服务器。Unbreakable Linux Network 是面向 Oracle Linux 支持订阅用户的综合资源,提供 Linux 软件补丁、更新和修复程序。可通过 https://linux.oracle.com/ 访问 Unbreakable Linux Network。
要在 Unbreakable Linux Network 注册 Oracle Linux 6 服务器,请执行以下步骤。整个过程简单易懂。
首先,确保您的系统能够访问互联网。Unbreakable Linux Network 要求端口 80 和 443 可用于正在注册的服务器和 Unbreakable Linux Network 之间的通信。与网络管理员合作,确保正在注册的服务器能够访问 Unbreakable Linux Network。
接下来,启动一个终端会话,以 root 用户身份执行以下命令:
.# uln_register
然后,您应看到图 1 所示的欢迎屏幕。

图 1. Unbreakable Linux Network 欢迎屏幕
在欢迎屏幕中输入身份验证详细信息。
访问 http://linux.oracle.com/register,您可以获得该屏幕上要求的 Unbreakable Linux Network 登录 ID。
您还需要输入购买 Oracle Linux 支持服务订阅时提供的有效 Oracle Linux 支持服务客户支持服务标识 (CSI)。联系 Oracle 销售代表,了解如何购买 Oracle Linux 支持服务订阅。还可通过 oracle.com/linux 上的 Oracle Linux Store 在线购买 Oracle Linux 支持服务。
有了 CSI 后,您将能够创建 Unbreakable Linux Network 登录 ID,访问 Oracle Linux 支持服务、Linux 软件补丁、更新和修复程序。您还可以根据所选的支持服务级别提升客户支持服务计划。
提供登录详细信息后,单击 Advanced Network Configuration,输入代理详细信息(如果有的话)。然后,依次单击 Close 和 Forward 进入下一步。

图 2. Unbreakable Linux Network 的 Advanced Network Configuration 屏幕
如果登录详细信息正确,您将看到以下屏幕。

图 3. Unbreakable Linux Network 系统配置文件屏幕
单击 Forward 后,此过程将收集正在注册的服务器的硬件和软件包信息,并将其发送至 Unbreakable Linux Network。必须这样才能确保相应的数据包可供服务器使用。这还有助于识别正在注册的服务器,以便稍后维护和管理其状态。

图 4. Unbreakable Linux Network 进度对话框
下一个屏幕显示该系统可用的频道。

图 5. Unbreakable Linux Network 频道订阅屏幕
单击 Finish 完成注册过程。

图 6. Unbreakable Linux Network 完成设置屏幕
注册服务器后,您可以访问 Unbreakable Linux Network 查看、编辑和管理订阅。为此,执行以下步骤:
https://linux.oracle.com。
图 7. Unbreakable Linux Network 登录屏幕

图 8. Unbreakable Linux Network 登录

图 9. Home 选项卡

图 10. Systems 选项卡

图 11. System Detail 屏幕
根据您的系统配置和支持服务级别,您将能够访问各种 Unbreakable Linux Network 频道。作为 Oracle Linux 标准支持服务客户,您还能获得 Ksplice 技术,并且可以订阅 Ksplice 频道。Ksplice 频道提供内核更新,可实时应用于正在运行的 Oracle Unbreakable Enterprise Kernel。这对 Oracle Linux 客户来说是一项显著的优势:客户无需停机就能更新正在运行的系统的内核。您可以在 http://oss.oracle.com/ksplice/docs/ksplice-quickstart.pdf 或 oracle.com/linux 了解有关 Ksplice 的更多信息。

图 12. Manage Subscriptions 屏幕
Novell Customer Center (NCC) 是一个集中化工具,用于管理产品和订阅以及系统和管理员。有关 NCC 的更多信息,请参见 www.novell.com/customercenter/。在 NCC 注册 SUSE Linux Enterprise (SLE) 计算机可将系统添加到 NCC 以便管理,使系统能够接收在线更新。可以在 SLE 安装过程中或安装之后注册计算机。
配置和测试网络后,在安装过程中执行 NCC 注册。如果未配置和测试网络,将跳过 NCC 配置。要在 NCC 上注册,请选择 Configure Now (Recommended),在 Novell Customer Center Configuration 屏幕中单击 Next。要跳过配置,稍后执行,请选择 Configure Later。

图 13. Novell Customer Center Configuration 屏幕
如果在安装过程中有意或因为网络问题跳过 NCC 配置,稍后均可执行配置。要注册,请执行以下操作:

图 14. YaST Control Center 屏幕

图 15. Novell Customer Center Configuration 屏幕的另一个视图
Linux 启动过程是 Linux 操作系统初始化的过程。在 Linux 中,启动过程中的控制流将从计算机 BIOS 移交至引导加载程序,最后移交至内核。然后,内核会启动调度程序(允许多任务),运行第一个用户环境(在内核空间外)程序 — init(主要负责针对每个运行级别运行启动脚本)。此时,如果外部程序不进行调用,内核将处于空闲状态。init(initialization 的缩写)程序面向基于 Linux 的计算机操作系统,可以生成所有其他进程。
启动过程分为几个阶段。
/boot/grub/menu.lst 中的信息引导内核。initrd 映像加载其他设备,然后从 /sbin/init 启动 init 进程。init 进程根据 /etc/inittab 文件启动其他进程。/etc/rc.d/rc 或 SUSE 中的 /etc/init.d/rc 运行相应的 /etc/rcX.d 脚本启动其他组件。默认内核位置为 /boot,其中包含内核和 initrd 映像。
默认内核模块位置为 /lib/modules/'uname -r'/。
| 运行级别 | 说明 |
|---|---|
| S 或 s | SUSE Linux 中的基本单用户模式。在 Oracle Linux 中,与 init 级别 1 相同。 |
| 0 | 关机状态。关闭操作系统,尝试关闭电源(如果系统支持)。 |
| 1 | 单用户模式。 |
| 2 | 无 NFS 资源共享的多用户。仅文本登录。 |
| 3 | 有 NFS 资源共享的多用户。仅文本登录。 |
| 4 | 无描述(替代多用户)。 |
| 5 | 完全多用户、NFS 资源共享以及通过 X 显示管理器实现的图形登录。 |
| 6 | 重新启动。 |
| 紧急 | 忽略 /etc/inittab 文件,启动默认 shell。 |
启动配置涉及多个文件。
/etc/inittab 文件:当内核加载 /sbin/init 程序时,它读取 /etc/inittab 文件,看看默认运行级别是什么、需要运行哪些脚本。初始化后,无论管理员何时更改系统的运行级别,都会使用该文件中的信息。如果您修改 /etc/inittab 文件并且想指示 init 重新加载该文件,可以通过 init q 或 init Q 命令执行此操作。
与每个运行级别相关的脚本目录在 Oralce Linux 中为 /etc/rcX.d/,在 SUSE Linux 中为 /etc/init.d/rcX.d,其中 X 代表运行级别。通常,这些目录中的脚本大部分是 /etc/init.d/ 主要服务脚本的符号链接。
例如,在 Oracle Linux 中,/etc/rc3.d/S80sendmail 是 /init.d/sendmail 脚本的符号链接,/etc/rc1.d/K30sendmail 是相同脚本的符号链接。
Oracle Linux 针对每个运行级别仅提供一套脚本,也就是说,对于运行级别 3,init 程序仅运行适用于运行级别 3 的脚本来达到其目标运行级别,而不运行更低运行级别的脚本。请特别注意您手动存放 rc 脚本的位置。
在 Oracle Linux 中,通过将参数 restart 或 status 传递给 /etc/init.d directory 中的服务脚本,可重新启动大多数服务或查看其状态:
# /etc/init.d/sendmail restart # /etc/init.d/sendmail status
以不带任何选项的方式运行脚本可列出该特定脚本支持的选项:
# /etc/init.d/sendmail
Usage: /etc/init.d/sendmail {start|stop|restart|condrestart|status}
有时,您可能需要阻止某些服务在启动时初始化时自动运行。在 Linux 中,可以使用 chkconfig 命令或 GUI 程序,例如,在 Oracle Linux 中使用系统配置服务,在 SUSE Linux 中使用来自 YaST2 的系统/运行级别编辑器模块。
作为一个相当普遍的做法,系统管理员通常在安装过程中禁用 iptables 服务。该服务提供一种保护操作系统免遭网络相关威胁攻击的方法。一旦 Linux 服务器的配置完全符合要求,配置一套合适的 iptables 规则并启用 iptables 服务是一个不错的主意。
以下信息首先概述了 chkconfig 命令,演示了如何利用该命令查看各种 Linux 服务的当前状态。然后,下一节举例说明如何配置一些 iptables 规则示例,让 iptables 服务在启动序列中自动启动。
通过 ckhconfig -- list 命令,您可以查看 Oracle Linux 服务器上各种服务的当前启动时状态,如清单 1 所示。
# chkconfig -- list abrtd 0:off 1:off 2:off 3:on 4:off 5:on 6:off acpid 0:off 1:off 2:off 3:off 4:off 5:off 6:off atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off ... ... iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off ... ... SUSE Linux to Oracle Linux: Guide for System Administrators 17 ... ...
清单 1
在清单 1 中,您可以看到
abrtd 服务设置为在运行级别 3 和 5 自动启动。acpid 服务设置为在所有运行级别保持关闭状态。atd 服务被设置在运行级别 3、4 和 5 自动启动。iptables 服务设置为在所有运行级别保持关闭状态。iptables 规则,然后让 iptables 服务在启动序列中自动启动,这将阐释启动序列。iptables 的完整概述不在本文的讨论范围内,不过您可以参考 Netfilter 上的文档和 iptables(8),了解更多信息。
iptables 示例该示例向 iptables 添加规则,丢弃所有传入连接,但允许源自服务器的传出流量。
# iptables -P INPUT DROP # iptables -P FORWARD DROP # iptables -P OUTPUT ACCEPT # iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT # iptables -L -v -n ### *** now ping and wget should work *** ### # ping oracle.com $ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
此时,iptables 规则在内存中运行,但它们将在服务器重新启动时丢失。要在重新启动后恢复这些规则,请使用以下命令将它们保存到文件中。
# /sbin/service iptables save
注意,以上命令仅当 iptables init 脚本出现在 /etc/init 目录中时运行。init 脚本包括在发行版中,在安装过程中安装。
成功执行以上命令后,iptables init 脚本运行 /sbin/iptables-save 程序,将当前 iptables 配置写入 /etc/sysconfig/iptables 文件。任何现有的 /etc/sysconfig/iptables 文件都将另存为 /etc/sysconfig/iptables.save。
最后一步是让 iptables 在每次重新启动时自动启动,并调用 /etc/sysconfig/iptables 文件加载您之前保存的 iptables 规则。为此,请执行以下命令:
# chkconfig --add iptables
无论是向 chkconfig 控制添加服务还是从中删除服务,都会在 /etc/rc.d 子目录下执行以下操作:
chkconfig --add 命令时,它会创建一个符号链接文件,在相应的 rc 目录下启动和停止服务。chkconfig --del 命令时,它会从相应的 rc 命令中删除符号链接文件。要确认已成功添加 iptables 服务,可使用以下命令:
# chkconfig --list | grep iptables iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
您可以看到,iptables 服务现在已设置为在启动时自动启动,当系统在运行级别 3、4 或 5 启动时将运行。通过 chkconfig 实用程序添加服务时,这是默认行为。
还可以使用 chkconfig 实用程序以各种其他方式管理启动服务。下面列出了更多示例供快速参考:
# chkconfig --list | grep 3:on
grep 筛选针该服务的 chkconfig --list 输出。例如,要查看网络服务,请使用以下命令:# chkconfig --list | grep network
shutdown、reboot、halt、poweroff 和 init 命令在 Oracle Linux 和 SUSE Linux 中都存在:
init 6 reboot
init 0 shutdown/halt/poweroff
Manik Ahuja 是 Oracle Linux 和 Oracle VM 产品的全球销售咨询总监。在过去 18 年间,他一直为客户提供技术咨询解决方案。除了提供售前解决方案外,他还为各种 Linux 和开源产品构建和管理产品与服务组合。他是公认的开源产品专家,经常为各种 IT 杂志撰写技术文章。他擅长的领域包括设计和实施高可用性集群、数据中心整合以及基于云的解决方案。
Kamal Dodeja 是 Oracle Linux 销售咨询团队的首席顾问和资深成员。他拥有计算机应用专业硕士学位,具有超过 10 年的 IT 经验。Kamal 擅长设计和实施高度优化的 Linux 和虚拟化解决方案。他经常主持召开概念验证研讨会,为世界各地的潜在客户提供售前支持。
| 修订版 1.0,2013 年 4 月 24 日 |