PowerShell을 사용하여 Windows VM에 데이터 디스크 연결

적용 대상: ✔️ Windows VM ✔️ 유연한 확장 집합

이 문서에서는 PowerShell을 사용하여 새 디스크와 기존 디스크를 Windows 가상 머신에 연결하는 방법을 보여 줍니다.

먼저 다음 팁을 검토합니다.

  • 가상 머신의 크기로 연결할 수 있는 디스크 개수가 제어됩니다. 자세한 내용은 가상 머신의 크기를 참조하세요.
  • 프리미엄 SSD를 사용하려면 DS 시리즈 또는 GS 시리즈 가상 머신과 같은 Premium Storage 지원 VM 유형이 필요합니다.

이 문서는 최신 버전으로 꾸준히 업데이트되는 Azure Cloud Shell 내의 PowerShell을 사용합니다. Cloud Shell을 열려면 코드 블록 상단에서 사용해 보세요를 선택합니다.

짧아진 대기 시간

일부 지역에서는 디스크 연결 대기 시간이 감소하여 최대 15%까지 향상됨을 알 수 있습니다. 이는 계획되거나 계획되지 않은 장애 조치(failover)가 VM 간에 있거나, 워크로드 크기를 조정하거나, Azure Kubernetes Service와 같은 대규모 상태 저장 워크로드를 실행하는 경우에 유용합니다. 그러나 이 성능 향상은 명시적 디스크 연결 명령인 Add-AzVMDataDisk로 제한됩니다. Update-AzVM와 같이 암시적으로 연결을 수행할 수 있는 명령을 호출하면 성능이 향상되지 않습니다. 이 성능 향상을 확인하기 위해 명시적 연결 명령을 호출하는 것 외에는 아무 작업도 수행할 필요가 없습니다.

짧은 대기 시간은 현재 다음 지역을 제외한 모든 퍼블릭 지역에서 사용할 수 있습니다.

  • 캐나다 중부
  • 미국 중부
  • 미국 동부
  • 미국 동부 2
  • 미국 중남부
  • 미국 서부 2
  • 독일 북부
  • Jio 인도 서부
  • 북유럽
  • 서유럽

가상 머신에 빈 데이터 디스크 추가

이 예에서는 기존 가상 머신에 빈 데이터 디스크를 추가하는 방법을 보여줍니다.

관리 디스크 사용

$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

가용성 영역에서 Managed Disks 사용

가용성 영역에서 디스크를 만들려면 -Zone 매개 변수와 함께 New-AzDiskConfig를 사용합니다. 다음 예제에서는 영역 1에서 디스크를 만듭니다.

$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을 사용하여 디스크를 초기화할 수 있습니다. 또한 사용자 지정 스크립트 확장을 사용할 수 있습니다.

    $location = "location-name"
    $scriptName = "script-name"
    $fileName = "script-file-name"
    Set-AzVMCustomScriptExtension -ResourceGroupName $rgName -Location $locName -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에 연결할 수 있습니다.

$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 템플릿의 관리 디스크 사용 또는 빠른 시작 템플릿을 참조하세요.