Azure Stack Hub 컴퓨팅 용량
Azure Stack Hub에서 지원되는 VM(가상 머신) 크기 는 Azure에서 지원되는 VM의 하위 집합입니다. Azure는 리소스(서버 로컬 및 서비스 수준)의 초과 사용을 방지하기 위해 많은 벡터를 따라 리소스 제한을 적용합니다. 테넌트 사용에 대한 일부 제한을 적용하지 않으면 다른 테넌트에서 리소스를 초과 사용하면 테넌트 환경이 저하됩니다. VM에서의 네트워킹 송신의 경우 Azure Stack Hub에 Azure 제한 사항과 일치하는 대역폭 한도가 있습니다. Azure Stack Hub 스토리지 리소스의 경우 스토리지 IOPS 제한은 스토리지 액세스를 위해 테넌트별 리소스 사용에 대한 기본 초과 사용을 방지합니다.
중요
Azure Stack Hub Capacity Planner는 IOPS 성능을 고려하거나 보장하지 않습니다. 관리자 포털은 총 시스템 메모리 사용량이 85%에 도달하면 경고 경고를 표시합니다. 이 경고는 용량을 추가하거나 더 이상 필요하지 않은 가상 머신을 제거하여 수정할 수 있습니다.
VM 배치
Azure Stack Hub 배치 엔진은 사용 가능한 호스트에 테넌트 VM을 배치합니다.
Azure Stack Hub는 VM을 배치할 때 두 가지 고려 사항을 사용합니다. 하나는 해당 VM 유형에 대한 호스트에 충분한 메모리가 있나요? 둘째, VM이 가용성 집합 의 일부인가요, 아니면 가상 머신 확장 집합인가요?
Azure Stack Hub에서 다중 VM 프로덕션 워크로드의 고가용성을 달성하기 위해 VM(가상 머신)은 여러 장애 도메인에 분산되는 가용성 집합에 배치됩니다. 가용성 집합의 장애 도메인은 스탬프에서 단일 노드로 정의됩니다. Azure Stack Hub는 Azure와 일치하도록 최대 3개의 장애 도메인이 있는 가용성 집합을 지원합니다. 가용성 집합에 배치된 VM은 여러 장애 도메인(Azure Stack Hub 노드)을 통해 가능한 한 균등하게 분산하여 물리적으로 서로 격리됩니다. 하드웨어 오류가 있는 경우 실패한 장애 도메인의 VM이 다른 장애 도메인에서 다시 시작됩니다. 가능하면 동일한 가용성 집합의 다른 VM과 별도의 장애 도메인에 보관됩니다. 호스트가 다시 온라인 상태가 되면 고가용성을 유지하기 위해 VM의 균형이 조정됩니다.
가상 머신 확장 집합은 백 엔드에서 가용성 집합을 사용하고 각 가상 머신 확장 집합 인스턴스가 다른 장애 도메인에 배치되도록 합니다. 즉, 별도의 Azure Stack Hub 인프라 노드를 사용합니다. 예를 들어 4노드 Azure Stack Hub 시스템에서는 3개의 개별 Azure Stack Hub 노드에 3개의 가상 머신 확장 집합 인스턴스를 배치할 수 있는 4노드 용량이 부족하여 3개의 인스턴스가 있는 가상 머신 확장 집합이 생성 시 실패하는 상황이 발생할 수 있습니다. 또한 배치를 시도하기 전에 Azure Stack Hub 노드를 다양한 수준으로 채울 수 있습니다.
Azure Stack Hub는 메모리를 과도하게 커밋하지 않습니다. 그러나 물리적 코어 수에 대한 초과 커밋은 허용됩니다.
배치 알고리즘은 기존 가상에서 실제 코어 오버프로비전 비율을 요소로 보지 않으므로 각 호스트의 비율이 다를 수 있습니다. Microsoft는 워크로드 및 서비스 수준 요구 사항의 변화로 인해 물리적-가상 코어 비율에 대한 지침을 제공하지 않습니다.
총 VM 수 고려 사항
만들 수 있는 총 VM 수에는 제한이 있습니다. Azure Stack Hub의 최대 VM 수는 배율 단위 노드당 700 및 60입니다. 예를 들어 8개 서버 Azure Stack Hub VM 제한은 480(8 * 60)입니다. 서버가 12~16개인 Azure Stack Hub 솔루션의 경우 제한은 700입니다. 이 제한은 운영자가 스탬프에서 유지 관리하려는 복원력 예약 및 CPU 가상 대 물리적 비율과 같은 모든 컴퓨팅 용량 고려 사항을 염두에 두고 만들어졌습니다.
VM 확장 제한에 도달하면 다음 오류 코드가 결과로 VMsPerScaleUnitLimitExceeded
반환됩니다. , VMsPerScaleUnitNodeLimitExceeded
.
참고
최대 700개 VM의 일부는 Azure Stack Hub 인프라 VM용으로 예약되어 있습니다. 자세한 내용은 Azure Stack Hub capacity Planner를 참조하세요.
VM 일괄 배포 고려 사항
2002년 이전 및 포함 릴리스에서는 일괄 처리 간 간격이 5분인 일괄 처리당 2~5개의 VM이 700개의 VM 규모에 도달할 수 있도록 신뢰할 수 있는 VM 배포를 제공했습니다. 2005년 버전의 Azure Stack Hub를 사용하면 일괄 처리 배포 간에 5분 간격으로 40의 일괄 처리 크기로 VM을 안정적으로 프로비전할 수 있습니다. 시작, 할당 취소 중지 및 업데이트 작업은 일괄 처리 크기 30으로 수행되어야 하며 각 일괄 처리 사이에 5분이 남습니다.
GPU VM에 대한 고려 사항
Azure Stack Hub는 인프라 및 테넌트 VM에 대한 메모리를 장애 조치(failover)할 수 있도록 예약합니다. 다른 VM과 달리 GPU VM은 비 HA(고가용성) 모드에서 실행되므로 장애 조치(failover)하지 않습니다. 따라서 GPU VM 전용 스탬프에 대한 예약 메모리는 HA 테넌트 VM 메모리를 고려하지 않고 인프라에서 장애 조치(failover)하는 데 필요합니다.
Azure Stack Hub 메모리
Azure Stack Hub는 성공적으로 프로비전된 VM을 계속 실행하도록 설계되었습니다. 예를 들어 하드웨어 오류로 인해 호스트가 오프라인 상태인 경우 Azure Stack Hub는 다른 호스트에서 해당 VM을 다시 시작하려고 시도합니다. Azure Stack Hub 소프트웨어의 패치 및 업데이트가 두 번째 예시입니다. 물리적 호스트를 다시 부팅해야 하는 경우 해당 호스트에서 실행되는 VM을 솔루션의 사용 가능한 다른 호스트로 이동하려고 시도합니다.
이 VM 관리 또는 이동은 다시 시작 또는 마이그레이션이 발생할 수 있도록 예약된 메모리 용량이 있는 경우에만 수행할 수 있습니다. 총 호스트 메모리의 일부가 예약되어 있으며 테넌트 VM 배치에 사용할 수 없습니다.
관리자 포털에서 Azure Stack Hub에서 사용 가능하고 사용된 메모리를 보여주는 원형 차트를 검토할 수 있습니다. 다음 다이어그램은 Azure Stack Hub에서 Azure Stack Hub 스탬프의 실제 메모리 용량을 보여줍니다.
사용된 메모리는 여러 구성 요소로 구성됩니다. 다음 구성 요소는 원형 차트의 사용 섹션에서 메모리를 사용합니다.
- 호스트 OS 사용량 또는 예약: 호스트의 운영 체제(OS)에서 사용하는 메모리, 가상 메모리 페이지 테이블, 호스트 OS에서 실행되는 프로세스 및 Spaces Direct 메모리 캐시입니다. 이 값은 호스트에서 실행되는 여러 Hyper-V 프로세스에서 사용하는 메모리에 따라 달라지므로 변동될 수 있습니다.
- 인프라 서비스: Azure Stack Hub를 구성하는 인프라 VM입니다. 앞에서 설명한 대로 이러한 VM은 최대 700개의 VM에 속합니다. 인프라 서비스의 확장성과 복원력을 향상하는 동안 인프라 서비스 구성 요소의 메모리 사용률이 변경됩니다. 자세한 내용은 Azure Stack Hub capacity Planner를 참조하세요.
- 복원력 예약: Azure Stack Hub는 단일 호스트 실패 시 및 패치 및 업데이트 중에 테넌트 가용성을 허용하도록 메모리의 일부를 예약하여 VM의 성공적인 실시간 마이그레이션을 허용합니다.
- 테넌트 VM: Azure Stack Hub 사용자가 만든 테넌트 VM입니다. VM을 실행하는 것 외에도 패브릭에 착륙한 모든 VM에서 메모리를 사용합니다. 즉, "만들기" 또는 "실패" 상태의 VM 또는 게스트 내에서 종료된 VM은 메모리를 사용합니다. 그러나 포털/powershell/cli에서 할당 취소 중지 옵션을 사용하여 할당 취소된 VM은 Azure Stack Hub의 메모리를 사용하지 않습니다.
- RP(값 추가 리소스 공급자): SQL, MySQL, App Service 등과 같은 부가 가치 RP에 대해 배포된 VM
포털의 메모리 사용량을 이해하는 가장 좋은 방법은 Azure Stack Hub Capacity Planner를 사용하여 다양한 워크로드의 영향을 확인하는 것입니다. 다음 계산은 Planner가 사용하는 것과 동일합니다.
이 계산을 수행하면 테넌트 VM 배치에 사용할 수 있는 총 사용 가능한 메모리가 생성됩니다. 이 메모리 용량은 Azure Stack Hub 스탬프 전체에 해당합니다.
VM 배치에 사용 가능한 메모리 = 총 호스트 메모리 - 복원력 예약 - 테넌트 VM 실행에서 사용되는 메모리 - Azure Stack Hub 인프라 오버헤드 1
- 총 호스트 메모리 = 모든 노드의 메모리 합계
- 복원력 예약 = H + R * ((N-1) * H) + V * (N-2)
- 테넌트 VM에서 사용되는 메모리 = 테넌트 워크로드에서 사용하는 실제 메모리는 HA 구성에 의존하지 않습니다.
- Azure Stack Hub 인프라 오버헤드 = 268GB + (4GB x N)
위치:
- H = 단일 서버 메모리 크기
- N = 배율 단위 크기(서버 수)
- R = OS 오버헤드에 대한 운영 체제 예약(이 수식2의 .15)입니다.
- V = 배율 단위에서 가장 큰 HA VM
1 Azure Stack Hub 인프라 오버헤드 = 268GB + (노드의 4GB x #). 약 31개의 VM이 Azure Stack Hub의 인프라를 호스트하는 데 사용되며 총 268GB + (노드 4GB x) 및 146개의 가상 코어를 사용합니다. 이 수의 VM에 대한 근거는 보안, 확장성, 서비스 및 패치 요구 사항을 충족하기 위해 필요한 서비스 분리를 충족하는 것입니다. 이 내부 서비스 구조를 사용하면 향후 새로운 인프라 서비스가 개발될 때 도입이 가능합니다.
2 오버헤드에 대한 운영 체제 예약 = 노드 메모리의 15%(.15). 운영 체제 예약 값은 추정치이며 서버의 실제 메모리 용량 및 일반 운영 체제 오버헤드에 따라 달라집니다.
배율 단위에서 가장 큰 HA VM인 값 V는 가장 큰 테넌트 VM 메모리 크기를 기반으로 동적으로 설정됩니다. 예를 들어 가장 큰 HA VM 값은 최소 12GB(인프라 VM 고려) 또는 112GB 또는 Azure Stack Hub 솔루션에서 지원되는 다른 VM 메모리 크기입니다. Azure Stack Hub 패브릭에서 가장 큰 HA VM을 변경하면 복원력 예약이 증가하고 VM 자체의 메모리도 증가합니다. GPU VM은 HA가 아닌 모드에서 실행됩니다.
샘플 계산
각 노드에 768GB RAM이 있는 작은 4노드 Azure Stack Hub 배포가 있습니다. 128GB RAM(Standard_E16_v3)이 있는 SQL Server용 가상 머신을 배치할 계획입니다. VM 배치에 사용할 수 있는 메모리는 무엇인가요?
- 총 호스트 메모리 = 모든 노드의 메모리 합계 = 4 * 768GB = 3072GB
- 복원력 예약 = H + R * ((N-1) * H) + V * (N-2) = 768 + 0.15 * ((4 - 1) * 768) + 128 * (4 - 2) = 1370GB
- 테넌트 VM에서 사용하는 메모리 = 테넌트 워크로드에서 사용되는 실제 메모리이며 HA 구성 = 0GB에 의존하지 않습니다.
- Azure Stack Hub 인프라 오버헤드 = 268GB + (4GB x N) = 268 + (4 * 4) = 284GB
VM 배치에 사용 가능한 메모리 = 총 호스트 메모리 - 복원력 예약 - 테넌트 VM 실행에서 사용되는 메모리 - Azure Stack Hub 인프라 오버헤드
VM 배치에 사용 가능한 메모리 = 3072 - 1370 - 0 - 284 = 1418GB
할당 취소에 대한 고려 사항
VM이 할당 취소된 상태이면 메모리 리소스가 사용되지 않습니다. 이렇게 하면 다른 VM을 시스템에 배치할 수 있습니다.
할당 취소된 VM이 다시 시작되면 메모리 사용량 또는 할당이 시스템에 배치된 새 VM처럼 처리되고 사용 가능한 메모리가 사용됩니다. 사용 가능한 메모리가 없으면 VM이 시작되지 않습니다.
현재 배포된 대형 VM은 할당된 메모리가 112GB이지만 이러한 VM의 메모리 수요는 약 2~3GB임을 보여 줍니다.
이름 | 메모리 할당됨(GB) | 메모리 수요(GB) | 컴퓨터 이름 |
---|---|---|---|
ca7ec2ea-40fd-4d41-9d9b-b11e7838d508 | 112 | 2.2392578125 | LISSA01P-NODE01 |
10cd7b0f-68f4-40ee-9d98-b9637438ebf4 | 112 | 2.2392578125 | LISSA01P-NODE01 |
2e403868-ff81-4abb-b087-d9625ca01d84 | 112 | 2.2392578125 | LISSA01P-NODE04 |
수식 복원력 예약 = H + R * ((N-1) * H) + V * (N-2) 수식을 사용하여 VM 배치에 대한 메모리 할당을 취소하는 세 가지 방법이 있습니다.
- 가장 큰 VM의 크기 줄이기
- 노드의 메모리 늘리기
- 노드 추가
가장 큰 VM의 크기 줄이기
가장 큰 VM의 크기를 스탬프의 다음으로 작은 VM(24GB)으로 줄이면 복원력 예약의 크기가 줄어듭니다.
복원력 예약 = 384 + 172.8 + 48 = 604.8GB
총 메모리 | 인프라 GB | 테넌트 GB | 복원력 예약 | 예약된 총 메모리 | 배치에 사용할 수 있는 총 GB |
---|---|---|---|---|---|
1536 GB | 258GB | 329.25GB | 604.8GB | 258 + 329.25 + 604.8 = 1168GB | ~344GB |
노드 추가
Azure Stack Hub 노드를 추가 하면 두 노드 간에 메모리를 동일하게 분산하여 메모리 할당이 취소됩니다.
복원력 예약 = 384 + (0.15) ((5)*384) + 112 * (3) = 1008GB
총 메모리 | 인프라 GB | 테넌트 GB | 복원력 예약 | 예약된 총 메모리 | 배치에 사용할 수 있는 총 GB |
---|---|---|---|---|---|
1536 GB | 258GB | 329.25GB | 604.8GB | 258 + 329.25 + 604.8 = 1168GB | ~ 344GB |
각 노드의 메모리를 512GB로 늘입니다.
각 노드의 메모리를 늘리 면 사용 가능한 총 메모리가 증가합니다.
복원력 예약 = 512 + 230.4 + 224 = 966.4GB
총 메모리 | 인프라 GB | 테넌트 GB | 복원력 예약 | 예약된 총 메모리 | 배치에 사용할 수 있는 총 GB |
---|---|---|---|---|---|
2048년(4*512) GB | 258GB | 505.75GB | 966.4GB | 1730.15GB | ~ 318GB |
질문과 대답
Q: 테넌트가 새 VM을 배포했습니다. 관리자 포털의 기능 차트에서 남은 용량을 표시하는 데 얼마나 걸리나요?
A: 용량 블레이드는 15분마다 새로 고쳐지므로 이를 고려합니다.
Q: 사용 가능한 코어 및 할당된 코어를 보려면 어떻게 해야 하나요?
A: PowerShell 에서 다음과 같은 출력을 생성하는 를 실행 test-azurestack -include AzsVmPlacement -debug
합니다.
Starting Test-AzureStack
Launching AzsVmPlacement
Azure Stack Scale Unit VM Placement Summary Results
Cluster Node VM Count VMs Running Physical Core Total Virtual Co Physical Memory Total Virtual Mem
------------ -------- ----------- ------------- ---------------- --------------- -----------------
LNV2-Node02 20 20 28 66 256 119.5
LNV2-Node03 17 16 28 62 256 110
LNV2-Node01 11 11 28 47 256 111
LNV2-Node04 10 10 28 49 256 101
PASS : Azure Stack Scale Unit VM Placement Summary
Q: Azure Stack Hub에 배포된 VM 수는 변경되지 않았지만 용량이 변동하고 있습니다. 그 이유는
A: VM 배치에 사용할 수 있는 메모리에는 여러 종속성이 있으며, 그 중 하나는 호스트 OS 예약입니다. 이 값은 상수 값이 아닌 호스트에서 실행되는 다른 Hyper-V 프로세스에서 사용하는 메모리에 따라 달라집니다.
Q: 테넌트 VM이 메모리를 사용하려면 어떤 상태에 있어야 합니까?
A: VM을 실행하는 것 외에도 패브릭에 착륙한 모든 VM에서 메모리를 사용합니다. 즉, "만들기" 또는 "실패" 상태에 있는 VM은 메모리를 사용합니다. 포털/powershell/cli에서 할당 취소를 중지하는 것이 아니라 게스트 내에서 VM을 종료하면 메모리도 사용됩니다.
Q: 4개의 호스트 Azure Stack Hub가 있습니다. 테넌트마다 56GB RAM(D5_v2)을 사용하는 3개의 VM이 있습니다. VM 중 하나는 112GB RAM(D14_v2)으로 크기가 조정되었으며, dashboard 사용 가능한 메모리 보고로 인해 용량 블레이드에서 168GB 사용량이 급증했습니다. 이후에 다른 두 D5_v2 VM을 D14_v2 크기 조정하면 각각 56GB의 RAM만 증가했습니다. 왜 그럴까요?
A: 사용 가능한 메모리는 Azure Stack Hub에서 유지 관리하는 복원력 예약의 함수입니다. 복원력 예약은 Azure Stack Hub 스탬프에서 가장 큰 VM 크기의 함수입니다. 처음에는 스탬프에서 가장 큰 VM은 56GB 메모리였습니다. VM의 크기를 조정했을 때 스탬프에서 가장 큰 VM은 112GB 메모리가 되어 해당 테넌트 VM에서 사용하는 메모리를 늘릴 뿐만 아니라 복원력 예약도 증가했습니다. 이 변경으로 인해 56GB(56GB에서 112GB 테넌트 VM 메모리 증가) + 112GB 복원력 예약 메모리 증가가 발생했습니다. 후속 VM의 크기가 조정되었을 때 가장 큰 VM 크기는 112GB VM으로 유지되었으므로 결과 복원력 예약이 증가하지 않았습니다. 메모리 사용량 증가는 테넌트 VM 메모리 증가(56GB)에 불과했습니다.
참고
공용 VIP의 크기만 구성할 수 있으므로 네트워킹에 대한 용량 계획 요구 사항은 최소화됩니다. Azure Stack Hub에 공용 IP 주소를 추가하는 방법에 대한 자세한 내용은 공용 IP 주소 추가를 참조하세요.
다음 단계
Azure Stack Hub 스토리지에 대해 알아보기