Azure Stack Hub를 사용하여 iSCSI 스토리지에 연결
이 문서의 템플릿을 사용하여 Azure Stack Hub VM(가상 머신)을 온-프레미스 iSCSI 대상에 연결하여 Azure Stack Hub 외부 및 데이터 센터의 다른 곳에서 호스트되는 스토리지를 사용하도록 VM을 설정할 수 있습니다. 이 문서에서는 Windows 컴퓨터를 iSCSI 대상으로 사용하는 것을 살펴봅니다.
Azure Intelligent Edge 패턴 GitHub 리포지토리의 lucidqdreams 포크에서 템플릿을 찾을 수 있습니다. 템플릿은 storage-iSCSI 폴더에 있습니다. 템플릿은 Azure Stack Hub 쪽에서 iSCSI 대상에 연결하는 데 필요한 인프라를 설정하도록 설계되었습니다. 여기에는 함께 제공되는 VNet, NSG, PIP 및 스토리지와 함께 iSCSI 초기자 역할을 하는 가상 머신이 포함됩니다. 템플릿이 배포된 후 두 개의 PowerShell 스크립트를 실행하여 구성을 완료해야 합니다. 하나의 스크립트는 온-프레미스 VM(대상)에서 실행되고 하나는 Azure Stack Hub VM(초기자)에서 실행됩니다. 이 작업이 완료되면 Azure Stack Hub VM에 온-프레미스 스토리지가 추가됩니다.
개요
다이어그램은 Azure Stack Hub 외부의 스토리지가 iSCSI 프로토콜을 통해 Azure Stack Hub 호스팅 VM 내에 탑재될 수 있도록 온-프레미스(물리적 또는 가상)의 iSCSI 탑재 디스크를 사용하여 Azure Stack Hub에서 호스트되는 VM을 보여 줍니다.
요구 사항
- Windows Server 2016 Datacenter 또는 Windows Server 2019 Datacenter를 실행하는 온-프레미스 머신(물리적 또는 가상)입니다.
- 필수 Azure Stack Hub Marketplace 항목:
- Windows Server 2016 Datacenter 또는 Windows Server 2019 Datacenter(최신 빌드 권장).
- PowerShell DSC 확장.
- 사용자 지정 스크립트 확장.
- 기존 가상 또는 물리적 컴퓨터입니다. 이상적으로이 컴퓨터에는 두 개의 네트워크 어댑터가 있습니다. 이는 instance SAN과 같은 또 다른 iSCSI 대상이 될 수도 있습니다.
고려할 사항
- 네트워크 보안 그룹이 템플릿 서브넷에 적용됩니다. 이를 검토하고 필요에 따라 추가 허용량을 만듭니다.
- RDP 거부 규칙은 Tunnel NSG에 적용되며 공용 IP 주소를 통해 VM에 액세스하려는 경우 허용하도록 설정해야 합니다.
- 이 솔루션은 DNS 확인을 고려하지 않습니다.
- Chapusername 및 Chappassword를 변경해야 합니다. Chappassword의 길이는 12~16자여야 합니다.
- 이 템플릿은 iSCSI 연결이 구성에서 로컬 주소를 사용하므로 VM에 대한 고정 IP 주소를 사용합니다.
- 이 템플릿은 BYOL Windows 라이선스를 사용합니다.
- Linux 기반 시스템을 iSCSI 대상에 연결할 수도 있습니다. ubuntu 설명서의 iSCSI 초기자 문서에서 지침을 찾을 수 있습니다.
옵션
- _artifactsLocation 사용하여 고유한 Blob Storage 계정 및 SAS 토큰을 사용할 수 있으며 _artifactsLocationSasToken 매개 변수는 SAS 토큰과 함께 고유한 스토리지 Blob을 사용하는 기능을 사용할 수 있습니다.
- 이 템플릿은 VNet 명명 및 IP 주소 지정에 대한 기본값을 제공합니다.
- 이 구성에는 iSCSI 클라이언트에서 오는 하나의 iSCSI nic만 있습니다. 별도의 서브넷과 NIC를 활용하기 위해 여러 구성을 테스트했습니다. 그러나 여러 게이트웨이에 문제가 있었고 트래픽을 격리하고 실제로 중복되는 별도의 스토리지 서브넷을 만들려고 했습니다.
- 배포가 실패할 수 있으므로 이러한 값을 법적 서브넷 및 주소 범위 내에 유지해야 합니다.
- PowerShell DSC 패키지의 주요 목적은 보류 중인 다시 부팅을 위해 검사 것입니다. 필요한 경우 이 DSC를 추가로 사용자 지정할 수 있습니다. 자세한 내용은 omputerManagementDsc를 참조하세요.
리소스 그룹 템플릿(iSCSI 클라이언트)
다이어그램은 iSCSI 대상에 연결하는 데 사용할 수 있는 iSCSI 클라이언트를 만들기 위해 템플릿에서 배포된 리소스를 보여 줍니다. 이 템플릿은 VM 및 기타 리소스를 배포합니다. 또한 prepare-iSCSIClient.ps1 실행하고 VM을 다시 부팅합니다.
배포 프로세스
리소스 그룹 템플릿은 출력을 생성합니다. 이 출력은 다음 단계의 입력입니다. 주로 iSCSI 트래픽이 발생하는 서버 이름 및 Azure Stack Hub 공용 IP 주소에 중점을 줍니다. 이 예제에서는 다음과 같이 복사합니다.
- 인프라 템플릿을 배포합니다.
- 데이터 센터의 다른 곳에서 호스트되는 VM에 Azure Stack Hub VM을 배포합니다.
- 가상 머신 또는 물리적 서버일 수 있는 iSCSI 대상의 스크립트에 대한 출력 매개 변수로 템플릿의 IP 주소 및 서버 이름 출력을 사용하여 를 실행
Create-iSCSITarget.ps1
합니다. - iSCSI 대상 서버의 외부 IP 주소 또는 주소를 입력으로 사용하여 스크립트를
Connect-toiSCSITarget.ps1
실행합니다.
azuredeploy.json에 대한 입력
매개 변수 | default | description |
---|---|---|
WindowsImageSKU | 2019-Datacenter | 기본 Windows VM 이미지를 선택하세요. |
VMSize | Standard_D2_v2 | VM 크기를 입력하세요. |
VMName | FileServer | VM 이름 |
adminUsername | storageadmin | 새 VM의 관리자 이름 |
adminPassword | 새 VM의 관리자 계정에 대한 암호입니다. 기본값은 구독 ID입니다. | |
VNetName | 스토리지 | VNet의 이름입니다. 리소스에 레이블을 지정하는 데 사용됩니다. |
VNetAddressSpace | 10.10.0.0/23 | VNet의 주소 공간 |
VNetInternalSubnetName | 내부 | VNet 내부 서브넷 이름 |
VNetInternalSubnetRange | 10.10.1.0/24 | VNet 내부 서브넷의 주소 범위 |
InternalVNetIP | 10.10.1.4 | 파일 서버의 내부 IP에 대한 정적 주소입니다. |
_artifactsLocation | ||
_artifactsLocationSasToken |
배포 단계
- 를 사용하여 iSCSI 클라이언트 인프라 배포
azuredeploy.json
- 온-프레미스 서버 iSCSI 대상에서 실행
Create-iSCSITarget.ps1
합니다. 템플릿이 완료되면 첫 번째 단계의 출력을 사용하여 온-프레미스 서버 iSCSI 대상에서 Create-iSCSITarget.ps1 실행해야 합니다. - iSCSI 클라이언트에서 를 실행
Connect-toiSCSITarget.ps1
합니다. iSCSI 대상의 세부 정보를 사용하여 iSCSI 클라이언트의 Connect-toiSCSITarget.ps1 해제합니다.
기존 VM에 iSCSI 스토리지 추가
기존 Virtual Machine에서 스크립트를 실행하여 iSCSI 클라이언트에서 iSCSI 대상으로 연결할 수도 있습니다. 이 흐름은 iSCSI 대상을 직접 만드는 경우입니다. 이 다이어그램은 PowerShell 스크립트의 실행 흐름을 보여 줍니다. 이러한 스크립트는 스크립트 디렉터리에서 찾을 수 있습니다.
Prepare-iSCSIClient.ps1
스크립트는 Prepare-iSCSIClient.ps1
iSCSI 클라이언트에 필수 구성 요소를 설치합니다. 여기에는 다음이 포함됩니다.
- Multipath-IO 서비스 설치
- iSCSI 초기자 서비스 시작을 자동으로 설정
- iSCSI에 대한 다중 경로 MPIO 지원 사용
- 모든 iSCSI 볼륨의 자동 클레임 사용
- 디스크 시간 제한을 60초로 설정
이러한 필수 구성 요소를 설치한 후 시스템을 다시 부팅하는 것이 중요합니다. MPIO 부하 분산 정책을 설정하려면 다시 부팅해야 합니다.
Create-iSCSITarget.ps1
스크립트는 Create-iSCSITarget.ps1
스토리지 서버에서 실행되어야 합니다. 초기자가 제한하는 여러 디스크 및 대상을 만들 수 있습니다. 이 스크립트를 여러 번 실행하여 여러 대상에 연결할 수 있는 여러 가상 디스크를 만들 수 있습니다. 다중 디스크를 하나의 대상에 연결할 수 있습니다.
입력 | default | description |
---|---|---|
RemoteServer | FileServer | iSCSI 대상에 연결하는 서버의 이름 |
RemoteServerIPs | 1.1.1.1 | iSCSI 트래픽이 들어오는 IP 주소 |
DiskFolder | C:\iSCSIVirtualDisks | 가상 디스크를 저장할 폴더 및 드라이브 |
DiskName | DiskName | 디스크 VHDX 파일의 이름 |
DiskSize | 5gb | VHDX 디스크 크기 |
TargetName | RemoteTarget01 | iSCSI 클라이언트의 대상 구성을 정의하는 데 사용되는 대상 이름입니다. |
ChapUsername | 사용자 이름 | Chap 인증의 사용자 이름 |
ChapPassword | userP@ssw0rd! | Chap 인증의 암호 이름입니다. 12~16자여야 합니다. |
Connect-toiSCSITarget.ps1
는 Connect-toiSCSITarget.ps1
iSCSI 클라이언트에서 실행되고 iSCSI 대상에서 제공하는 디스크를 iSCSI 클라이언트에 탑재하는 최종 스크립트입니다.
입력 | default | description |
---|---|---|
TargetiSCSIAddresses | "2.2.2.2","2.2.2.3" | iSCSI 대상의 IP 주소 |
LocalIPAddresses | "10.10.1.4" | iSCSI 트래픽이 들어오는 내부 IP 주소입니다. |
LoadBalancePolicy | C:\iSCSIVirtualDisks | iSCSI 트래픽이 들어오는 IP 주소 |
ChapUsername | 사용자 이름 | Chap 인증의 사용자 이름 |
ChapPassword | userP@ssw0rd! | Chap 인증의 암호 이름입니다. 12~16자여야 합니다. |