现在您作为团队中的 IBM® AIX® 专家已有许多年,老板决定要尝试一下 System p™ 上的 Linux®。您可以抵制这种变化,或者可以接受并学习 Linux,即使不是为了爱它而学习它。本文的目的是向 AIX 管理员介绍 Linux。本文将向您介绍您需要了解些什么知识,才能使得到 Linux 的转换更加简单。本文还将向您说明用于执行特定任务的等效命令,同时将讨论进程管理、文件系统管理、如何查看系统信息、安装软件包,以及您作为系统管理员需要了解的其他一些信息。虽然您不会通过阅读本文而成为 Linux 专家,但是本文将为您需要了解的知识提供一个很好的起点。
引言
探索一下 Linux 通常会让大多数 AIX 管理员感到震惊。虽然 Linux 在许多方面只是 UNIX® 的另一种变体,但是在其他方面,它是一种非常不同的类型。对于从 Solaris 或 HP-UX 转换到 AIX 的 UNIX 管理员,您会理解我在说什么。如果 UNIX 并非始终是 UNIX(请考虑 Solaris、HP-UX 和 AIX 之间的区别),那么它们之间的区别有多大,Linux 与 AIX 的区别就有多大。此外,对于 Linux,您将不能求助于 smitty。
一般地讲,Solaris 管理员要比 AIX 管理员更容易转换到 Linux,因为 Solaris 和 Linux 上都存在更多需要编辑的文件。与 AIX 相比,Solaris 和 Linux 还是更加命令行驱动的。您作为 AIX 管理员所具有的优势在于硬件是相同的,因此如果您熟悉 System p 上使用 AIX 的虚拟化,那么您将发现大量的相似性。如果您是在 x86 计算机上使用 Red Hat Enterprise Linux 5 (RHEL5),您应该在使用基于 Red Hat 的 Xen 的虚拟化进程(有关 Xen 的更多信息,请参阅参考资料)。在 System p 上,您将使用在 AIX 上所使用的相同 PowerVM™。虽然虚拟化超出了本文的范围,但这是个需要了解的重要概念,对您来说是强有力的知识补充(有关该主题的一些优秀文章,请参阅参考资料部分)。
AIX 管理员知道,虽然他们的环境具有丰富的命令行工具集,但是其中许多命令在重新启动后不再保持,这是他们依赖 smit 的主要原因之一。对于 Linux,存在更多必须手动编辑的文件,并且一般地讲,需要运行更多的命令才能完成相同的任务。Red Hat 还具有一个前端,该前端是各种 system-config-* 命令的组合,包括:system-config-display、system-config-printer、system-config-network、system-config-network、systems-config-packages、systems-config-authentication、system-config-users 和 system-config-lvm。其中有些命令将在文本模式下工作,有些命令将要求您运行 X 环境。强烈建议您运行 X 环境,因为 RHEL5 上的 GUI 工具除了良好的设计之外,还增加了大量的价值。
虽然 RHEL5 具有功能丰富的 GUI 环境,您可能学习并喜欢上它,但它不如 smitty 那么高效。对于 AIX,您可以使用 smit 或 smitty;对于 Liunx,您并非始终可以选择使用文本或 GUI。对于 Linux,您也没有对象数据管理器(Object Data Manager,ODM),AIX 利用 ODM 来管理设备和配置文件。对于 Linux,您将依赖于编辑基于文本的文件。就本文而言,我将使用 AIX V6.1 - TL 0 和 SP2,以及内核 Linux 版本为 2.6.18-53.el5 的 Red Hat Enterprise Linux Server 5.1 版。两个操作系统都运行在带有一个 CPU 和 2GB RAM 的 IBM System p 570 上。
下一步,您将看到用于获取系统相关信息的工具。
系统信息
作为 AIX 管理员,您也许习惯于运行 prtconf 和若干 lscfg 或 lsattr 命令。对于 RHEL5,您将转到 /proc 并对文件执行 cat 命令以获取该数据。在 AIX /proc 中,这些文件与在 Linux 中一样,也是虚拟文件,并使用诸如进程间通信等机制来显示硬件和某些设置。这些命令或多或少地用于“p”命令,以便检索有用数据。例如,清单 1 显示了一个这样的命令 pstat 的 AIX 输出。
清单 1. pstat 命令的输出
lpar23ml16fd_pub[/] > pstat -a PROC TABLE: SLT ST PID PPID PGRP UID EUID TCNT NAME 0 a 0 0 0 0 0 1 swapper FLAGS:swapped_inno_swapfixed_prikproc 64bit |
当您查看 RHEL5 上的 /proc 目录结构时,可以看到类似于清单 2 的内容。
清单 2. RHEL5 上的 /proc 目录结构
root@172_29_140_173 proc]# ls 1 139 1551 2712 2955 6 driver kmsg self 10 142 1574 2713 2956 7 execdomains loadavg slabinfo 1015 143 170 2745 2989 8 fb locks stat 1016 144 1793 2746 2990 9 filesystems mdstat swaps 1047 1447 1810 2814 3 asound fs meminfo sys 1170 145 1814 2816 3031 buddyinfo ide misc sysrq-trigger 1174 1450 2 2817 350 bus interrupts modules sysvipc 1178 1462 205 284 378 cmdline iomem mounts tty 1182 1486 206 2850 379 cpuinfo ioports net uptime 1183 149 207 2852 380 crypto irq partitions version 1187 1507 208 2853 4 devices kallsyms ppc64 vmstat 1191 151 209 2888 403 device-tree kcore rtas zoneinfo 1201 1549 210 2892 432 diskstats keys schedstat 1202 1550 2710 2953 5 dma key-users scsi [root@172_29_140_173 proc]# |
对于 AIX,您不会看到所有这些将从中搜集信息的文本文件。在 RHEL5 分区上,对文件执行 cat 命令以获取有关系统的某些信息。清单 3 显示了 cpuinfo。
清单 3. 使用 cpuinfo 获取系统信息
cd /proc[root@172_29_140_173 /]# cd /proc[root@172_29_140_173 proc]# more cpuinfo processor : 0 cpu : POWER5 (gr) clock : 1654.344000MHz revision : 2.1 (pvr 003a 0201) processor : 1 cpu : POWER5 (gr) clock : 1654.344000MHz revision : 2.1 (pvr 003a 0201) timebase : 207050000 platform : pSeries machine : CHRP IBM,9117-570 [root@172_29_140_173 proc]# \ |
其他值得“cat”的文件包括 meminfo、partitions、version 和 filesystems。另一个有用的 Linux 命令是 dmesg,如清单 4 所示。
清单 4. 使用 dmesg
root@172_29_140_173 ~]# dmesg | more Using pSeries machine description Page orders: linear mapping = 24, virtual = 12, io = 12 Found initrd at 0xc000000002400000:0xc000000002679400 Partition configured for 2 cpus. Starting Linux PPC64 #1 SMP Wed Oct 10 16:38:58 EDT 2007 ----------------------------------------------------- ppc64_pft_size = 0x19 physicalMemorySize = 0x80000000 ppc64_caches.dcache_line_size = 0x80 ppc64_caches.icache_line_size = 0x80 htab_address = 0x0000000000000000 htab_hash_mask = 0x3ffff ----------------------------------------------------- Linux version 2.6.18-53.el5 (brewbuilder@js20-bc2-12.build.redhat.com) (gcc version 4.1.2 20070626 (Red Hat 4.1.2-14)) #1 SMP Wed Oct 10 16:38:58 EDT 2007 |
此命令类似于 prtconf,并且还用于进行错误日志记录,类似于 errpt。可以看到,还存在从 dmesg 命令中收集到的特定于 POWER 的信息。
下一步,您将看到文件系统和逻辑卷管理(Logical Volume Management,LVM)所需要的工具。
文件系统和磁盘管理
AIX 的缺省 JFS 文件系统是 JFS2,而 RHEL5 的缺省 JFS 文件系统是 ext3,这是 ext2 的增强版本。一个新的 RHEL5 命令是 resize2fs(取代 ext2onliner),此命令允许动态地放大或缩小已挂载的文件系统。这是通过 Linux 2.6 内核来支持的。务必注意的是,此命令不操作分区的大小,因此在放大文件系统之前,您必须确保基础分区足够大,能够支持文件系统放大操作。对 AIX 来说也是类似的概念,其中您必须确保卷组足够大,能够支持这种文件系统放大操作。
这是您将需要习惯的另外一些东西。正如您所知道的,对于 AIX,一切都已经在操作系统之外使用 LVM 来进行管理了。对于 Linux,您将需要处理分区,然后才能配置 LVM。一切都与 AIX 集成得更为紧密。
返回到 RHEL5,分区信息可以使用 fdisk 或 parted 来进行收集(请参见清单 5)。我更喜欢 parted,因为它更容易使用。
清单 5. 使用 parted 来获取分区信息
[root@172_29_140_173 sbin]# parted GNU Parted 1.8.1 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Model: AIX VDASD (scsi) Disk /dev/sda: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.3kB 8225kB 8193kB primary boot, prep 2 8225kB 115MB 107MB primary ext3 3 115MB 19.3GB 19.2GB primary ext3 4 19.3GB 21.4GB 2089MB primary linux-swap |
还可以使用 mkfs 来创建 Linux 文件系统,该命令是 mke2fs 工具的前端。清单 6 显示了如何创建 ext3 文件系统。
清单 6. 使用 mkfs 来创建 ext3 文件系统
[root@172_29_140_173 sbin]# mkfs.ext3 /dev/sda1 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 2000 inodes, 8000 blocks 400 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=8388608 1 block group 8192 blocks per group, 8192 fragments per group 2000 inodes per group Writing inode tables: done Creating journal (1024 blocks): done Writing superblocks and filesystem accounting information: done |
下面尝试使用前面提到的 resize2fs 实用工具来调整文件系统的大小(请参见清单 7)。
清单 7. 尝试调整文件系统的大小
root@172_29_140_173 sbin]# resize2fs /dev/sda1 1G resize2fs 1.39 (29-May-2006) The containing partition (or device) is only 8001 (1k) blocks. You requested a new size of 1048576 blocks. |
如清单 7 所示,由于前面讨论过的分区问题,该实用工具无法工作。请记住,分区大小必须能够支持新的 FS,这类似于在 AIX 上,卷组必须有足够大的空间来增加文件系统空间。请注意,与 AIX 类似,您现在可以缩小 ext3 文件系统。
LVM
图 1 是使用 system-config-lvm 工具的 RHEL5 LVM 视图。
图 1. 使用 system-config-lvm 工具的 RHEL5 LVM
对于 Linux,在能够使用 LVM 之前,您需要初始化分区以支持 LVM。当该过程完成时,分区将分类为未分配的物理卷。然后,您可以创建卷组,将物理卷添加到现有的卷组,或者从 LVM 中完全删除某个卷。可供使用的命令行工具包括 lvcreate、lvremove 和 lvextend。
软件包和软件
本部分讨论软件安装和总体软件包管理所需要的工具。
非常对不起 AIX 同胞们,但是您必须学会在没有 lslpp 的情况下生存。对于 Linux,您拥有 RPM。许多 AIX 管理员已经知道这些命令,因为 AIX 自从 5L 以来已经具有 RPM 功能。
下面使用 -qa 标志来查询系统中的软件包,如清单 8 所示。
清单 8. 使用 -qa 标志来查询系统中的软件包
root@172_29_140_173 sbin]# rpm -qa |more popt-1.10.2-47.el5 pcre-6.6-1.1 libICE-1.0.1-2.1 libattr-2.4.32-1.1 libxslt-1.1.17-2 libgfortran-4.1.2-14.el5 bc-1.06-21 |
要安装软件包,可以使用 -i 标志来升级 -U 标志。RPM 的功能非常强大,但不是最容易学习的工具。确保花些时间学习此工具,或者使用对您可用的更加完善和更加用户友好的前端。其中一个这样的前端就是 Yellow Dog Updated Modified (YUM)。这是一个交互式、自动化的更新程序,可用于维护使用 RPM 的系统。RHEL4 使用 up2date 软件包管理器,RHEL5 使用 YUM(有关 YUM 的更多信息,请参阅参考资料)。
要使用 chkconfig 命令(我将在下一个部分中讨论此命令)在系统上激活每日 YUM 更新,可以使用以下命令: [root@172_29_140_173 sbin]# /sbin/chkconfig --level 345 yum on; /sbin/service yum start.
下一步,您将了解进行网络配置所需要的工具。
网络管理
要在 RHEL5 中支持网络,您可以编辑文件,使用命令行,使用网络管理实用工具 system-config-network,或者使用 setup 命令。下面您将使用 setup,该命令实际上用于对系统进行初始配置。在启动 setup 以后,您将看到 Choose a Tool 对话框,其中包含不同的配置选项,包括身份验证、防火墙、键盘、网络、系统服务、时区和 X 配置。
请从此对话框中选择 Network configuration 以调出 TCP/IP 配置对话框,如图 2 所示。
图 2. Configure TCP/IP 对话框
在该对话框中,您可以为网络接口控制器(Network Interface Controller,NIC)设置适当的 IP 信息、地址、网络掩码、网关和名称服务器。对于 RHEL5 网络,您还可以使用应该已经习惯了的标准 UNIX 命令,例如 route、netstat 命令,以及诸如 ping 和 traceroute 等其他实用工具。
下一步,您将了解进行服务管理所需要的工具。
服务管理
AIX 具有系统资源控制器,并且您可以利用诸如 lssrc 和 startsrc 等命令。RHEL 具有不同的实用工具,包括 system-config-services 命令。正如前面提到过的,您还可以使用 setup 命令来完成某些服务管理工作。Setup 实际上允许指定希望在启动时启动和调出哪些服务。其他方法是使用 service 命令和 chkconfig 命令。
可以使用 service 命令来获取状态信息,如清单 9 所示。
清单 9. 使用 service 命令
root@172_29_140_173 sbin]# service --status-all amd is stopped anacron is stopped arpwatch is stopped atd is stopped auditd is stopped automount is stopped |
或者,您可以使用 chkconfig 服务,与脚本一起该服务也是非常便利的(请参见清单 10)。
清单 10. 使用 chkconfig 服务
root@172_29_140_173 sbin]# chkconfig --list NetworkManager 0:off 1:off 2:off 3:off 4:off 5:off 6:off NetworkManagerDispatcher 0:off 1:off 2:off 3:off 4:off 5:off 6:off amd 0:off 1:off 2:off 3:off 4:off 5:off 6:off anacron 0:off 1:off 2:off 3:off 4:off 5:off 6:off |
您可以编辑的文本文件包括 /etc/sysconfig/network-scripts、/etc/resolv.conf 和 /etc/hosts。
下面查看一个表(请参见表 1),其中对一些最流行的 AIX 和 RHEL5 命令进行了比较。
表 1. AIX 和 RHEL5 上的命令比较
类型 | AIX | RHEL5 |
---|---|---|
添加用户 | mkuser、chuser、lsuser | useradd、usermod |
添加文件系统 | crfs、chfs | mke2fs、mkfs |
维护逻辑卷 | mklv、chlv | lvcreate、lvextend、lvdisplay |
添加交换空间 | lsps -a | swapon -s |
管理进程 | 系统资源控制器 (SRC) 命令 | chkconfig、services、setup |
System-info | prtconf more | /proc/cpuinfo、mem |
内核参数 | vmo、ioo、schedo、no | more /etc/sysctl.conf |
文件系统:缺省 | jfs2 | ext3 |
虚拟化 | PowerVM | PowerVM——仅在 System p 上(Xen 在 x86 版本中可用) |
GUI | smit | system-config-* 命令、setup |
Oslevel | oslevel -s | more redhat-release |
软件 | lslpp | rpm、yum |
错误报告 | errpt | dmesg |
Runlevel | who -r | runlevel |
文件系统 | /etc/filesystems | /etc/fstab |
总结
在与许多从 Linux 转换到 AIX 的管理员一起工作过之后,我发现的一般规则在于,从 Solaris 转换到 Linux 要比从 AIX 转换到 Linux 容易得多,因为 Linux 是更加文本驱动的,而且还因为文本文件本身具有更相似的命名约定。作为 AIX 管理员,您应该已经非常熟悉许多命令行工具,这些工具在您进行转换时将非常有帮助。虽然您不会找到 smit,但是会发现存在足够的 GUI 来增加您的舒适感。
尽管 Linux 已取得了很大的进步,但它的确不如 AIX 之类的产品成熟,要进行文档记录和保持系统正常运行,您将需要做更多的事情。幸运的是,您还可以与 IBM 签署 Linux 支持合同,这是即使最高级的 AIX 管理员也将会在 AIX 上继续做的事情。Linux 继续在可靠性和可伸缩性方面取得巨大进展,特别是在 IBM System p 平台上。IBM 对 Linux 投入在业界是首屈一指的,对于希望开始转向 Linux 的企业来说,这是一个巨大的卖点。
我强烈建议 AIX 管理员接受适当的培训以减轻转换过程。不要害怕试验和犯错误。您将会发现,对于 Linux,存在更多的方法来完成与 AIX 相同的任务。您只需确保不要在生产中进行试验。我始终建议 AIX 管理员在 System p 服务器上创建沙箱 Linux 分区,以便在企业希望将该平台投入使用时能够顺利地开始。(责任编辑:A6)