Oracle® VM Server for SPARC 3.3 관리 설명서

인쇄 보기 종료

업데이트 날짜: 2015년 10월
 
 

메모리 동적 재구성 사용

메모리 동적 재구성(DR)은 용량을 기반으로 하며, 임의의 메모리 양을 활성 논리적 도메인에 추가하거나 활성 논리적 도메인에서 제거할 수 있도록 해줍니다.

    메모리 DR 기능 사용을 위한 요구 사항 및 제한 사항은 다음과 같습니다.

  • 모든 도메인에서 메모리 DR 작업을 수행할 수 있습니다. 하지만 한 번에 하나의 메모리 DR 작업만 도메인에서 진행 가능합니다.

  • 메모리 DR 기능은 한 번의 작업에 포함되는 메모리 주소 및 크기에 대해 256MB 정렬을 적용합니다. 메모리 정렬을 참조하십시오.

  • 사용 가능한 메모리 풀에서 정렬되지 않은 메모리는 메모리 DR 기능을 사용하여 도메인에 지정할 수 없습니다. 정렬되지 않은 메모리 추가를 참조하십시오.

메모리 DR 작업을 사용하여 도메인의 메모리를 재구성할 수 없는 경우 메모리를 재구성하려면 먼저 도메인을 중지해야 합니다. 도메인이 컨트롤 도메인인 경우 먼저 지연된 재구성을 시작해야 합니다.

특정 환경에서는 Logical Domains Manager가 요청된 메모리 할당을 8KB 또는 4MB의 배수 중에서 그 다음으로 가장 큰 수로 반올림합니다. 다음 예제에서 ldm list-domain -l 명령의 샘플 출력을 보면 제약 조건 값이 실제로 할당된 크기보다 작은 것을 알 수 있습니다.

Memory:
          Constraints: 1965 M
          raddr          paddr5          size
          0x1000000      0x291000000     1968M

메모리 추가

도메인이 활성 상태인 경우 ldm add-memory 명령을 사용하여 도메인에 메모리를 동적으로 추가할 수 있습니다. 지정된 메모리 크기가 도메인의 현재 메모리 크기보다 큰 경우 ldm set-memory 명령도 메모리를 동적으로 추가할 수 있습니다.

메모리 제거

도메인이 활성 상태인 경우 ldm remove-memory 명령을 사용하여 도메인에서 메모리를 동적으로 제거할 수 있습니다. 지정된 메모리 크기가 도메인의 현재 메모리 크기보다 작은 경우 ldm set-memory 명령도 메모리를 동적으로 제거할 수 있습니다.

메모리 제거는 오래 실행되는 작업이 될 수 있습니다. 지정된 도메인에 대해 ldm list -l 명령을 실행하여 ldm remove-memory 명령 진행을 추적할 수 있습니다.

ldm remove-memory 명령을 중단(Ctrl-C 누름)시키거나 ldm cancel-operation memdr 명령을 실행하여 진행 중인 제거 요청을 취소할 수 있습니다. 메모리 제거 요청을 취소할 경우 제거 요청의 미해결 부분(즉, 도메인에서 제거될 메모리 양)만 영향을 받습니다.

일부 메모리 DR 요청

동적으로 메모리를 도메인에 추가하거나 도메인에서 제거하는 요청은 부분적으로만 이행될 수 있습니다. 그 결과는 추가하거나 제거할 적합한 메모리가 있는지 여부에 달려있습니다.


주 - 메모리는 도메인에서 제거된 후 다른 도메인에 추가되기 전에 지워집니다.

컨트롤 도메인의 메모리 재구성

메모리 DR 기능을 사용하여 컨트롤 도메인의 메모리를 재구성할 수 있습니다. 컨트롤 도메인에서 메모리 DR 요청을 수행할 수 없는 경우 먼저 지연된 재구성을 시작해야 합니다.

메모리 DR 작업은 오래 실행될 수 있으므로 활성 도메인에서 많은 용량의 메모리 제거를 위해 메모리 DR을 사용하는 것은 적절하지 않을 수 있습니다. 특히, 시스템의 초기 구성 중에는 지연된 재구성을 사용하여 컨트롤 도메인의 메모리를 줄여야 합니다.

컨트롤 도메인의 메모리 줄이기

초기 공장 출하 시 기본 구성에서 컨트롤 도메인의 메모리를 줄이려면 메모리 DR 대신 지연된 재구성을 사용합니다. 이러한 경우 컨트롤 도메인의 호스트 시스템의 모든 메모리를 소유하고 있습니다. 활성 도메인은 요청된 모든 메모리를 추가하거나 더 일반적으로는 해제하지 않으므로 메모리 DR 기능은 이 용도로 적합하지 않습니다. 한편 해당 도메인에서 실행 중인 OS는 요청을 처리하기 위해 최선을 다합니다. 또한 메모리 제거는 오래 실행되는 작업이 될 수 있습니다. 초기 컨트롤 도메인의 메모리 줄이기와 마찬가지로 대량 메모리 작업이 수행되는 경우 이러한 문제는 더 커집니다.

이러한 이유로 다음 단계를 수행하여 지연된 재구성을 사용하십시오.

  1. ldm start-reconf primary 명령을 사용하여 컨트롤 도메인을 지연된 재구성 모드로 설정합니다.

  2. 필요에 따라 컨트롤 도메인이 소유하고 있는 호스트 시스템의 리소스를 분할합니다.

  3. 필요한 경우 ldm cancel-reconf 명령을 사용하여 2단계의 작업을 실행 취소하고 다시 시작합니다.

  4. 컨트롤 도메인을 재부트하여 재구성 변경 사항을 적용합니다.

동적 및 지연된 재구성

지연된 재구성이 컨트롤 도메인에서 보류 중인 경우 다른 도메인에 대한 메모리 재구성 요청은 거부됩니다. 지연된 재구성이 컨트롤 도메인에서 보류 중이 아닌 경우 메모리 DR을 지원하지 않는 도메인에 대한 메모리 재구성 요청은 거부됩니다. 해당 도메인의 경우 지연된 재구성 요청으로 요청이 변환됩니다.

메모리 정렬

메모리 재구성 요청은 요청이 적용되는 도메인의 상태에 따라 정렬 요구 사항이 달라집니다.

활성 도메인에 대한 메모리 정렬

  • 동적 추가 및 제거. 메모리 블록의 주소와 크기는 동적 추가 및 동적 제거의 경우 256MB로 정렬됩니다. 최소 작업 크기는 256MB입니다.

    정렬되지 않은 요청이나 바인드된 크기보다 큰 제거 요청은 거부됩니다.

      메모리 할당을 조정하려면 다음 명령을 사용합니다.

    • ldm add-memory. 이 명령과 함께 –-auto-adj 옵션을 지정할 경우 추가되는 메모리 용량은 256MB로 정렬되며, 이 경우 도메인에 실제로 추가되는 메모리의 용량이 늘어날 수 있습니다.

    • ldm remove-memory. 이 명령과 함께 –-auto-adj 옵션을 지정할 경우 제거되는 메모리 용량은 256MB로 정렬되며, 이 경우 도메인에서 실제로 제거되는 메모리의 용량이 줄어들 수 있습니다.

    • ldm set-memory. 이 명령은 추가 또는 제거 작업으로 취급됩니다. –-auto-adj 옵션을 지정할 경우 추가되거나 제거되는 메모리 용량은 앞에서 설명한 대로 256MB로 정렬됩니다. 이 정렬로 도메인의 실제 메모리 크기가 늘어날 수 있습니다.

  • 지연된 재구성. 메모리 블록의 주소와 크기는 4MB로 정렬됩니다. 정렬되지 않은 요청을 할 경우 요청이 반올림되어 4MB로 정렬됩니다.

바인드된 도메인에 대한 메모리 정렬

메모리 블록의 주소와 크기는 바인드된 도메인의 경우 4MB로 정렬됩니다. 정렬되지 않은 요청을 할 경우 요청이 반올림되어 4MB로 정렬됩니다. 따라서 도메인의 결과 메모리 크기는 예상한 것보다 늘어날 수 있습니다.

ldm add-memory, ldm set-memoryldm remove-memory 명령의 경우 –-auto-adj 옵션은 결과 메모리의 크기를 반올림하여 256MB로 정렬합니다. 따라서 결과 메모리는 예상한 것보다 늘어날 수 있습니다.

비활성 도메인에 대한 메모리 정렬

ldm add-memory, ldm set-memoryldm remove-memory 명령의 경우 –-auto-adj 옵션은 결과 메모리의 크기를 반올림하여 256MB로 정렬합니다. 비활성 도메인에 대한 정렬 요구 사항은 없습니다. 바인드된 도메인에 대한 메모리 정렬에 설명된 제한 사항은 이러한 도메인이 바인드된 후 적용됩니다.

정렬되지 않은 메모리 추가

메모리 DR 기능은 활성 도메인에 동적으로 추가되거나 제거되는 메모리 주소 및 크기에 대해 256MB 메모리 정렬을 적용합니다. 따라서 활성 도메인에서 정렬되지 않은 메모리는 메모리 DR을 사용하여 제거할 수 없습니다.

또한 사용 가능한 메모리 풀에서 정렬되지 않은 메모리는 메모리 DR을 사용하여 활성 도메인에 추가할 수 없습니다.

모든 정렬된 메모리가 할당된 후 ldm add-memory 명령을 사용하여 나머지 정렬되지 않은 메모리를 바인드된 도메인이나 활성 도메인에 추가할 수 있습니다. 또한 이 명령을 사용하면 지연된 재구성 작업을 통해 나머지 정렬되지 않은 메모리를 컨트롤 도메인에 추가할 수 있습니다.

다음 예는 2개의 나머지 128MB 메모리 블록을 primaryldom1 도메인에 추가하는 방법을 보여줍니다. ldom1 도메인은 바인드된 상태입니다.

다음 명령은 컨트롤 도메인에서 지연된 재구성 작업을 시작합니다.

primary# 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.

다음 명령은 컨트롤 도메인에 128MB 메모리 블록 중 하나를 추가합니다.

primary# 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.
------------------------------------------------------------------------------

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

primary# 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

다음 명령은 ldom1 도메인에 다른 128MB 메모리 블록을 추가합니다.

primary# ldm add-mem 128M ldom1
primary# 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) 매뉴얼 페이지를 참조하십시오.

예 14-7  활성 도메인에서 메모리 DR 작업

이 예는 활성 도메인인 ldom1에 동적으로 메모리를 추가하고 제거하는 방법을 보여줍니다.

ldm list 출력은 Memory 필드의 각 도메인에 대한 메모리를 보여줍니다.

primary# 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

메모리를 256MB의 배수로 지정해야 하므로 다음 ldm add-mem 명령은 오류와 함께 종료됩니다. 다음 ldm add-mem 명령은 –-auto-adj 옵션을 사용하므로 200M를 추가할 메모리 용량으로 지정하더라도 반올림되어 256MB가 됩니다.

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

primary# 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.

primary# 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

메모리를 256MB의 배수로 지정해야 하므로 ldm rm-mem 명령은 오류와 함께 종료됩니다. 동일한 명령에 –-auto-adj 옵션을 추가하면 메모리 양이 다음 256MB 경계로 반내림되므로 메모리 제거를 성공합니다.

primary# 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.

primary# 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
예 14-8  바인드된 도메인에서 메모리 DR 작업

이 예는 바인드된 도메인인 ldom2에 동적으로 메모리를 추가하고 제거하는 방법을 보여줍니다.

ldm list 출력은 Memory 필드의 각 도메인에 대한 메모리를 보여줍니다. 첫번째 ldm add-mem 명령은 100MB의 메모리를 ldom2 도메인에 추가합니다. 다음 ldm add-mem 명령은 –-auto-adj 옵션을 지정하여 추가 112MB의 메모리가 ldom2에 동적으로 추가됩니다.

ldm rm-mem 명령은 ldom2 도메인에서 100MB를 동적으로 제거합니다. 동일 명령에 –-auto-adj 옵션을 사용하여 300MB의 메모리를 제거할 경우 메모리 용량이 반내림되어 다음 256MB 경계가 됩니다.

primary# 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          

primary# ldm add-mem 100M ldom2

primary# 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       

primary# 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.

primary# 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          

primary# ldm rm-mem 100M ldom2
primary# 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          

primary# 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.

primary# 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
예 14-9  도메인 메모리 크기 설정

이 예는 ldm set-memory 명령을 사용하여 도메인에 메모리를 추가하고 제거하는 방법을 보여줍니다.

ldm list 출력은 Memory 필드의 각 도메인에 대한 메모리를 보여줍니다.

primary# 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 명령은 primary 도메인의 크기를 3400MB로 설정하려고 시도합니다. 지정된 값이 256MB 경계에 있지 않다는 오류가 나타납니다. 동일 명령에 –-auto-adj 옵션을 추가하면 일부 메모리를 자동으로 제거하고 256MB 경계에 있을 수 있습니다. 또한 이 명령은 도메인에서 해당 메모리를 사용 중이므로 요청된 메모리 중 일부를 제거할 수 없다는 경고를 표시합니다.

primary# 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.

primary# 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 명령은 바인드된 상태인 ldom2 도메인의 메모리 크기를 690MB로 설정합니다. 동일 명령에 –-auto-adj 옵션을 사용할 경우 추가 78MB의 메모리가 ldom2에 동적으로 추가되어 256MB 경계에 있게 됩니다.

primary# ldm set-mem 690M ldom2
primary# 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          

primary# 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.

primary# 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