적용 대상: ✔️ Windows VM ✔️ 유연한 확장 집합
이 문서에서는 PowerShell을 사용하여 새 디스크와 기존 디스크를 Windows 가상 머신에 연결하는 방법을 보여 줍니다.
먼저 다음 팁을 검토합니다.
- 가상 머신의 크기로 연결할 수 있는 디스크 개수가 제어됩니다. 자세한 내용은 가상 머신의 크기를 참조하세요.
- 프리미엄 SSD를 사용하려면 DS 시리즈 또는 GS 시리즈 가상 머신과 같은 Premium Storage 지원 VM 유형이 필요합니다.
이 문서는 최신 버전으로 꾸준히 업데이트되는 Azure Cloud Shell 내의 PowerShell을 사용합니다. Cloud Shell을 열려면 코드 블록 상단에서 사용해 보세요를 선택합니다.
데이터 디스크 연결 대기 시간 줄이기
선택한 지역에서 디스크 연결 대기 시간이 감소하므로 최대 15개의%향상됩니다. 이러한 개선은 VM 간에 계획되거나 계획되지 않은 장애 조치(failover)가 있거나 워크로드 크기를 조정하거나 Azure Kubernetes Service와 같은 대규모 상태 저장 워크로드를 실행하는 경우에 유용합니다. 그러나 이 개선 사항은 명시적 디스크 연결 명령인 Add-AzVMDataDisk로 제한됩니다. Update-AzVM과 같이 암시적으로 연결을 수행할 수 있는 명령을 호출하는 경우 성능이 향상되지 않습니다. 이 성능 향상을 확인하기 위해 명시적 연결 명령을 호출하는 것 외에는 아무 작업도 수행할 필요가 없습니다.
짧은 대기 시간은 현재 다음 지역을 제외한 모든 퍼블릭 지역에서 사용할 수 있습니다.
- 캐나다 중부
- 미국 중부
- 미국 동부
- 미국 동부 2
- 미국 중남부
- 미국 서부 2
- 독일 북부
- 인도 서부
- 북유럽
- 서유럽
가상 머신에 빈 데이터 디스크 추가
이 예에서는 기존 가상 머신에 빈 데이터 디스크를 추가하는 방법을 보여줍니다.
관리 디스크 만들기 및 연결
리소스 그룹, VM, 위치, 스토리지 유형 및 데이터 디스크 이름에 대한 값을 설정합니다.
New-AzDiskConfig cmdlet은 빈 128GiB 관리 디스크에 대한 구성을 만들고 New-AzDisk는 디스크를 만듭니다. 그런 다음 Get-AzVM은 VM 구성을 가져오고Update-AzVM, Add-AzVMDataDisk 디스크를 추가하고, 업데이트된 구성을 VM에 적용합니다.
$rgName = 'myResourceGroup'
$vmName = 'myVM'
$location = 'East US'
$storageType = 'Premium_LRS'
$dataDiskName = $vmName + '_datadisk1'
$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $location -CreateOption Empty -DiskSizeGB 128
$dataDisk1 = New-AzDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName
$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
$vm = Add-AzVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1
Update-AzVM -VM $vm -ResourceGroupName $rgName
가용성 영역에서 관리 디스크 만들기 및 연결
리소스 그룹, VM, 위치, 스토리지 유형 및 데이터 디스크 이름에 대한 값을 설정합니다. 가용성 영역에서 관리 디스크를 만들려면 매개 변수와 -Zone 함께 사용합니다New-AzDiskConfig. 다음 예제에서는 영역 1에서 빈 128GiB 관리 디스크를 만들고, VM 구성에 추가하고, 업데이트된 구성을 VM에 적용합니다.
$rgName = 'myResourceGroup'
$vmName = 'myVM'
$location = 'East US 2'
$storageType = 'Premium_LRS'
$dataDiskName = $vmName + '_datadisk1'
$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $location -CreateOption Empty -DiskSizeGB 128 -Zone 1
$dataDisk1 = New-AzDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName
$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
$vm = Add-AzVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1
Update-AzVM -VM $vm -ResourceGroupName $rgName
디스크 초기화
빈 디스크를 추가한 후 초기화해야 합니다. 디스크를 초기화하려면 VM에 로그인하고 디스크 관리를 사용합니다. VM을 만들 때 WinRM 및 인증서를 사용하도록 설정하는 경우 원격 PowerShell을 사용하여 디스크를 초기화할 수 있습니다.
Set-AzVMCustomScriptExtension cmdlet을 사용하여 VM에 사용자 지정 스크립트 확장을 추가할 수도 있습니다. 다음 예제에서는 VM 위치, 확장 이름, 초기화 스크립트 파일, 스토리지 계정 이름, 스토리지 계정 키 및 컨테이너 이름에 대한 값과 함께 첨부 파일 프로시저의 리소스 그룹 및 VM 이름을 사용합니다. 명령을 실행하기 전에 지정된 Azure Storage 컨테이너에 스크립트를 저장합니다.
$location = "location-name"
$scriptName = "script-name"
$fileName = "script-file-name"
Set-AzVMCustomScriptExtension -ResourceGroupName $rgName -Location $location -VMName $vmName -Name $scriptName -TypeHandlerVersion "1.4" -StorageAccountName "mystore1" -StorageAccountKey "primary-key" -FileName $fileName -ContainerName "scripts"
스크립트 파일에는 다음과 같이 디스크를 초기화하는 코드가 포함될 수 있습니다.
참고
예제 스크립트는 MBR 파티션 스타일을 사용합니다. 디스크가 2TiB 이상인 경우 GPT 분할을 사용해야 합니다. 2TiB 미만인 경우 MBR 또는 GPT를 사용할 수 있습니다.
$disks = Get-Disk | Where partitionstyle -eq 'raw' | sort number
$letters = 70..89 | ForEach-Object { [char]$_ }
$count = 0
$labels = "data1","data2"
foreach ($disk in $disks) {
$driveLetter = $letters[$count].ToString()
$disk |
Initialize-Disk -PartitionStyle MBR -PassThru |
New-Partition -UseMaximumSize -DriveLetter $driveLetter |
Format-Volume -FileSystem NTFS -NewFileSystemLabel $labels[$count] -Confirm:$false -Force
$count++
}
VM에 기존 데이터 디스크 추가
리소스 그룹, VM 및 기존 관리 디스크 이름에 대한 값을 설정합니다.
Get-AzDisk를 사용하여 관리 디스크를 가져와 Get-AzVM 서 VM 구성을 가져옵니다. 그런 다음, 기존 디스크를 VM 구성 Update-AzVM 에 추가하고 업데이트된 구성을 VM에 적용하는 데 사용합니다Add-AzVMDataDisk.
$rgName = "myResourceGroup"
$vmName = "myVM"
$dataDiskName = "myDisk"
$disk = Get-AzDisk -ResourceGroupName $rgName -DiskName $dataDiskName
$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
$vm = Add-AzVMDataDisk -CreateOption Attach -Lun 0 -VM $vm -ManagedDiskId $disk.Id
Update-AzVM -VM $vm -ResourceGroupName $rgName
다음 단계
템플릿을 사용하여 관리 디스크를 배포할 수도 있습니다. 자세한 내용은 Azure Resource Manager 템플릿에서 관리 디스크 사용 또는 여러 데이터 디스크 배포를 위한 빠른 시작 템플릿 을 참조하세요.