Chinaunix首页 | 论坛 | 博客
  • 博客访问: 642000
  • 博文数量: 171
  • 博客积分: 2389
  • 博客等级: 大尉
  • 技术积分: 1516
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-24 14:18
文章分类

全部博文(171)

文章存档

2014年(20)

2013年(51)

2012年(40)

2011年(59)

1970年(1)

我的朋友

分类: 服务器与存储

2012-04-09 18:21:37

无磁盘启动已经是一个大家都熟知的概念,所以在这篇博文中我不再进行介绍。在本文中,我将主要介绍 iscsi LUN 的无磁盘启动 (RHEL6)。

系统主要通过两种方式引导至 iscsi LUN。系统可以在 POST 过程中使用选件 ROM 以连接到远程 ISCSI LUN 并引导至该 LUN,就像该 LUN 是本地磁盘一样。另一方式是使用 bootloader 向内核和 initramfs 映像提供目标系统访问权限,使 initramfs 映像连接至 iscsi LUN,并引导至 iscsi LUN。后种方式的优势是目标系统不需任何额外的硬件(选件 ROM 或 HBA)。内核和 initramfs 映像以及目标系统需求还可通过多种方式满足。它们可以使用 ISO 映像或使用 PXE 服务器通过本地 HDD 上的 bootloader 提供。在本实验中,我将使用 PXE 服务器提供内核和 initramfs 映像。因为目前的大多数虚拟机监控程序还可通过 PXE 进行网络引导,所以同一 iscsi LUN 既可用于引导至物理计算机,也可用于引导至虚拟机。

如前所述,提供给目标系统的 initramfs 必须可以连接至 iscsi LUN,安装该 LUN,并更改该 LUN 的根目录。在使用旧 mkinitrd 工具创建 initramfs 映像时,也就是说,手动向 init 脚本添加合适的命令,并确保构建时所有 iscsi 相关软件包及其依赖项都位于 initramfs 中。在 RHEL6 中引入 dracut 后,所有这一切都已变得非常简单。dracut 拥有预定义的模块,系统可以向这些模块传递合适的输入参数以访问远程根设备。所以,让我们来看看设置远程 iscsi LUN 的 PXE 引导的流程。

首先,我们需要将 RHEL6 安装至 iscsi LUN。在安装 RHEL6 时选择安装至 iscsi 目标而非本地磁盘(如果有),便可轻松实现这一目标。以下是安装过程中的相关截屏:

clip_image002

clip_image001

然后,使用合适的模块创建 initramfs。要在 RHEL6 上使用新的模块创建 initramfs 映像,必须运行以下命令:

          dracut –add “module_name” initrd.img $(uname -r)

在本例中,必须添加 iscsi 模块。但是 dracut 命令会默认添加很多模块(base、network、nfs、iscsi 等)。因此,本例中使用不带任何额外选项的简单 dracut 命令便可以了:

          dracut initrd.img $(uname -r)

注意请确保在所运行内核与 iscsi LUN 中所安装的内核相同的主机上运行此命令。

最后,将合适的内核和 initramfs 映像(使用上述命令创建)复制到合适的 pxe 配置文件夹中,然后更新 PXE 菜单以添加新的条目。在添加 PXE 菜单条目时,必须向 initramfs 映像中的 iscsi 模块传递一些参数才能连接至目标 ISCSI LUN。

我的 PXE 菜单条目如下所示:

MENU LABEL Diskless RHEL6 Boot

KERNEL iscsi/vmlinuz

append initrd=iscsi/initrd.img  root=/dev/sda1 netroot=iscsi:192.168.15.2:::2:iqn.1984-05.com.dell:powervault.md3600i.12345  iscsi_initiator=iqn.2011-11.com.domain:01.rhel6

在将 RHEL6 安装至 iscsi LUN 时,我在该 LUN 中创建了两个分区,第一个分区用作根,第二个分区用作交换区 (swap space)。这也是我传递了 root=/dev/sda1 的原因。如果您已直接将操作系统安装在没有任何分区的 LUN 上,必须传递 root=iscsi:172.17.15.2:::2:iqn.1984-05.com.dell:powervault.md3600i.12345 至内核,而不是分别传递 rootnetroot 选项。

执行完上述步骤之后,我可以引导至基于 VM 的 KVM 和各种戴尔服务器的 iscsi LUN,未发现任何大问题。dracut 连同 iscsi,还可支持引导至各种其他根设备。您可访问 http://people.redhat.com/harald/dracut-rhel6.html 了解有关 dracut 工具及其支持功能的详细信息。

文章来源于DELL官网,更多精彩内容请访问DELL官方社区或DELL解决方案专区

阅读(2362) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~