您想把多个 AIX® 系统整合在一台 System p® 服务器上,从而尽可能提高磁盘和网络资源的投资回报吗?您对 SEA、IVE 或 NPIV 等技术术语感到迷惑吗?本文介绍最新的 AIX 技术 —— 虚拟 I/O,提供关于如何设置简单但健壮的服务器和客户机环境的备忘录。

Christian Pruett, 高级系统管理员, 自由职业者

Christian Pruett 是一位高级系统管理员,在 AIX、Sun Solaris、Linux 和 HP/UX 方面有超过 14 年经验,涉及计算、农业和电信等许多行业。他是两份关于 AIX 的 IBM Redbook 的合作作者,曾经为 O’Reilly Publishing 审阅一本 UNIX 图书,还曾经参与过几个 IBM AIX 认证考试。他与妻子和两个孩子住在科罗拉多州。



2010 年 10 月 11 日

对于早期的 IBM AIX®,系统管理员只能在每个物理服务器上设置一个逻辑服务器。如果计算环境要增长,就必须购买新的 IBM RS/6000® 或 pSeries® 服务器。或者反过来说,如果有空闲的资源,希望让另一个服务器共享,那么除非物理地转移硬件组件,否则不容易实现。

2001 年,IBM 引入了逻辑分区 (LPAR) 技术,这让多个逻辑服务器可以使用同一物理服务器的资源,包括处理器、内存、磁盘和适配器,这些资源由特殊的管理服务器 Hardware Management Console (HMC) 管理。这种技术让系统管理员能够在单一物理服务器上创建、更改和删除 LPAR,管理资源,以及在各个逻辑 AIX 和 Linux® 服务器上运行操作系统。

经过多次改进之后,LPAR 技术已经能够动态地管理资源和微分区处理器资源,可以让多个 LPAR 同时共享同一个物理处理器。在此之后,IBM 引入了虚拟 I/O (VIO) 技术,让 LPAR 可以使用相同的存储和网络资源,由此打破了磁盘和适配器隔离的壁垒。

VIO 基础知识

VIO 技术由服务器、软件和各种命令组成。

VIO 服务器

VIO 技术采用特殊的 LPAR 管理同一 pSeries 或 IBM System p 服务器上其他 LPAR 使用的磁盘和网络资源。并不给每个 LPAR 分配单独的网络和磁盘资源(尤其是在某些情况下,资源量不足以满足所有 LPAR 的需要),而是由一个或两个 VIO 服务器控制这些资源,让其他 LPAR(VIO 客户机 LPAR)共享它们。

VIO 软件

VIO 服务器运行 AIX 操作系统的特殊版本,还包含软件包 IOS。这个软件独立于一般的操作系统命令(比如 installp)和版本结构(技术级别)进行打包和管理。这与 HMC 在 Linux 内核中装载特殊用途的软件相似。

注意:如果安装第三方软件或通过除 IOS 之外的其他任何方法更改操作系统,通常会导致 IBM 的支持失效,所以最好不要以任何非标准、非 VIO 方式更改服务器。

VIO 用户 ID 和命令

使用一个管理用户 ID(padmin)进行所有 VIO 控制,而不是使用 root 用户 ID 发出命令。这个用户 ID 有一个称为 IOS command-line interface (ioscli) 的 shell,它运行一套独特的命令来管理分配给 VIO 服务器的设备。其中许多命令与常规的 AIX 命令相似(比如 lsdev),但是使用不同的标志和命令结构(比如 lsdev –dev)。但是,大多数超级用户级命令是新的,它们同时执行许多不同的操作。实际上,如果正确地管理,系统管理员很少需要作为 root 用户发出命令。

有帮助的 padmin 命令包括:

  • help:这个命令列出在 ioscli 中可以使用的所有命令。如果向其传递命令名,比如 help updateios,就可以看到命令的标志和语法。
  • cfgdev:这个命令相当于 cfgmgr 命令,它探测 VIO 服务器中新添加的物理和逻辑设备。
  • oem_setup_env:这个命令相当于运行 su – root,但是不需要输入密码。同样,在 VIO 服务器上很少需要变成 root 用户。
  • mkvdev:这个命令对您创建并为 VIO 客户机 LPAR 服务的虚拟设备进行管理。
  • mktcpiplstcpiprmtcpip:这些命令从命令行管理网络,这样就不需要 smitty tcpip 等工具。
  • lsmap:这个命令显示磁盘资源和 VIO 客户机 LPAR 之间的关系。

规划环境

在开始规划 VIO 环境时,一定要仔细检查硬件、设计一些方便的表格并注意细节,这直接影响是否能够成功地建立功能完备的高可用的 VIO 环境。

磁盘资源

必须解决的第一个问题是如何管理提供给 VIO 客户机 LPAR 的磁盘资源。在 VIO 中,提供磁盘资源有三种主要方法:

  • 方法 1:以逻辑卷作为磁盘。这种方法需要把磁盘分配给 VIO 服务器,然后使用 padmin 用户 ID 在这个磁盘上创建卷组和逻辑卷 (LV)。然后,把这些 LV 映射到 VIO 客户机 LPAR,把它们看作单独的磁盘。通常,每个 LV 的大小是几 GB 以满足 VIO 客户机 LPAR 的需要,比如在其中容纳 LPAR 的 AIX 操作系统。
    • 好处:这种方法可以减少分配给 VIO 服务器的磁盘数量,因为多个 VIO 客户机 LPAR 可以访问从同一物理磁盘或 Storage Area Network (SAN) 上的 Logical Unit Number (LUN) 上分配的 LV。如果磁盘上有足够的空闲空间,可以动态地创建 LV 并快速地分配。
    • 缺点:如果 VIO 客户机 LPAR 在同一物理磁盘上执行快速的输入/输出 (I/O),这种方法可能会导致资源冲突。在某些情况下,为了保证 VIO 客户机 LPAR 上的卷组冗余,需要给两个不同的 VIO 服务器分配两倍的物理磁盘。另外,错误的 rmlv 命令可能导致 VIO 客户机 LPAR 完全离线。
  • 方法 2:虚拟 SCSI 磁盘。这种方法把磁盘分配给 VIO 服务器,然后直接映射到 VIO 客户机 LPAR。VIO 服务器看不到磁盘上有什么或如何使用磁盘,仅仅是把磁盘提供给 VIO 客户机 LPAR。
    • 好处:这种方法能够快速简便地把磁盘提供给 VIO 客户机 LPAR;它只需要通过两个简短的命令找到磁盘并分配给服务器。另外,当由两个 VIO 服务器提供两个路径时,VIO 客户机不必担心任何磁盘管理软件(比如 SDDPCM)会看到重复的磁盘。
    • 缺点:管理 VIO 服务器上的众多磁盘和它们映射到的客户机很繁琐。另外,如果必须引导到 System Management Services (SMS),VIO 服务器要花费很长时间才能探测到所有磁盘,还可能识别出多个根卷组(因为要寻找 VIO 名称)。
  • 方法 3:Virtual Fibre Channel Adapter (NPIV)。按照这种方法,VIO 服务器变成完全透明的,让 VIO 客户机 LPAR 直接共享它们的 Fibre Channel (FC) 适配器。通过使用称为 N-Port ID Virtualization 的新技术,多个 VIO 客户机 LPAR 可以同时使用连接到 SAN 的单一 FC 适配器。VIO 服务器不会看到分配给 VIO 客户机 LPAR 的任何磁盘,因为每个 VIO 客户机 LPAR 在每个 FC 适配器上有自己的 Worldwide Number (WWN),SAN 中的 LUN 直接映射到这些 WWN。
    • 好处:这种方法可以非常优雅地管理 VIO 磁盘资源,简化磁盘映射过程。它可以减少 VIO 所需的工作量,因为在把 FC 适配器映射到 VIO 客户机 LPAR 之后,就不需要在 VIO 服务器上运行其他命令了,而虚拟 SCSI 磁盘方法需要在每个 VIO 服务器上针对每个共享磁盘运行命令。
    • 缺点:这种方法的主要缺点是一些 SAN 技术仍然与 NPIV 技术不兼容。例如,我曾经不得不把 VIO 客户机的所有 WWN 手工输入到区映射中,因为 SAN 无法自动地探测到它们,这个过程非常麻烦。另外,如果在许可方面不小心,可能会用光这种虚拟化技术分配给 VIO 服务器的 WWN。

网络资源

必须决定的第二个方面是如何让 VIO 客户机 LPAR 共享网络资源。与磁盘资源相似,有两种主要方法:

  • 方法 1:共享以太网适配器 (SEA)。SEA 技术背后的主要原则很简单:
    一个物理以太网适配器 + 一个虚拟以太网适配器 = 一个共享以太网适配器

    在创建 VIO 服务器时,分配物理以太网适配器和虚拟以太网适配器。告诉 VIO 客户机 LPAR 应该使用哪些虚拟以太网适配器进行通信。然后,VIO 服务器把这些虚拟适配器映射到物理以太网适配器,这些 VIO 客户机 LPAR 可以通过相同的设备进行通信。

    • 好处:只要有物理 entX 设备可用,就可以为 VIO 客户机 LPAR 建立新连接。VIO 服务器可以在 SEA 中配置用于通信的 IP 地址,不需要任何特殊的管理性网络连接。
    • 缺点:如果过多的 VIO 客户机 LPAR 通过同一个物理以太网适配器通信,就会造成资源冲突。如果可以使用虚拟 LAN (VLAN) 中继,就可以通过同一个物理适配器同时访问多个子网,但是这种方法无法享有这一好处。
  • 方法 2:集成虚拟以太网 (IVE)。IVE 技术与 SEA 技术相似,但是允许通过同一个物理适配器访问多个 VLAN。每个 VLAN 通过 HMC 定义,还在用于通信的 VIO 服务器上定义。然后,通过 SEA 映射告诉 VIO 客户机 LPAR 应该访问的虚拟以太网适配器和 VLAN 编号。可以无缝地访问多个子网。
    • 好处:IVE 可以减少通信所需的物理以太网适配器和连接数量。有可能通过相同线路向生产、开发和备份网络发送通信流。
    • 缺点:目前,还无法在 IVE 连接中方便地添加新的 VLAN。如果需要在现有的 IVE 连接中添加新的 VLAN,必须先删除并重新创建底层 SEA 设备,这可能会阻碍使用此连接的 VIO 客户机 LPAR 运行。另外,与 SAN 技术和 NPIV 一样,老式的网络设备可能无法处理 IVE 连接。

冗余的 VIO 服务器

需要规划的第三个方面是在同一个物理 pSeries 或 System p 服务器上设置冗余的 VIO 服务器。如果用单一 VIO 服务器支持许多 VIO 客户机 LPAR,当某些灾难性事件造成这个服务器离线时,依赖于它的所有 LPAR 都会停止运行。

如果通过两个 VIO 服务器提供同一组资源,那么当其中一个 VIO 服务器失效时,VIO 客户机 LPAR 仍然可以正常运行。VIO 客户机 LPAR 会通过另一个 VIO 服务器访问磁盘和网络资源。把磁盘映射到两个 VIO 服务器并创建网络控制通道,VIO 客户机 LPAR 就会有两个访问路径。这还允许在 VIO 服务器上动态地执行 IOS 升级,而不会影响 VIO 客户机 LPAR。

分配给每个 VIO 服务器的资源应该尽可能相同,提供尽可能高的可用性。不要在一个 VIO 服务器上设置慢速的以太网适配器,而在另一个 VIO 服务器上设置快速的适配器。不要把两个 VIO 服务器使用的所有 FC 适配器都放在同一个物理机柜中,而是应该把适配器交错地安置在多个机柜中并独立地分配。应该考虑可能出现的所有硬件故障并寻找提高冗余度的方法。

另外,一定要记录所有东西的映射方式。常常在电子表格中记录环境的情况并通过 vfcmap 等命令的输出交叉引用它。图 1 给出一个简单的表格示例,其中记录一个 System p 服务器的详细信息,这个服务器包括两个 VIO 服务器和四个 VIO 客户机 LPAR,使用 SEA、IVE、虚拟 SCSI 和虚拟 FC。

图 1. 变量电子表格示例
变量电子表格示例的屏幕图

构建 VIO 服务器

既然已经确定了环境的需求,下面讨论构建 VIO 服务器的过程。这里假设您熟悉 HMC 和 SMS 及其菜单系统。

  1. 确认 Advanced Power Virtualization 技术可用:
    1. 在 HMC 中,选择您管理的系统。
    2. 单击 Properties
    3. Capabilities 选项卡上,确认 Virtual I/O Server Capable 设置为 Available。如果这个特性不可用,那么与 IBM 联系以获取并安装 Advanced Power Virtualization 代码。
  2. 定义 VIO LPAR:
    1. 在 HMC 中,选择您管理的系统,单击 Configuration > Create Logical Partition > VIO Server
    2. 指定服务器名称,把这个概要文件命名为 $SERVER.novirtuals
    3. 给它设置所需的处理器、内存和 I/O 资源数量,但是此时不要创建任何虚拟适配器。
    4. 如果希望从 CD 或 DVD 构建 VIO 服务器,还需要分配驱动器。
  3. 安装 IOS:
    1. 选择 VIO 服务器并单击 Operations > Activate
    2. 单击 Advanced 并选择 SMS 作为引导模式。
    3. 选择打开终端屏幕的复选框。
    4. 如果从 CD 或 DVD 安装,那么插入光盘并在 SMS 中从光盘引导服务器。
    5. 如果使用 Network Installation Manager (NIM),那么配置网络适配器设置并指向自己的 NIM 服务器。让服务器在硬盘上安装 IOS。
  4. 设置密码、许可、补丁和镜像:
    1. 当 VIO 服务器启动时,用用户 ID padmin 登录并设置密码。
    2. 如果出现提示,那么执行 license –accept 命令以确认软件许可。
    3. 如果有服务器更新,那么使用 updateios 命令安装补丁。
    4. 如果适用的话,用 mirrorios 为根卷组建立镜像。
    5. shutdown –restart 命令重新引导 VIO 服务器。
  5. 克隆服务器:
    1. backupios 命令备份这个服务器,使用这个映像构建冗余 VIO 服务器(对于这个任务,我喜欢使用 NIM)。
  6. 创建启用了虚拟的概要文件:
    1. 在 HMC 中,复制当前 VIO 服务器的概要文件并它们命名为 $SERVER.vio。这些概要文件将包含 VIO 服务器和虚拟设备的配置。
  7. 定义虚拟以太网设备 (HMC):
    1. 在 HMC 中,使用 Edit 菜单打开启用了虚拟的概要文件。
    2. 单击 Virtual Adapters 选项卡,把 Maximum Virtual Adapters 改为更高的值,比如 1000(这样就不必担心超过默认值 20)。
    3. 单击 Actions > Create > Ethernet Adapter
    4. 设置 Adapter ID,如果使用 IVE,还要输入 VLAN。
    5. 对于主虚拟适配器,选中 Access External Network 复选框。
    6. 为两个 VIO 服务器设置不同的中继优先级。
    7. 对于冗余控制通道适配器,重复相同的过程,但是不选中 Access External Network 复选框。
    8. 保存更改,然后从这个概要文件引导。
  8. 定义虚拟以太网设备 (VIO):
    1. 作为 padmin 登录 VIO 服务器。
    2. lsdev 命令检查设备列表。
    3. lsdev –dev entX –attr 命令检查虚拟以太网适配器的属性,确认适配器的映射关系。
    4. 运行以下命令创建一个 SEA,在命令中应该换上电子表格中自己的 entX 设备和 ID 号:
      mkvdev -sea $PHYS -vadapter $VIRT -default $VIRT -defaultid $ID 
          -attr ha_mode=auto ctl_chan=$CTRL
    5. 如果需要从 VIO 服务器使用这个 SEA,那么使用 mktcpip 命令在它上面设置 IP 地址。通过 ping 测试快速地确认所有设置是否正确。

构建 VIO 客户机

既然已经构建了 VIO 服务器,下面就来构建 VIO 客户机 LPAR:

  1. 定义 VIO 客户机 LPAR:
    1. 在 HMC 中,选择您管理的系统,单击 Configuration > Create Logical Partition > AIX Server
    2. 指定服务器名称,把这个概要文件命名为 $SERVER.vio
    3. 给它设置所需的处理器、内存和 I/O 资源数量,但是此时不要创建任何虚拟适配器。
  2. 创建 VIO 服务器磁盘资源:
    1. 在 HMC 中,使用 Edit 菜单打开 VIO 服务器的启用了虚拟的概要文件。
    2. 单击 Virtual Adapters 选项卡。
    3. 单击 Actions > Create > Fiber Channel Adapter or SCSI Adapter
    4. 输入电子表格中的槽号。
    5. 选择 Only selected client partition can connect 选项,选择您的 VIO 客户机 LPAR。
    6. 关闭 VIO 服务器,从这些概要文件启动它们,或者动态地在 LPAR 中添加相同的资源。

      注意:作为空的 slate 创建 VIO 客户机 LPAR,这样可以方便地定义。

  3. 编辑 VIO 客户机 LPAR:
    1. 在 HMC 中,使用 Edit 菜单打开 VIO 客户机 LPAR 的启用了虚拟的概要文件。
    2. 单击 Virtual Adapters 选项卡。
    3. 单击 Actions > Create > Fiber Channel Adapter or SCSI Adapter
    4. 输入电子表格中的槽号。
    5. 单击 Actions > Create > Ethernet Adapter,设置 Adapter ID,根据需要输入电子表格中的 VLAN。

      如果创建了虚拟 Fibre Channel 适配器,那么单击它们的属性以获得 WWN。

  4. 定义虚拟 SCSI 磁盘映射 (VIO):
    1. 如果使用虚拟 SCSI 适配器提供磁盘资源,现在就从 SAN 映射这些磁盘(如果适用的话)。
    2. 用用户 ID padmin 登录 VIO 服务器,执行 cfgdev 探测新磁盘。
    3. lspvlsdev –dev hdiskX –attr 命令检查这些磁盘。
    4. lsmap –all 命令检查服务器上的 vhost。
    5. 执行以下命令把磁盘映射到指定的 vhost,可以给它们设置虚拟目标磁盘 (VTD) 名称以帮助跟踪它们:
      mkvdev -vdev hdiskX -vadapter $VHOST -dev $VTD
  5. 定义虚拟 FC 映射 (VIO):
    1. 如果使用虚拟 FC 适配器提供磁盘资源,那么用 lsmap –all –npiv 命令检查服务器上的 vfchost。
    2. 执行以下命令把 FC 适配器映射到指定的 vfchost:
      vfcmap -vadapter vfchostX -fcp fcsX
    3. 在 SAN 中输入 WWN,设置并映射磁盘。它们将提供给 VIO 客户机 LPAR。
  6. 启用客户机 LPAR (HMC):
    1. 选择 VIO 客户机 LPAR,单击 Operations > Activate
    2. 单击 Advanced,选择 SMS 作为引导模式。
    3. 选择打开终端屏幕的复选框。

在此之后,按标准的 AIX 服务器安装过程进行安装。


结束语

VIO 技术有助于更有效地使用资源,降低硬件成本,以新颖、强大的方式整合服务器。本文提供了构建简单 VIO 环境的基本知识,但是充分理解这些概念的最好方法是通过亲自设置和配置服务器实践它们。我建议,在投入生产之前,规划、记录和测试所有东西。这么做是值得的。

参考资料

学习

  • VIO and virtualization wiki:查阅 developerWorks VIO wiki。
  • IBM Redbook:IBM PowerVM Virtualization Managing and Monitoring
  • VIO:阅读 Power6 Virtual I/O 文档。
  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。
  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。
  • 技术书店:阅读关于这些和其他技术主题的图书。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=550048
ArticleTitle=VIO 备忘录
publish-date=10112010