级别: 初级 developerWorks 中国, 编辑团队, IBM
2009 年 11 月 02 日 IBM PowerVM 设计为 IBM Power Systems 上的 AIX、IBM i 和 Linux 操作系统提供工业强度的虚拟化技术。PowerVM 提供广泛的配置选择,可以提高资产利用率、增加基础设施灵活性,并降低成本。
Active Memory Sharing 是 IBM PowerVM 的高级内存虚拟化技术,向 IBM Power Systems 提供系统内存虚拟化功能,允许多个逻辑分区共享公共的物理内存池。
本章讨论如何配置 Active Memory Sharing。配置基本上分为以下三个步骤:
-
在 Virtual I/O Server 上创建分页设备
-
在 HMC 或 IVM 上创建共享内存池
-
配置共享内存分区
注意:下面几小节讨论 HMC GUI 屏幕图或 HMC 命令行示例。也可以使用 IVM 执行相同的操作。
创建分页设备
每个共享内存分区都需要一个分页设备。分页设备的大小必须大于或等于分区配置文件中定义的最大逻辑内存。分页设备由 Virtual I/O Server 拥有。分页设备可以是逻辑卷或整个物理磁盘。磁盘可以是本地的,也可以由外部存储子系统通过 SAN 提供。
如果使用整个物理磁盘,那么只需确保在 Virtual I/O Server 上配置磁盘并清除任何 PVID。
示例 1 创建两个逻辑卷,它们将作为分页设备。如果使用逻辑卷,就必须使用 mkvg 和 mklv 命令创建卷组和逻辑卷,见示例 1。
示例 1.在 Virtual I/O Server 上创建作为分页设备的逻辑卷
$ mkvg -vg amspaging hdisk2
amspaging
$ mklv -lv amspaging01 amspaging 10G
amspaging01
$ mklv -lv amspaging02 amspaging 10G
amspaging02
$ lsvg -lv amspaging
amspaging:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
amspaging01 jfs 80 80 1 closed/syncd N/A
amspaging02 jfs 80 80 1 closed/syncd N/A
|
如果使用 IVM 管理系统,这个概念仍然是有效的,但是更自动化。在创建内存池时,IVM 会提示输入用于分页的卷组的名称。然后,IVM 自动地创建分页设备,根据分区的需求确定适当的大小。当分区的最大内存增加时,IVM 还会自动地调整分页设备的大小;如果通过 IVM 删除分区或把它切换到专用内存,IVM 会删除设备。
创建共享内存池
本节讨论如何使用 HMC 创建共享内存池。在这个示例中,创建一个 8 GB 的共享内存池,其中包含两个分页设备。每个共享内存分区需要一个分页设备。因此,这个池能够支持两个共享内存分区。
按以下步骤创建共享内存池:
1. 在 HMC 上,选择应该创建共享内存池的受管理系统。然后选择 Configuration → Memory Pool Management,见图 1。
图 1.创建共享内存池
2. 欢迎窗口出现。它不需要输入。单击 Next 继续。在图 2 所示的屏幕上输入池大小和最大池大小,然后单击 Next。
注意:最大池大小是软限制,可以动态地修改。应该把最大池大小保持在必需的最低值,因为对于每 16 GB 池内存,系统管理程序要保留 256 MB 内存以执行页面跟踪。因此,如果最大池大小设置得太高,就会浪费大量内存。
注意:池大小不能大于可用的系统内存量。专用内存分区使用的内存不能用于共享内存池。在这个示例中,在受管理系统上创建的池不能大于 52 GB。
图 2.定义池大小和最大池大小
3. 如图 3 所示,在下拉菜单中选择将使用的 Virtual I/O Server 分区,然后单击 Next。
图 3.选择共享空间分区
4. 单击 Select Devices,见图 4。
图 4.选择分页设备
5. 单击 Refresh(见图 5)显示可用的分页设备的列表。然后,选择应该分配给共享内存池的分页设备,然后单击 OK。在这个示例中,分页设备 amspaging01 和 amspaging02 分配给共享内存池。这两个设备的大小都是 10 GB。这意味着两个分区的分区配置文件中定义的最大内存设置不能大于 10 GB。
注意:
-
已经映射到虚拟 SCSI 适配器的逻辑卷或物理磁盘不会出现在选择列表中。但是,即使存储设备被定义为共享内存池的分页设备,也可以把它映射到虚拟 SCSI 适配器。在 Virtual I/O Server 上执行 mkvdev 命令时不会出现警告消息。
-
对于 IBM i 共享内存分区,分页设备必须大于分区配置文件中定义的最大内存。对于分配的每个 16 字节页面,IBM i 分区需要额外的 1 位。也就是说,要乘上因子 129/128。分页设备大小必须大于或等于最大内存 * 129/128。这意味着内存为 10 GB 的 IBM i 分区需要一个分页空间至少为 10.08 GB 的分页设备。
图 5.选择分页设备
6. 选择所需的分页设备之后,单击 OK。
7. 在 Summary 窗口(见图 6)中,单击 Finish 开始创建共享内存池。
图 6.完成共享内存池的创建
创建共享内存池之后,在 Virtual I/O Server 上应该会看到四个新的 VASI 和 VBSD 设备。示例 2 显示五个设备。这是因为这个 Virtual I/O Server 还被定义为用于 Live Partition Mobility 的 Mover Service Partition,这也需要一个 VASI 和一个 VBSD 设备。对于每个分页设备,创建一个 VRMPAGE 设备。
示例 2.列出 VASI 设备
$ lsdev -dev vasi*
name status description
vasi0 Available Virtual Asynchronous Services Interface (VASI)
vasi1 Available Virtual Asynchronous Services Interface (VASI)
vasi2 Available Virtual Asynchronous Services Interface (VASI)
vasi3 Available Virtual Asynchronous Services Interface (VASI)
vasi4 Available Virtual Asynchronous Services Interface (VASI)
$ lsdev -dev vbsd*
name status description
vbsd0 Available Virtual Block Storage Device (VBSD)
vbsd1 Available Virtual Block Storage Device (VBSD)
vbsd2 Available Virtual Block Storage Device (VBSD)
vbsd3 Available Virtual Block Storage Device (VBSD)
vbsd4 Available Virtual Block Storage Device (VBSD)
$ lsdev -dev vrmpage*
name status description
vrmpage0 Defined Paging Device - Logical Volume
vrmpage1 Defined Paging Device - Logical Volume
|
在 HMC 命令行界面上,可以使用 lshwres 命令显示共享内存池。在使用 -r mempool 标志时(见示例 3),显示共享内存池的属性。
示例 3.使用 lshwres 显示共享内存池
hscroot@hmc-p550:~> lshwres -m Server-8204-E8A-SN10FE401 -r mempool
curr_pool_mem=8192,curr_max_pool_mem=12288,pend_pool_mem=8192,pend_max_pool_mem=12
288,sys_firmware_pool_mem=262,paging_vios_names=vios01,paging_vios_ids=1
|
在使用带 --rsubtype pgdev 标志的 lshwres 命令时(见示例 4),显示每个分页设备的属性和状态。
示例 4.使用 lshwres 显示分页设备
hscroot@hmc-p550:~> lshwres -m Server-8204-E8A-SN10FE401 -r mempool --rsubtype \
pgdev device_name=amspaging01,paging_vios_name=vios01,paging_vios_id=1,size=10240,\
type=logical,state=Active,lpar_name=db-server,lpar_id=2 device_name=amspaging02,\
paging_vios_name=vios01,paging_vios_id=1,size=10240,type=logical,state=Inactive,\
lpar_id=none
|
创建共享内存分区
创建共享内存分区的过程与创建专用内存分区非常相似。主要差异在内存方面,必须指定分区将使用共享内存,见图 7。
图 7.定义共享内存分区
如图 8 所示,内存设置大体上与专用内存分区相似。最小内存设置定义激活这个分区必需的逻辑内存量。期望内存设置是分区应该得到的逻辑内存量。最大内存定义可以使用动态 LPAR 分配给分区的最大逻辑内存量。
注意:
-
在共享内存分区中,最小、期望和最大设置并不表示物理内存量。这些设置定义分配给分区的逻辑内存量。
-
根据最大内存设置选择分页设备。如果没有任何可用的分页设备大于或等于最大内存,那么分区无法激活。
系统管理程序使用内存权值设置等指标决定哪个共享内存分区应该从共享内存池获得更多内存。
图 8.定义内存设置
注意:根据定义,HMC 不允许把物理 I/O 槽或 Logical Host Ethernet 适配器分配给共享内存分区。
管理 Active Memory Sharing
本节讨论如何管理 Active Memory Sharing 的组件。涉及的主题包括:
分页设备分配
在使用 HMC 管理系统时,在分页设备和共享内存分区之间并没有固定的关系。在第一次激活共享内存分区时,会自动地选择合适的最小的分页设备。为分区选择一个分页设备之后,只要在激活分区时它是可用的,就会再次使用它。但是,如果这个分页设备不可用,例如因为取消了它的配置或者另一个分区正在使用它,那么会选择另一个合适的分页设备。
对于 IVM,关系是持久的,不会执行隐式的分页设备切换。在使用 IVM 时,如果希望让另一个分区重用一个分页设备,就必须显式地从原分区删除它。
IVM CLI 允许指定每个分区要使用的分页设备。IVM 在默认情况下会自动地选择一个分页设备,但是可以手工修改这一选择。
请记住,在使用 IVM 时,无论共享内存分区是否激活,必须为每个共享内存分区选择分页设备(除非使用 IVM CLI 进行手工配置)。
要想查看哪个分区(由分区 ID 标识)使用哪个分页设备,在 HMC 中选择 Memory Pool Management,然后选择 Virtual I/O Server 选项卡,见图 9。
图 9.池属性设置
还可以使用示例 5 所示的 lshwres 命令显示分页设备分配。
示例 5.使用 lshwres 命令显示分页设备
hscroot@hmc-p550:~> lshwres -m Server-8204-E8A-SN10FE401 -r mempool --rsubtype \
pgdev device_name=amspaging01,paging_vios_name=vios01,paging_vios_id=1,size=10240,\
type=logical,state=Inactive,lpar_id=none device_name=amspaging03,\
paging_vios_name=vios01,paging_vios_id=1,size=12288,type=logical,state=Inactive,\
lpar_id=none
|
添加分页设备
要想添加分页设备,首先必须在 Virtual I/O Server 上供应物理磁盘或逻辑卷,见“创建分页设备”。然后,必须把分页设备添加到池中。如果不使用 HMC GUI,也可以使用 HMC 命令行并输入 chhwres 命令,见示例 6。
注意:已经映射到虚拟 SCSI 适配器的逻辑卷或物理磁盘不会出现在选择列表中。但是,即使存储设备被定义为共享内存池的分页设备,也可以把它映射到虚拟 SCSI 适配器。在 Virtual I/O Server 上执行 mkvdev 命令时不会出现警告消息。
删除分页设备
要想删除分页设备,首先要停用正在使用这个分页设备的共享内存分区。当分页设备正在由共享内存分区使用时,无法删除它。然后,使用 HMC 从池中删除分页设备。删除分页设备之后,可以在 Virtual I/O Server 上取消相应的存储设备的配置。如果不使用 HMC GUI,也可以使用 HMC 命令行并输入 chhwres 命令,见示例 6。
在使用 IVM 时,如果一个分区已经使用过这个分页设备,就必须使用 CLI 删除它。
要点:不要使用 Virtual I/O Server 命令行管理分配给共享内存池的分页设备。
调整分页设备的大小
不可能增加或减少现有分页设备的大小。必须添加大小合适的新的分页设备,然后删除原来的设备。在删除原来的分页设备之前,使用它的共享内存分区必须停用。
可以使用 HMC GUI 或 HMC 命令行添加和删除分页设备。示例 6 演示如何使用 chhwres 命令删除 10 GB 的现有分页设备并添加 12 GB 的新分页设备。
示例 6.使用 chhwres 添加和删除分页设备
hscroot@hmc-p550:~> lshwres -m Server-8204-E8A-SN10FE401 -r mempool --rsubtype \
pgdev device_name=amspaging01,paging_vios_name=vios01,paging_vios_id=1,size=10240,\
type=logical,state=Inactive,lpar_id=none device_name=amspaging02,\
paging_vios_name=vios01,paging_vios_id=1,size=10240,type=logical,state=Inactive,\
lpar_id=none
hscroot@hmc-p550:~> chhwres -m Server-8204-E8A-SN10FE401 -r mempool --rsubtype \
pgdev -o r --device amspaging02 -p vios01
hscroot@hmc-p550:~> chhwres -m Server-8204-E8A-SN10FE401 -r mempool --rsubtype \
pgdev -o a --device amspaging03 -p vios01
hscroot@hmc-p550:~> lshwres -m Server-8204-E8A-SN10FE401 -r mempool --rsubtype \
pgdev device_name=amspaging01,paging_vios_name=vios01,paging_vios_id=1,size=10240,\
type=logical,state=Inactive,lpar_id=none device_name=amspaging03,\
paging_vios_name=vios01,paging_vios_id=1,size=12288,type=logical,state=Inactive,\
lpar_id=none hscroot@hmc-p550:~>
|
管理共享内存池大小
可以动态地增加和减少共享内存池的大小。要想增加共享内存池,必须有未使用的内存。如果希望把共享内存池增加到超过目前的最大池大小,那么首先必须把最大池大小增加到大于或等于所需的池大小。可以动态地增加最大池大小。
注意:
-
应该把最大池大小保持在必需的最低值,因为对于每 16 GB 池内存,系统管理程序要保留 256 MB 内存。尽管不是必须的,但是在减小池大小时,应该减小最大池大小。
-
在减小共享内存池大小时,如果没有足够的空闲内存,可能会花费更多时间。在这种情况下,系统管理程序必须先把内存页面交换到磁盘。在减小池大小期间,如果显示池大小,会看到显示的数字变化。
删除共享内存池
在删除共享内存池之前,必须确保所有共享内存分区都不使用这个池。必须删除分区或者把它们改为专用内存分区。
如果使用 HMC,在分区配置文件中把分区由共享内存改为专用内存时,必须激活分区,让它采用新的内存模式。只要还没有以专用内存模式激活分区,就无法删除共享内存池。如果使用池的 LPAR 没有激活,但是管理池的 VIOS 激活了,也是如此。
在使用 IVM 时,由共享内存改为专用内存会立即生效。
对共享内存分区应用动态 LPAR
可以在分区配置文件中定义的最小和最大值范围内修改共享内存分区的逻辑内存量。增加共享内存分区的逻辑内存量并不意味着通过系统管理程序分配的物理内存量一定有变化。共享内存分区实际获得的物理内存量取决于共享内存池中可用的空闲内存。
还可以动态地修改共享内存分区的内存权值。
在添加或删除虚拟 SCSI 或虚拟以太网适配器时,会自动地调整 I/O 标称内存。使用的值基于默认值,通常不需要修改。修改之后,值会保持新的设置。
在专用内存和共享内存之间切换
要想让分区由使用共享内存改为使用专用内存或者相反,必须在分区配置文件中修改内存模式设置。注意,在由专用内存切换到共享内存时,必须没有配置任何物理 I/O 设备。否则,会显示一个包含警告消息的弹出窗口。单击 Yes,删除所有物理 I/O 分配。
启动和停止 Virtual I/O Server
在激活共享内存分区之前,必须启动用于分页的 Virtual I/O Server。
注意:在 HMC 建立到 Virtual I/O Server 的 RMC 连接之前,无法激活共享内存分区。
对于作为分页空间分区的 Virtual I/O Server,如果它有激活的共享内存分区作为客户机,那么在关闭它之前必须先关闭客户机。否则,共享内存分区会丢失分页资源,会出现系统分页错误(就像本机分页设备出现故障一样)。在通过 HMC 停用带有激活的共享内存分区客户机的 Virtual I/O Server 时,会显示警告消息,帮助您发现这一情况。
参考资料 学习
- 您可以参阅本文在 IBM Redbooks 网站上的 红皮书原文 。
- 本系列的第 1 部分,入门 :本文向您介绍了 IBM PowerVM 的最新技术-Active Memory Sharing,它可以帮助您更好的利用 Power 主机上的内存。
- 本系列的第 2 部分,详细架构 :本文详细向您介绍了 Active Memory Sharing 的架构。首先介绍了目前支持的两种内存模型的主要特征,然后介绍了 Active Memory Sharing 的技术细节,描述了支持 Active Memory Sharing 所需的许多组件和技术。
- 本系列的第 3 部分,Active Memory Sharing 的计划 :本文向您介绍了在实施 Active Memory Sharing(AMS) 之前需要进行的一些工作,包括软硬件需求的确认、目标环境参数的评估以及实际环境中 AMS 配置的一些说明。
- 红皮书 《 IBM PowerVM Live Partition Mobility 》:本红皮书向您详细地介绍了 Live Partition Mobility 的概念和配置方法,是全面学习 Live Partition Mobility 的很好的资料。
- IBM AIX 6 资源中心:在这里,我们集中地通过 AIX 6 的最新的 6 个特性来向您展示这个新产品的亮点。
- IBM Power 系列主机虚拟化专题:在这里,我们为您整理了与 Power 系列主机虚拟化相关的内容,从概念、应用和新兴技术等方面向您介绍这个高级技术的方方面面。
- AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
- AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
- AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
获得产品和技术
-
IBM
试用软件:使用可从 developerWorks 直接下载的软件构建您的下一个开发项目。
讨论
关于作者  | |  | IBM developerWorks 中国网站致力于推广 IBM 的产品开发和应用技术,包括 IBM 大型主机 (AIX) 技术及 IBM 五大软件品牌 DB2、Lotus、Rational、Tivoli、WebSphere 的技术资源;以及开放的、跨平台的标准和技术,比如网格计算 (Grid computiong)、Java、XML、Linux、开放源代码项目 (Opensource) 和面向服务的体系结构 (Service-Orientd Architecture,SOA) 与 Web 服务等领域。 它提供了大量的文章、示例代码、教程、how-to、工具、新闻、案例分析、讨论论坛 —— 实际上就是帮助开发人员完成其工作所需要的任何内容。 |
对本文的评价
|