在Linux环境下安装多处理器(SMP)核心

在Linux环境下安装多处理器(SMP)核心

很多高档PC服务器都支持多处理器,而linux作为服务器操作系统中的新贵因其丰富可用的免费资源在服务器上的应用也日益普及,怎样配置Linux使之有效利用多处理器服务器的优势呢?以下以Netfinity 5000加Red Hat Linux 6.2的环境为例介绍linux下关于多处理器的设置方法。

  在Linux环境下,安装Linux多处理器核心有两种不同的情况:

  情况一:

  在安装时,系统已经拥有多个处理器,客户可以直接将Linux安装为多处理器核心。

  具体步骤:

  1、用Red Hat Linux 6.2光盘启动机器,在出现“boot:”键入“text”回车,进入文本安装模式。

  2、在"Package Group Selection"窗口,根据需要按空格键选择或删除软件包时,如果我们想要加入多处理器时,需要选中下面的“Select individual packages”,选择OK继续。

  3、在下面的另一个"Package Group Selection"窗口,从列表中找到并高亮"System Environment/Kernel",按空格键展开。选择kernel-smp。

  4、一旦选择成功,系统会自动安装SMP核心,并以该核心启动。在启动时,系统也可以以单处理器核心启动,客户只需在“boot:”后键入“linux-up”。

情况二:

  在安装时,客户没有选择安装kernel-smp,系统会缺省安装为单处理器核心,用户可以通过添加多处理器核心模组,将系统升级。

  具体步骤:

  1、启动Red Hat Linux 6.2,以root身份登录,进入字符界面。

  2、将光盘插入光驱,#mount /mnt/cdrom,将光驱挂载。

  3、#cd /mnt/cdrom/Redhat/RPMS,进入模组所在路径。

  4、#rpm --install kernel-smp-2.2.14-5.0.i386.rpm,加载多处理器(smp)模块。

  5、#mkinitrd -v -f /boot/initrd-2.2.14-5.0smp.img 2.2.14-5.0smp,创建初始化程序。

  6、#vi /etc/lilo.conf,添加多处理器启动选项,例如

  image=/boot/vmlinuz-2.2.14-5.0smp
  label=smp
  initrd=/boot/initrd-2.2.14-5.0smp.img
  read-only
  root=/dev/sda2

  7、#lilo -v,重新启动机器,在“boot:”出现后,键入“smp”回车,进入多处理器核心。

  
  备注:

  1、在第二种情况中,如果系统使用ServeRAID卡,客户需要在创建初始化程序前,添加对于smp的驱动程序。

  2、对于第二种情况,客户也可以通过重新联接核心达到同样效果,但比较复杂,这里不再详细阐述。

30. 升级内核

为了确保内核的完整性和对它所支持的硬件的兼容性,Red Hat Linux 内核由 Red Hat 内核小组定制建构。在内核被 Red Hat 发行之前,它一定要通过一系列严格的质量保证测试。

Red Hat Linux 内核使用 RPM 格式打包,因而它们易于升级和校验。例如,由 Red Hat, Inc. 发行的 kernel RPM 软件包被安装后, initrd 映像会被创建;这样,在你安装了不同的内核后,你就没必要使用 mkinitrd 命令。如果你安装了 GRUB 或 LILO 的话,它还会修改引导装载程序的配置文件来包括这个新内核。

本章仅讨论在 x86 系统上升级内核的必要步骤。

警告: 建构你自行定制的内核是不被 Red Hat Linux 安装支持组支持的。关于从源码中建构定制内核的详情,请参阅 附录 A 。

30.1. 2.4 版本的内核

Red Hat Linux 随带定制的 2.4 内核,它包括以下功能:
内核源码的目录是 /usr/src/linux-2.4/ ,而不是 /usr/src/linux/ 。

· 对 ext3 文件系统的支持。

· 对多重处理器(SMP)的支持。

· 对 USB 的支持。

· 对 IEEE 1394 设备(又称 FireWire ?)的初步支持。

30.2. 准备升级

在你升级内核之前,你应该先采取几项预防措施。第一步是确定你有一张适用于你的系统的可运行的引导盘以防万一出现问题。如果引导装载程序没有被正确配置来引导新内核,除非你有引导盘,否则就无法引导系统。

要创建引导盘,在 shell 提示下登录为根用户,然后键入以下命令:

/sbin/mkbootdisk `uname -r`

窍门:请参考 mkbootdisk 的说明书页(man)来阅读更多选项。

在继续前,使用引导盘来重新引导你的机器以校验该软盘的可运行性。但愿你不必使用引导盘,但是你应该把它存放在一个安全的地方以防万一。要判定你已安装了哪些内核软件包,在 shell 提示下执行下面的命令:

rpm -qa | grep kernel

依据你执行的安装类型而定(你的版本号码和软件包可能不同),该命令的输出会包括某些或全部在下面列出的软件包: kernel-2.4.20-2.47.1
kernel-debug-2.4.20-2.47.1
kernel-source-2.4.20-2.47.1
kernel-doc-2.4.20-2.47.1
kernel-pcmcia-cs-3.1.31-13
kernel-smp-2.4.20-2.47.1

从输出中,你可以判定你需要下载哪些软件包来执行内核升级。对于单处理器系统而言,只有 kernel 软件包是必需的。
如果你的计算机不只有一个处理器,你需要包括支持多处理器的 kernel-smp 软件包。强烈建议你仍安装 kernel 软件包,以防万一多处理器内核不能在你的系统中正确运行。
如果你的计算机的内存超过了 4GB,你必须安装 kernel-bigmem 软件包才能使系统使用多于 4GB 的内存。强烈建议你仍旧安装 kernel 软件包以用于调试。 kernel-bigmem 软件包仅为 i686 体系建构。
如果你需要 PCMCIA 支持(例如在便携电脑上), kernel-pcmcia-cs 软件包就必不可少。
除非你想重新编译内核,或把系统用于内核开发,你不需要 kernel-source 软件包。
kernel-doc 软件包包括内核开发文档,它不是必需的。如果你的系统被用于内核开发,则推荐你安装它。
kernel-util 软件包包括能够用来控制内核或系统硬件的工具程序,它也不是必需的。
Red Hat 建构的内核为不同的 x86 版本做了优化。选项有:用于 AMD Athlon ? 和 AMD Duron ? 系统的 athlon ;用于 Intel ? Pentium ? II、 Intel ? Pentium ? III、和 Intel ? Pentium ? 4 系统的 i686 ;用于 Intel ? Pentium ? 和 AMD K6 ? 系统的 i586 。如果你不知道你的 x86 系统的版本,使用为 i386 版本建构的内核;它是为所有基于 x86 的系统建构的。
RPM 软件包的 x86 版本被包括在文件名中。例如: kernel-2.4.20-2.47.1.athlon.rpm 是为AMD Athlon ? 和 AMD Duron ? 系统优化的, kernel-2.4.20-2.47.1.i686.rpm 是为 Intel ? Pentium ? II、 Intel ? Pentium ? III、和 Intel ? Pentium ? 4 系统优化的。在你判定了软件包之后,你需要升级内核,为 kernel 、 kernel-smp 、和 kernel-bigmem 软件包选择正确的体系。其它软件包使用 i386 版本。

30.3. 下载升级了的内核

要判定是否有可用于你的系统的升级内核,方法有好几种。

·进入 http://www.redhat.com/apps/support/errata/ 网站,选择你使用的 Red Hat Linux 版本,然后查看它的勘误。内核勘误通常在 安全顾问(Security Advisories)部分下。从勘误列表中 点击内核勘误来查看它的详细勘误报告。在勘误报告中,有一个需要的 RPM 列表,以及从 Red Hat FTP 站点下载它们的链接。你还可以从 Red Hat FTP 的 镜像站点中下载它们。镜像站点的列表在 http://www.redhat.com/download/mirror.html 中。

·使用 Red Hat 网络来下载内核 RPM 软件包并安装它们。Red Hat 网络能够下载最新的内核、升级系统上的内核、如果必要,创建初始 RAM 映像,并配置引导装载程序来载入新内核。要获取更多信息,请参阅 http://www.redhat.com/docs/manuals/RHNetwork/ 上的 Red Hat 网络 User Reference Guide 。

如果你从 Red Hat Linux 的勘误网页上下载了 RPM 软件包,或只使用了 Red Hat 网络来下载软件包,继续阅读 第 30.4 节 。如果你使用了 Red Hat 网络来下载并安装更新了的内核,遵循第 30.5 节 和 第 30.6 节中的说明。只不过,不要把内核改成默认引导项,因为 Red Hat 网络会自动把默认内核改成最新版本。

30.4. 执行升级

检索到所有必要的软件包后,你就可以开始升级现存内核了。在 shell 提示下登录为根用户,转换到包含内核 RPM 软件包的目录中,遵循以下步骤:

重要:强烈建议你保留旧内核,以防万一新内核出现问题。

使用 rpm 命令的 -i 选项来保留就内核。如果你使用了 -U 选项来升级 kernel 软件包,它会覆盖当前安装了的内核。该命令为(内核版本和 x86 版本会有所不同):
rpm -ivh kernel-2.4.20-2.47.1.i386.rpm
如果系统是多处理器系统,还需安装 kernel-smp 软件包(内核版本和 x86 版本会有所不同):
rpm -ivh kernel-smp-2.4.20-2.47.1.i386.rpm
如果系统是基于 i686 的,并包含超过 4GB 的内存,还需安装为 i686 体系建构的 kernel-bigmem 软件包(内核版本和 x86 版本会有所不同):

rpm -ivh kernel-bigmem-2.4.20-2.47.1.i686.rpm

如果你打算升级 kernel-source 、 kernel-docs 、或 kernel-utils 软件包,你可能不需要保留老版本。使用下面的命令来升级这些软件包(版本会有所不同):

rpm -Uvh kernel-source-2.4.20-2.47.1.i386.rpm
rpm -Uvh kernel-docs-2.4.20-2.47.1.i386.rpm
rpm -Uvh kernel-utils-2.4.20-2.47.1.i386.rpm

如果系统需要 PCMCIA 支持(例如便携电脑),你还需要安装 kernel-pcmcia-cs 并保留老版本。如果你使用了 -i 选项,它可能会返回冲突,因为老内核需要该软件包来引导带有 PCMCIA 支持的系统。要绕过这个问题,使用 --force 选项,如下所示(版本会有所不同):

rpm -ivh --force kernel-pcmcia-cs-3.1.24-2.i386.rpm

下一步是校验初始 RAM 磁盘映像是否被创建。详情请参阅第 30.5 节 。

30.5. 校验初始 RAM 磁盘映像

如果系统使用 ext3 文件系统或 SCSI 控制器,你就需要初始 RAM 磁盘。初始 RAM 磁盘的目的是允许模块化的内核在它能够进入模块通常驻留的设备之前具备进入内核需要从该设备引导的模块的能力。
初始 RAM 磁盘通过使用 mkinitrd 命令来创建。然而,如果内核及其相关文件是从 Red Hat, Inc. 发行的 RPM 软件包中安装或升级的话,这个步骤会被自动执行;因此,它不必被手工进行。要校验它是否被创建了,使用 ls -l /boot 命令来确定 initrd-2.4.20-2.47.1.img 文件被创建了(版本应该匹配刚刚安装了的内核的版本)。

下一步是校验引导装载程序已被配置来引导新内核。详情请参阅 第 30.6 节 。

30.6. 校验引导装载程序

如果你安装了 GRUB 或 LILO 引导装载程序, kernel RPM 软件包配置它们来引导刚刚安装的内核,但是它并不配置引导装载程序默认引导新内核。
确认一下引导装载程序已被配置成引导新内核总是值得提倡的。这是至关重要的一步。如果引导装载程序被配置得不正确,你将无法引导你的系统。若这种情况发生了,使用你从前创建的引导盘来引导你的系统,然后再试图配置你的引导装载程序。

30.6.1. GRUB

如果你选择了 GRUB 作为引导装载程序,请确认 /boot/grub/grub.conf 文件中包含的 title 部分中的版本与你刚刚安装的 kernel 软件包的版本相同(如果你安装了 kernel-smp 和/或 kernel-bigmem ,你也会看到这个部分):

# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda2
# initrd /initrd-version.img
#boot=/dev/hda
default=3
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-2.47.1)
root (hd0,0)
kernel /vmlinuz-2.4.20-2.47.1 ro root=LABEL=/
initrd /initrd-2.4.20-2.47.1.img
title Red Hat Linux (2.4.20-2.30)
root (hd0,0)
kernel /vmlinuz-2.4.20-2.30 ro root=LABEL=/
initrd /initrd-2.4.20-2.30.img

如果你创建了单独的 /boot 分区,到内核与 initrd 映像的路径是相对于 /boot 分区而言的。
注意,默认引导项目没有被设置为新内核。要配置 GRUB 来默认引导新内核,把 default 变量的值改成包含新内核的 title 部分的号码。这个号码从 0 开始。例如,如果新内核是第二个 title 部分,把 default 设置为 1 。
你可以重新引导计算机来开始测试这个新内核,观察屏幕上的消息来确保硬件被正确地检测到了。

30.6.2. LILO

如果你选择了 LILO 作为引导装载程序,请确认 /etc/lilo.conf 文件中包含的 image 部分中的版本与你刚刚安装的 kernel 软件包的版本相同(如果你安装了 kernel-smp 和/或 kernel-bigmem ,你也会看到这个部分):

prompt
timeout=50
default=2.4.20-2.30
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
linear

image=/boot/vmlinuz-2.4.20-2.47.1
label=2.4.20-2.47.1
initrd=/boot/initrd-2.4.20-2.47.1.img
read-only
append="root=LABEL=/"

image=/boot/vmlinuz-2.4.20-2.30
label=2.4.20-2.30
initrd=/boot/initrd-2.4.20-2.30.img
read-only
append="root=LABEL=/"

注意,默认引导项目没有被设置为新内核。要配置 LILO 来默认引导新内核,把 default 变量的值改成包含新内核的 image 部分中的 label 的值。以根用户身份运行 /sbin/lilo 命令来启用改变。运行后,其输出会与如下相似:
Added 2.4.20-2.47.1 * Added linux

2.4.20-2.47.1 后面的 * 意味着那部分中的内核是 LILO 会默认引导的内核。
你可以重新引导计算机来开始测试这个新内核,观察屏幕上的消息来确保硬件被正确地检测到了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值