XenServer

스토리지 리포지토리 관리

이 섹션에서는 라이브 VDI 마이그레이션을 포함하여 스토리지 리포지토리(SR)의 지속적인 관리에 필요한 다양한 작업을 다룹니다.

SR 제거

스토리지 리포지토리(SR)는 일시적으로 또는 영구적으로 제거할 수 있습니다.

분리: 스토리지 장치와 풀 또는 호스트 간의 연결을 끊습니다(PBD 플러그 해제). SR(및 해당 VDI)에 액세스할 수 없게 됩니다. VDI의 내용과 VM이 VDI에 액세스하는 데 사용하는 메타 정보는 보존됩니다. 분리는 예를 들어 유지 관리를 위해 SR을 일시적으로 오프라인으로 전환할 때 사용할 수 있습니다. 분리된 SR은 나중에 다시 연결할 수 있습니다.

잊기: 물리 디스크에 있는 SR의 내용은 보존되지만, VM을 해당 VDI에 연결하는 정보는 영구적으로 삭제됩니다. 예를 들어, SR 내용을 제거하지 않고 SR을 다른 XenServer® 호스트에 다시 연결할 수 있습니다.

파괴: 물리 디스크에서 SR의 내용을 삭제합니다.

참고:

SMB 스토리지를 사용할 때, SMB SR을 분리하기 전에 스토리지에서 공유를 제거하지 마십시오.

파괴 또는 잊기 작업을 수행하려면 SR에 연결된 PBD를 호스트에서 플러그 해제해야 합니다.

  1. PBD를 플러그 해제하여 해당 XenServer 호스트에서 SR을 분리합니다:

    xe pbd-unplug uuid=pbd_uuid
    <!--NeedCopy-->
    
  2. sr-destroy 명령을 사용하여 SR을 제거합니다. 이 명령은 SR을 파괴하고, XenServer 호스트 데이터베이스에서 SR 및 해당 PBD를 삭제하며, 물리 디스크에서 SR 내용을 삭제합니다:

    xe sr-destroy uuid=sr_uuid
    <!--NeedCopy-->
    
  3. sr-forget 명령을 사용하여 SR을 잊습니다. 이 명령은 XenServer 호스트 데이터베이스에서 SR 및 해당 PBD를 제거하지만, 실제 SR 내용은 물리 미디어에 그대로 유지합니다:

    xe sr-forget uuid=sr_uuid
    <!--NeedCopy-->
    

참고:

SR에 해당하는 소프트웨어 개체가 가비지 수집되는 데 시간이 걸릴 수 있습니다.

SR 소개

이전에 잊혀진 SR을 다시 소개하려면 PBD를 생성하십시오. SR을 활성화하려면 PBD를 적절한 XenServer 호스트에 수동으로 연결하십시오.

다음 예시는 lvmoiscsi 유형의 SR을 소개합니다.

  1. 기존 SR을 프로브하여 해당 UUID를 확인합니다.

    xe sr-probe type=lvmoiscsi device-config:target=192.168.1.10 \
        device-config:targetIQN=192.168.1.10:filer1 \
        device-config:SCSIid=149455400000000000000000002000000b70200000f000000
    <!--NeedCopy-->
    
  2. sr-probe 명령에서 반환된 기존 SR UUID를 소개합니다. 새 SR의 UUID가 반환됩니다.

    xe sr-introduce content-type=user name-label="Example Shared LVM over iSCSI SR" \
        shared=true uuid=valid_sr_uuid type=lvmoiscsi
    <!--NeedCopy-->
    
  3. SR과 함께 사용할 PBD를 생성합니다. 새 PBD의 UUID가 반환됩니다.

    xe pbd-create type=lvmoiscsi host-uuid=valid_uuid sr-uuid=valid_sr_uuid \
        device-config:target=192.168.0.1 \
        device-config:targetIQN=192.168.1.10:filer1 \
        device-config:SCSIid=149455400000000000000000002000000b70200000f000000
    <!--NeedCopy-->
    
  4. PBD를 연결하여 SR을 첨부합니다.

    xe pbd-plug uuid=pbd_uuid
    <!--NeedCopy-->
    
  5. PBD 연결 상태를 확인합니다. 성공하면 currently-attached 속성이 true입니다.

    xe pbd-list sr-uuid=sr_uuid
    <!--NeedCopy-->
    

참고:

리소스 풀의 각 호스트에 대해 3단계부터 5단계까지 수행하십시오. 이러한 단계는 XenCenter의 Repair Storage Repository 기능을 사용하여 수행할 수도 있습니다.

라이브 LUN 확장

용량 요구 사항을 충족하기 위해 XenServer 호스트에 프로비저닝된 LUN의 크기를 늘리려면 스토리지 어레이에 용량을 추가해야 할 수 있습니다. 라이브 LUN 확장을 사용하면 VM 다운타임 없이 LUN의 크기를 늘릴 수 있습니다.

스토리지 어레이에 용량을 더 추가한 후 다음을 입력합니다.

xe sr-scan sr-uuid=sr_uuid
<!--NeedCopy-->

이 명령은 SR을 다시 스캔하고, 추가 용량이 추가되어 사용 가능하게 됩니다.

이 작업은 XenCenter에서도 사용할 수 있습니다. 크기를 조정할 SR을 선택한 다음 다시 스캔을 클릭합니다.

경고:

  • LUN을 축소하거나 자를 수 없습니다. 스토리지 어레이에서 LUN 크기를 줄이면 데이터 손실이 발생할 수 있습니다.
  • GFS2 SR의 크기를 조정하는 데 오랜 시간이 걸릴 수 있습니다. 크기 조정이 진행되는 동안 풀에 호스트를 추가하거나 다른 SR 작업을 수행하지 못할 수 있습니다.

라이브 VDI 마이그레이션

라이브 VDI 마이그레이션을 통해 관리자는 VM을 종료하지 않고도 VM 가상 디스크 이미지(VDI)를 재배치할 수 있습니다. 이 기능은 다음과 같은 관리 작업을 가능하게 합니다.

  • VM을 저렴한 로컬 스토리지에서 빠르고 탄력적인 어레이 기반 스토리지로 이동합니다.
  • VM을 개발 환경에서 프로덕션 환경으로 이동합니다.
  • VM이 스토리지 용량에 의해 제한될 때 스토리지 계층 간에 이동합니다.
  • 스토리지 어레이 업그레이드를 수행합니다.

제한 사항 및 주의 사항

라이브 VDI 마이그레이션에는 다음과 같은 제한 사항 및 주의 사항이 적용됩니다.

  • 대상 리포지토리에 충분한 디스크 공간이 있어야 합니다.

XenCenter를 사용하여 가상 디스크 이동

  1. 리소스 창에서 가상 디스크가 저장된 SR을 선택한 다음 스토리지 탭을 클릭합니다.

  2. 가상 디스크 목록에서 이동하려는 가상 디스크를 선택한 다음 이동을 클릭합니다.

  3. 가상 디스크 이동 대화 상자에서 VDI를 이동할 대상 SR을 선택합니다.

    참고:

    SR에 다른 가상 디스크를 위한 충분한 공간이 있는지 확인하십시오. 사용 가능한 공간은 사용 가능한 SR 목록에 표시됩니다.

  4. 이동을 클릭하여 가상 디스크를 이동합니다.

xe CLI 참조는 vdi-pool-migrate를 참조하십시오.

SR 간 콜드 VDI 마이그레이션(오프라인 마이그레이션)

VM과 연결된 VDI는 유지 관리 요구 사항 또는 계층형 스토리지 구성을 수용하기 위해 한 SR에서 다른 SR로 복사할 수 있습니다. XenCenter를 사용하면 VM과 모든 VDI를 동일하거나 다른 SR로 복사할 수 있습니다. XenCenter와 xe CLI를 조합하여 개별 VDI를 복사할 수 있습니다.

xe CLI 참조는 vm-migrate를 참조하십시오.

VM의 모든 VDI를 다른 SR로 복사

XenCenter 복사 VM 기능은 선택한 VM의 모든 VDI 복사본을 동일하거나 다른 SR에 생성합니다. 기본적으로 원본 VM 및 VDI는 영향을 받지 않습니다. 복사본을 생성하는 대신 VM을 선택한 SR로 이동하려면 가상 머신 복사 대화 상자에서 원본 VM 제거 옵션을 선택합니다.

  1. VM을 종료합니다.
  2. XenCenter 내에서 VM을 선택한 다음 VM > VM 복사 옵션을 선택합니다.
  3. 원하는 대상 SR을 선택합니다.

개별 VDI를 다른 SR로 복사

xe CLI와 XenCenter를 조합하여 SR 간에 개별 VDI를 복사할 수 있습니다.

  1. VM을 종료합니다.

  2. xe CLI를 사용하여 이동할 VDI의 UUID를 식별합니다. VM에 DVD 드라이브가 있는 경우, 해당 vdi-uuidnot in database로 나열되며 무시할 수 있습니다.

    xe vbd-list vm-uuid=valid_vm_uuid
    <!--NeedCopy-->
    

    참고:

    vbd-list 명령은 VBD 및 VDI UUID를 모두 표시합니다. VBD UUID 대신 VDI UUID를 기록해야 합니다.

  3. XenCenter에서 VM 스토리지 탭을 선택합니다. 이동할 각 VDI에 대해 VDI를 선택하고 분리 버튼을 클릭합니다. 이 단계는 vbd-destroy 명령을 사용하여 수행할 수도 있습니다.

    참고:

    vbd-destroy 명령을 사용하여 VDI UUID를 분리하는 경우, 먼저 VBD에 매개변수 other-config:ownertrue으로 설정되어 있는지 확인하십시오. 이 매개변수를 false로 설정하십시오. other-config:owner=true과 함께 vbd-destroy 명령을 실행하면 연결된 VDI도 파괴됩니다.

  4. vdi-copy 명령을 사용하여 이동할 각 VM VDI를 원하는 SR로 복사합니다.

    xe vdi-copy uuid=valid_vdi_uuid sr-uuid=valid_sr_uuid
    <!--NeedCopy-->
    
  5. XenCenter에서 VM 스토리지 탭을 선택합니다. 연결 버튼을 클릭하고 새 SR에서 VDI를 선택합니다. 이 단계는 vbd-create 명령을 사용하여 수행할 수도 있습니다.

  6. 원본 VDI를 삭제하려면 XenCenter에서 원본 SR의 스토리지 탭을 선택합니다. 원본 VDI는 VM 필드에 빈 값으로 나열됩니다. 삭제 버튼을 사용하여 VDI를 삭제합니다.

로컬 파이버 채널 SR을 공유 SR로 변환

xe CLI 및 XenCenter의 스토리지 리포지토리 복구 기능을 사용하여 로컬 FC SR을 공유 FC SR로 변환합니다.

  1. 리소스 풀의 모든 호스트를 XenServer 9로 업그레이드합니다.

  2. 풀의 모든 호스트에 SR의 LUN이 적절하게 구역화되어 있는지 확인합니다. 각 호스트에 LUN이 있는지 확인하기 위해 sr-probe 명령을 사용하는 방법에 대한 자세한 내용은 SR 프로브를 참조하십시오.

  3. SR을 공유로 변환:

    xe sr-param-set shared=true uuid=local_fc_sr
    <!--NeedCopy-->
    
  4. SR은 XenCenter에서 호스트 수준에서 풀 수준으로 이동하여 공유되었음을 나타냅니다. SR은 현재 풀의 모든 호스트에 플러그인되어 있지 않음을 나타내기 위해 빨간색 느낌표로 표시됩니다.

  5. SR을 선택한 다음 저장소 > 저장소 리포지토리 복구 옵션을 선택합니다.

  6. Repair를 클릭하여 풀의 각 호스트에 대한 PBD를 생성하고 플러그인합니다.

discard를 사용하여 백업 어레이에서 블록 기반 스토리지 공간 회수

공간 회수를 사용하여 씬 프로비저닝된 LUN에서 사용되지 않는 블록을 확보할 수 있습니다. 공간이 해제되면 스토리지 어레이는 이 회수된 공간을 재사용할 수 있습니다.

참고:

공간 회수는 일부 유형의 스토리지 어레이에서만 사용할 수 있습니다. 어레이가 이 기능을 지원하는지 여부와 특정 구성이 필요한지 여부를 확인하려면 하드웨어 호환성 목록 및 스토리지 공급업체별 설명서를 참조하십시오.

XenCenter를 사용하여 공간을 회수하려면 다음을 수행합니다.

  1. Infrastructure 보기를 선택한 다음 SR에 연결된 호스트 또는 풀을 선택합니다.

  2. Storage 탭을 클릭합니다.

  3. 목록에서 SR을 선택하고 Reclaim freed space를 클릭합니다.

  4. 작업을 확인하려면 Yes를 클릭합니다.

  5. Notifications를 클릭한 다음 Events를 클릭하여 작업 상태를 확인합니다.

자세한 내용은 XenCenter에서 F1을 눌러 온라인 도움말에 액세스하십시오.

xe CLI를 사용하여 공간을 회수하려면 다음 명령을 사용할 수 있습니다.

xe host-call-plugin host-uuid=host_uuid \
    plugin=trim fn=do_trim args:sr_uuid=sr_uuid

참고:

  • 이 작업은 어레이의 씬 프로비저닝된 LUN을 기반으로 하는 LVM 기반 SR에서만 사용할 수 있습니다. 로컬 SSD도 공간 회수(space reclamation)의 이점을 얻을 수 있습니다.
  • NFS 및 EXT3/EXT4와 같은 파일 기반 SR에는 공간 회수(space reclamation)가 필요하지 않습니다. 이러한 SR 유형의 경우 XenCenter에서 할당 해제된 공간 회수 버튼을 사용할 수 없습니다.
  • 파일 기반 SR 또는 씩 프로비저닝된 LVM 기반 SR에 대해 공간 회수 xe 명령을 실행하면 명령에서 오류가 반환됩니다.
  • 공간 회수(space reclamation)는 집약적인 작업이며 스토리지 어레이 성능 저하로 이어질 수 있습니다. 따라서 어레이에서 공간 회수가 필요할 때만 이 작업을 시작하십시오. 이 작업은 어레이 수요가 가장 많은 시간을 피해 예약하는 것이 좋습니다.

스냅샷 삭제 시 공간 자동 회수

XenServer로 스냅샷을 삭제하면 LVM 기반 SR에 할당된 공간이 자동으로 회수되며 VM 재부팅이 필요하지 않습니다. 이 작업을 ‘온라인 통합(online coalescing)’이라고 합니다. 온라인 통합은 모든 유형의 SR에 적용됩니다.

특정 경우에 자동 공간 회수가 진행되지 않을 수 있습니다. 이러한 시나리오에서는 오프라인 통합 도구(offline coalesce tool)를 사용하는 것이 좋습니다.

  • VM I/O 처리량이 상당한 경우
  • 일정 기간 후에도 공간이 회수되지 않는 경우

참고:

  • 오프라인 통합 도구(offline coalesce tool)를 실행하면 수행되는 일시 중단/재개 작업으로 인해 VM에 약간의 다운타임이 발생합니다.
  • 도구를 실행하기 전에 더 이상 필요 없는 스냅샷과 클론을 삭제하십시오. 이 도구는 남아 있는 스냅샷/클론을 고려하여 가능한 한 많은 공간을 회수합니다. 전체 공간을 회수하려면 모든 스냅샷과 클론을 삭제하십시오.
  • VM 디스크는 단일 호스트의 공유 스토리지 또는 로컬 스토리지에 있어야 합니다. 두 가지 유형의 스토리지에 디스크가 있는 VM은 통합할 수 없습니다.

오프라인 통합 도구(offline coalesce tool)를 사용하여 공간 회수

XenCenter를 사용하여 숨겨진 개체를 활성화합니다. 보기 > 숨겨진 개체를 클릭합니다. 리소스 창에서 UUID를 얻으려는 VM을 선택합니다. UUID는 일반 탭에 표시됩니다.

리소스 창에서 리소스 풀 코디네이터(목록의 첫 번째 호스트)를 선택합니다. 일반 탭에 UUID가 표시됩니다. 리소스 풀을 사용하지 않는 경우 VM의 호스트를 선택합니다.

  1. 호스트에서 콘솔을 열고 다음 명령을 실행합니다.

    xe host-call-plugin host-uuid=host-UUID \
        plugin=coalesce-leaf fn=leaf-coalesce args:vm_uuid=VM-UUID
    <!--NeedCopy-->
    

    예를 들어, VM UUID가 9bad4022-2c2d-dee6-abf5-1b6195b1dad5이고 호스트 UUID가 b8722062-de95-4d95-9baa-a5fe343898ea인 경우 다음 명령을 실행합니다.

    xe host-call-plugin host-uuid=b8722062-de95-4d95-9baa-a5fe343898ea \
        plugin=coalesce-leaf fn=leaf-coalesce args:vm_uuid=9bad4022-2c2d-dee6-abf5-1b6195b1dad5
    <!--NeedCopy-->
    
  2. 이 명령은 VM을 일시 중단하고(이미 전원이 꺼져 있지 않은 경우), 공간 회수 프로세스를 시작한 다음 VM을 다시 시작합니다.

참고:

오프라인 통합 도구를 실행하기 전에 VM을 수동으로 종료하거나 일시 중단하는 것이 좋습니다. XenCenter 또는 XenServer CLI를 사용하여 VM을 종료하거나 일시 중단할 수 있습니다. 실행 중인 VM에서 통합 도구를 실행하면 도구가 자동으로 VM을 일시 중단하고 필요한 VDI 통합 작업을 수행한 다음 VM을 다시 시작합니다. Agile VM은 다른 호스트에서 다시 시작될 수 있습니다.

통합할 가상 디스크 이미지(VDI)가 공유 스토리지에 있는 경우, 풀 코디네이터에서 오프라인 통합 도구를 실행해야 합니다.

통합할 VDI가 로컬 스토리지에 있는 경우, 로컬 스토리지가 연결된 호스트에서 오프라인 통합 도구를 실행합니다.

디스크 I/O 작업

디스크 I/O 스케줄러 및 디스크 I/O 우선순위 설정을 구성하여 디스크 성능을 변경할 수 있습니다.

참고:

이 섹션에 설명된 디스크 I/O 기능은 GFS2, NFS 또는 SMB3 스토리지에는 적용되지 않습니다.

디스크 I/O 스케줄러 조정

일반적인 성능을 위해 모든 새 SR 유형에 기본 디스크 스케줄러 none가 적용됩니다. none 스케줄러는 동일한 장치에 액세스하는 경쟁 VM에 가장 공정한 성능을 제공합니다.

  1. 다음 명령을 사용하여 디스크 스케줄러를 조정합니다.

    xe sr-param-set other-config:scheduler=<option> uuid=<sr_uuid>
    <!--NeedCopy-->
    

    <option> 값은 다음 용어 중 하나일 수 있습니다: none, bfq, 또는 mq-deadline.

  2. 스케줄러 매개변수를 적용하려면 해당 PBD를 분리했다가 다시 연결하십시오.

    xe pbd-unplug uuid=<pbd_uuid>
    xe pbd-plug uuid=<pbd_uuid>
    <!--NeedCopy-->
    

디스크 I/O 요청 우선순위를 적용하려면 기본 설정을 재정의하고 bfq 디스크 스케줄러를 SR에 할당하십시오.

가상 디스크 I/O 요청 우선순위

가상 디스크에는 선택적 I/O 요청 우선순위 설정이 있습니다. 이 설정을 사용하여 특정 VM 디스크에 대한 I/O를 다른 디스크보다 우선순위를 지정할 수 있습니다.

VBD에 대한 디스크 I/O 요청 우선순위 매개변수를 구성하기 전에 SR에 대한 디스크 스케줄러가 적절하게 설정되었는지 확인하십시오. 스케줄러 매개변수는 SR에서 bfq으로 설정되어야 하며 관련 PBD는 분리했다가 다시 연결해야 합니다. 스케줄러 조정 방법에 대한 자세한 내용은 디스크 I/O 스케줄러 조정을 참조하십시오.

여러 호스트가 동일한 LUN에 액세스하는 공유 SR의 경우, 우선순위 설정은 동일한 호스트에서 LUN에 액세스하는 VBD에 적용됩니다. 이러한 설정은 풀의 호스트 간에 적용되지 않습니다.

호스트는 원격 스토리지에 요청을 발행하지만, 요청 우선순위는 원격 스토리지에 의해 처리됩니다.

디스크 I/O 요청 매개변수 설정

이러한 설정은 다음 매개변수와 함께 xe vbd-param-set 명령을 사용하여 기존 가상 디스크에 적용할 수 있습니다.

  • qos_algorithm_type - 이 매개변수는 가상 디스크에 대해 지원되는 유일한 알고리즘인 ionice 값으로 설정해야 합니다.

  • qos_algorithm_param - 이 매개변수를 사용하여 키-값 쌍을 설정합니다. 가상 디스크의 경우, qos_algorithm_paramsched 키를 사용하며, 값에 따라 class 키도 필요합니다.

    qos_algorithm_param:sched은 다음 값 중 하나를 가질 수 있습니다:

    • sched=rt 또는 sched=real-time - 이 값은 스케줄링 매개변수를 실시간 우선순위로 설정하며, 값을 설정하려면 class 매개변수가 필요합니다.

    • sched=idle - 이 값은 스케줄링 매개변수를 유휴 우선순위로 설정하며, 어떤 값도 설정하는 데 class 매개변수가 필요하지 않습니다.

    • sched=anything - 이 값은 스케줄링 매개변수를 최선 노력 우선순위로 설정하며, 값을 설정하는 데 class 매개변수가 필요합니다.

    qos_algorithm_param:class은 다음 값 중 하나를 가질 수 있습니다.

    • 다음 키워드 중 하나: highest, high, normal, low, lowest.

    • 0에서 7 사이의 정수이며, 여기서 7은 가장 높은 우선순위이고 0은 가장 낮은 우선순위입니다. 예를 들어, 우선순위가 5인 I/O 요청은 우선순위가 2인 I/O 요청보다 우선순위가 부여됩니다.

예시

예를 들어, 다음 CLI 명령은 가상 디스크의 VBD가 실시간 우선순위 5을 사용하도록 설정합니다.

xe vbd-param-set uuid=<vbd_uuid> qos_algorithm_type=ionice
xe vbd-param-set uuid=<vbd_uuid> qos_algorithm_params:sched=rt
xe vbd-param-set uuid=<vbd_uuid> qos_algorithm_params:class=5
xe sr-param-set uuid=<sr_uuid> other-config:scheduler=bfq
xe pbd-unplug uuid=<pbd_uuid>
xe pbd-plug uuid=<pbd_uuid>
<!--NeedCopy-->