跳过导航链接
退出打印视图
| Oracle VM Server for SPARC 2.0 管理指南

搜索范围:

- 本文档
- 整个文档库

### 使用内存动态重新配置

Oracle VM Server for SPARC 2.0 发行版引入了内存动态重新配置 (dynamic reconfiguration, DR)。此功能基于容量，通过此功能可以向活动的逻辑域中添加或从中删除任意数量的内存。

下面是使用内存 DR 功能的要求和限制：

- 您可以在任意域上执行内存 DR 操作。但是，给定时间内在一个域上只能执行一个内存 DR 操作。

- 内存 DR 功能可对给定操作中涉及的内存的地址和大小强制执行 256 MB 对齐。请参见内存对齐。

- 使用内存 DR 功能无法将可用内存池内未对齐的内存分配给域。请参见添加未对齐的内存。

如果使用内存 DR 操作无法重新配置域的内存，则必须停止域才能重新配置内存。如果域是控制域，则必须先启动延迟重新配置。

#### 添加内存

如果域处于活动状态，可以使用 `ldm add-memory` 命令向域动态添加内存。如果指定内存大小大于域的当前内存大小，也可以使用 `ldm set-memory` 命令动态添加内存。

#### 删除内存

如果域处于活动状态，可以使用 `ldm remove-memory` 命令从域中动态删除内存。如果指定内存大小小于域的当前内存大小，也可以使用 `ldm set-memory` 命令动态删除内存。

内存删除操作可能要运行很长时间。您可以跟踪操作的进度或者取消正在进行的内存 DR 请求。

##### 跟踪内存 DR 请求的进度

通过对指定域运行 `ldm list -l` 命令，可以跟踪 `ldm remove-memory` 命令的进度。

##### 取消内存 DR 请求

通过中断 `ldm remove-memory` 命令（按 Ctrl-C）或发出 `ldm cancel-operation memdr` 命令，可以取消正在进行的删除请求。如果取消内存删除请求，只会影响删除请求的未处理部分，即，仍要从域删除的内存量。

#### 部分内存 DR 请求

如果可用内存不足以完成整个请求，将拒绝内存添加请求。但是，如果目标域无法添加 Logical Domains Manager 请求的任何内存，则可部分完成内存添加请求。

如果域中没有足够的内存来完成整个请求，将拒绝内存删除请求。但是，如果目标域无法删除 Logical Domains Manager 请求的任何内存，则可部分完成内存删除请求。

注 - 从域中删除内存后，在将其添加到其他域之前，会先进行清除。

#### 重新配置控制域内存

可以使用内存 DR 功能重新配置控制域的内存。如果无法在控制域上执行内存 DR 请求，则必须先启动延迟重新配置。

从活动域中删除大量内存时可能不适合使用内存 DR，因为内存 DR 操作可能要运行很长时间。特别地，在系统初始配置期间，应该使用延迟重新配置来减少控制域中的内存。

##### 减少控制域的内存

使用延迟重新配置而不是内存 DR 从默认出厂初始配置中减少控制域的内存。在该默认配置中，控制域拥有主机系统的所有内存。不太适合使用内存 DR 功能来实现此目的，因为不一定可以添加活动域，或者通常会放弃所有请求的内存。当然，该域中运行的 OS 会尽最大可能来完成请求。另外，内存删除操作可能要运行很长时间。涉及到大量内存操作时这些问题会扩大化，正如初始减少控制域内存的情况。

因此，请按照以下步骤使用延迟重新配置：

1. 使用 `ldm start-reconf primary` 命令将控制域置于延迟重新配置模式下。

2. 根据需要对控制域拥有的主机系统资源进行分区。

3. 如果需要，使用 `ldm cancel-reconf` 命令撤消步骤 2 中的操作，重新从头开始。

4. 重新引导控制域以使重新配置更改生效。

#### 动态重新配置和延迟重新配置

如果控制域中存在暂挂的延迟重新配置，系统将拒绝任何其他域的内存重新配置请求。如果控制域中不存在暂挂的延迟重新配置，系统将拒绝任何不支持内存 DR 的域的内存重新配置请求。不支持内存 DR 的控制域上的内存重新配置请求将转换为延迟重新配置请求。

#### 内存对齐

内存重新配置请求具有不同的对齐要求，具体取决于将应用请求的域的状态。

##### 活动域的内存对齐

- 动态添加和删除。内存块的地址和大小为对齐的 256 MB，以用于进行动态添加和动态删除。最小操作大小为 256 MB。

  将拒绝大于绑定大小的未对齐请求或删除请求。

  使用以下命令调整内存分配：

  - `ldm add-memory`。如果在此命令中指定 `--auto-adj` 选项，则要添加的内存量为对齐的 256 MB，这可能会增加实际添加到域的内存量。

  - `ldm remove-memory`。如果在此命令中指定 `--auto-adj` 选项，则要删除的内存量为对齐的 256 MB，这可能会减少实际从域中删除的内存量。

  - `ldm set-memory`。此命令被视为添加或删除操作。如果指定 `--auto-adj` 选项，则要添加或删除的内存量为对齐的 256 MB，如上所述。请注意，此对齐可能会增大域的最终内存大小。

- 延迟重新配置。内存块的地址和大小为对齐的 4 MB。如果发出的未对齐的请求，系统会将该请求舍入为对齐的 4 MB。

##### 绑定域的内存对齐

绑定域的内存块的地址和大小为对齐的 4 MB。如果发出的未对齐的请求，系统会将该请求舍入为对齐的 4 MB。这意味着域的最终内存大小可能会大于您指定的大小。

对于 `ldm add-memory`、`ldm set-memory` 和 `ldm remove-memory` 命令，`--auto-adj` 选项会将最终内存的大小舍入为对齐的 256 MB。这意味着最终内存可能会大于您指定的大小。

##### 非活动域的内存对齐

对于 `ldm add-memory`、`ldm set-memory` 和 `ldm remove-memory` 命令，`--auto-adj` 选项会将最终内存的大小舍入为对齐的 256 MB。不存在对非活动域的对齐要求。绑定域的内存对齐中所述的限制在绑定非活动域后生效。

##### 添加未对齐的内存

内存 DR 功能对动态添加到活动域或从活动域中删除的内存的地址和大小强制执行 256 MB 内存对齐。这意味着，使用内存 DR 无法删除活动域中任何未对齐的内存。

还意味着使用内存 DR 无法将可用内存池中任何未对齐的内存添加到活动域。

在所有对齐的内存都已分配后，可以使用 `ldm add-memory` 命令将剩余的未对齐内存添加到绑定域或非活动域。还可以使用此命令借助延迟重新配置操作将剩余的未对齐内存添加到控制域。

以下示例说明如何将两个剩余的 128 MB 内存块添加到 `primary` 和 `ldom1` 域中。`ldom1` 域处于绑定状态。以下命令可添加这两个剩余内存块。第一个命令可在控制域上启动延迟重新配置操作。第二个命令可将其中一个 128 MB 内存块添加到控制域。第五个命令可将另一个 128 MB 内存块添加到 `ldom1` 域。

    # ldm start-reconf primary
    Initiating a delayed reconfiguration operation on the primary domain.
    All configuration changes for other domains are disabled until the
    primary domain reboots, at which time the new configuration for the
    primary domain also takes effect.

    # ldm add-memory 128M primary
    ------------------------------------------------------------------------------
    Notice: The primary domain is in the process of a delayed reconfiguration.
    Any changes made to the primary domain will only take effect after it reboots.
    ------------------------------------------------------------------------------

    # ldm list
    NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
    primary          active     -ndcv-  SP      8     2688M    0.1%  23d 8h 8m

    # ldm list
    NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
    primary          active     -n-cv-  SP      8     2560M    0.5%  23d 8h 9m
    ldom1            bound      ------  5000    1     524M

    # ldm add-mem 128M ldom1
    # ldm list
    NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
    primary          active     -n-cv-  SP      8     2560M    0.1%  23d 8h 9m
    ldom1            bound      ------  5000    1     652M

#### 内存 DR 示例

以下示例说明如何执行内存 DR 操作。有关相关 CLI 命令的信息，请参见 `ldm`(1M) 手册页。

示例 10-1 活动域上的内存 DR 操作

本示例说明如何动态向活动域 `ldom1` 添加内存和从中删除内存。

`ldm list` 的输出显示了 Memory (内存) 字段中各个域的内存。第一个 `ldm add-mem` 命令将退出并显示错误，因为您必须将内存指定为 256 MB 的倍数。下一个 `ldm add-mem` 命令使用 `--auto-adj` 选项，这样，即使您将 `200M` 指定为要添加的内存量，系统也会将内存量舍入为 256 MB。

`ldm rm-mem` 命令将退出并显示错误，因为您必须将内存指定为 256 MB 的倍数。将 `--auto-adj` 选项添加到同一命令后，内存删除将成功，因为内存量会向下舍入到邻近的 256 MB 边界。

    # ldm list
    NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
    primary          active     -n-cv-  SP      4     27392M   0.4%  1d 22h 53m
    ldom1            active     -n----  5000    2     2G       0.4%  1d 1h 23m
    ldom2            bound      ------  5001    2     200M

    # ldm add-mem 200M ldom1
    The size of memory must be a multiple of 256MB.

    # ldm add-mem --auto-adj 200M ldom1
    Adjusting request size to 256M.
    The ldom1 domain has been allocated 56M more memory
    than requested because of memory alignment constraints.

    # ldm list
    NAME         STATE     FLAGS     CONS     VCPU     MEMORY     UTIL     UPTIME
    primary     active     -n-cv-     SP     4     27392M     5.0%     8m
    ldom1         active     -n----     5000     2     2304M     0.5%     1m
    ldom2         bound     ------     5001     2     200M

    # ldm rm-mem --auto-adj 300M ldom1
    Adjusting requested size to 256M.
    The ldom1 domain has been allocated 44M more memory
    than requested because of memory alignment constraints.

    # ldm list
    NAME         STATE     FLAGS     CONS     VCPU     MEMORY     UTIL     UPTIME
    primary     active     -n-cv-     SP     4     27392M     0.3%     8m
    ldom1         active     -n----     5000     2     2G     0.2%     2m
    ldom2         bound     ------     5001     2     200M

示例 10-2 绑定域上的内存 DR 操作

本示例说明如何向绑定域 `ldom2` 添加内存和从中删除内存。

`ldm list` 的输出显示了 Memory (内存) 字段中各个域的内存。第一个 `ldm add-mem` 命令可向 `ldom2` 域中添加 100 MB 的内存。下一个 `ldm add-mem` 命令中指定了 `--auto-adj` 选项，这可导致将额外的 112 MB 内存动态添加到 `ldom2` 中。

`ldm rm-mem` 命令可从 `ldom2` 域中动态删除 100 MB 的内存。如果在同一命令中指定 `--auto-adj` 选项以删除 300 MB 内存，内存量将向下舍入到邻近的 256 MB 边界。

    # ldm list
    NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
    primary          active     -n-cv-  SP      4     27392M   0.4%  1d 22h 53m
    ldom1            active     -n----  5000    2     2G       0.4%  1d 1h 23m
    ldom2            bound      ------  5001    2     200M

    # ldm add-mem 100M ldom2

    # ldm list
    NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
    primary          active     -n-cv-  SP      4     27392M   0.5%  1d 22h 54m
    ldom1            active     -n----  5000    2     2G       0.2%  1d 1h 25m
    ldom2            bound      ------  5001    2     300M

    # ldm add-mem --auto-adj 100M ldom2
    Adjusting request size to 256M.
    The ldom2 domain has been allocated 112M more memory
    than requested because of memory alignment constraints.

    # ldm list
    NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
    primary          active     -n-cv-  SP      4     27392M   0.4%  1d 22h 55m
    ldom1            active     -n----  5000    2     2G       0.5%  1d 1h 25m
    ldom2            bound      ------  5001    2     512M

    # ldm rm-mem 100M ldom2
    # ldm list
    NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
    primary          active     -n-cv-  SP      4     27392M   3.3%  1d 22h 55m
    ldom1            active     -n----  5000    2     2G       0.2%  1d 1h 25m
    ldom2            bound      ------  5001    2     412M

    # ldm rm-mem --auto-adj 300M ldom2
    Adjusting request size to 256M.
    The ldom2 domain has been allocated 144M more memory
    than requested because of memory alignment constraints.

    # ldm list
    NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
    primary          active     -n-cv-  SP      4     27392M   0.5%  1d 22h 55m
    ldom1            active     -n----  5000    2     2G       0.2%  1d 1h 26m
    ldom2            bound      ------  5001    2     256M

示例 10-3 设置域内存大小

本示例说明如何使用 `ldm set-memory` 命令向域中添加内存和从中删除内存。

`ldm list` 的输出显示了 Memory (内存) 字段中各个域的内存。第一个 `ldm set-mem` 命令尝试将 `primary` 域的大小设置为 3400 MB。最终错误表明指定的值不在 256 MB 边界上。将 `--auto-adj` 选项添加到同一命令后，可以成功删除某些内存并保持在 256 MB 边界上。此命令还会发出警告，以指出并非所有请求的内存都可以删除，因为域可能正在使用某些内存。

下一个 `ldm set-mem` 命令会将处于绑定状态的 `ldom2` 域的内存大小设置为 690 MB。如果向同一命令中添加 `--auto-adj` 选项，将动态向 `ldom2` 中添加额外的 78 MB 内存以保持在 256 MB 边界上。

    # ldm list
    NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
    primary          active     -n-cv-  SP      4     27392M   0.5%  1d 22h 55m
    ldom1            active     -n----  5000    2     2G       0.2%  1d 1h 26m
    ldom2            bound      ------  5001    2     256M

    # ldm set-mem 3400M primary
    An ldm set-mem 3400M command would remove 23992MB, which is not a multiple
    of 256MB. Instead, run ldm rm-mem 23808MB to ensure a 256MB alignment.

    # ldm set-mem --auto-adj 3400M primary
    Adjusting request size to 3.4G.
    The primary domain has been allocated 184M more memory
    than requested because of memory alignment constraints.
    Only 9472M of memory could be removed from the primary domain
    because the rest of the memory is in use.

    # ldm set-mem 690M ldom2
    # ldm list
    NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
    primary          active     -n-cv-  SP      4     17920M   0.5%  1d 22h 56m
    ldom1            active     -n----  5000    2     2G       0.6%  1d 1h 27m
    ldom2            bound      ------  5001    2     690M

    # ldm set-mem --auto-adj 690M ldom2
    Adjusting request size to 256M.
    The ldom2 domain has been allocated 78M more memory
    than requested because of memory alignment constraints.

    # ldm list
    NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
    primary          active     -n-cv-  SP      4     17920M   2.1%  1d 22h 57m
    ldom1            active     -n----  5000    2     2G       0.2%  1d 1h 27m
    ldom2            bound      ------  5001    2     768M

版权所有 © 2007, 2010, Oracle 和/或其附属公司。 保留所有权利。 法律声明 |