Write Accelerator 사용
적용 대상: ✔️ Linux VM ✔️ Windows VM ✔️ 유연한 확장 집합 ✔️ 균일한 확장 집합
Write Accelerator는 프리미엄 SSD 관리 디스크의 M 시리즈 VM(Virtual Machines)에 대한 디스크 기능입니다. 이름에서 설명한 대로 이 기능의 목적은 프리미엄 SSD 디스크에 대한 쓰기의 I/O 대기 시간을 개선하는 것입니다. Write Accelerator는 최신 데이터베이스를 위해 성능이 매우 뛰어난 방식으로 디스크에서 로그 파일 업데이트를 유지해야 하는 경우에 이상적입니다.
Write Accelerator는 일반적으로 퍼블릭 클라우드의 M 시리즈 VM에서 사용할 수 있습니다.
필수 조건
- 프리미엄 SSD 관리 디스크에서 만 지원됩니다.
- M 시리즈 VM에서만 지원
Write Accelerator 사용 계획
Write Accelerator는 DBMS의 트랜잭션 로그 또는 다시 실행 로그가 포함된 볼륨에 사용해야 합니다. 기능이 로그 디스크에 대해 사용하도록 최적화되므로 DBMS의 데이터 볼륨에 Write Accelerator를 사용하면 안 됩니다.
Important
VM의 운영 체제 디스크에 대해 Write Accelerator를 사용하도록 설정하면 VM이 다시 부팅됩니다.
Windows 디스크 또는 볼륨 관리자, Windows 저장소 공간, SOFS(Windows 스케일 아웃 파일 서버), Linux LVM 또는 MDADM을 사용하여 볼륨 빌드의 일부가 아닌 기존 Azure 디스크에 쓰기 가속기를 사용하도록 설정하려면 Azure 디스크에 액세스하는 워크로드를 종료해야 합니다. Azure 디스크를 사용하는 데이터베이스 애플리케이션을 종료해야 합니다.
여러 Azure Premium SSD 디스크에서 빌드되고 Windows 디스크 또는 볼륨 관리자, Windows 저장소 공간, SOFS(Windows 스케일 아웃 파일 서버), Linux LVM 또는 MDADM을 사용하여 스트라이프된 기존 볼륨에 대해 Write Accelerator를 사용하거나 사용하지 않도록 설정하려면 볼륨을 빌드하는 모든 디스크를 별도의 단계에서 쓰기 가속기를 사용하거나 사용하지 않도록 설정해야 합니다. 이러한 구성에서 Write Accelerator를 사용하거나 사용하지 않도록 설정하기 전에 VM을 종료합니다.
SAP 관련 VM 구성에는 OS 디스크에 대해 Write Accelerator를 사용하도록 설정할 필요가 없습니다.
Write Accelerator 사용 시 제한 사항
Azure 디스크/VHD에 Write Accelerator를 사용하는 경우 적용되는 제한 사항은 다음과 같습니다.
- 프리미엄 디스크 캐싱을 '없음' 또는 '읽기 전용'으로 설정해야 합니다. 다른 모든 캐싱 모드는 지원되지 않습니다.
- 스냅샷은 현재 OS 디스크가 아닌 쓰기 가속기 사용 데이터 디스크에 대해서만 지원됩니다. 백업 중에 Azure Backup 서비스는 VM에 연결된 쓰기 가속기 지원 디스크를 자동으로 백업하고 보호합니다.
- 더 작은 I/O 크기(<=64KiB)에서만 가속화된 경로를 사용합니다. 데이터가 대량으로 로드되거나 여러 DBMS의 트랜잭션 로그 버퍼가 스토리지에 유지되기 전에 더 많이 채워지는 워크로드 상황에서 디스크에 기록된 I/O는 가속화된 경로를 사용하지 않을 수 있습니다.
Write Accelerator에서 지원될 수 있는 VM당 Azure Premium SSD 디스크의 제한이 있습니다. 이 제한은 현재 다음과 같습니다.
VM SKU | Write Accelerator 디스크 수 | VM당 Write Accelerator 디스크 IOPS |
---|---|---|
M416ms_v2, M416s_8_v2, M416s_v2 | 16 | 20000 |
M208ms_v2, M208s_v2 | 8 | 10000 |
M192ids_v2, M192idms_v2, M192is_v2, M192ims_v2, | 16 | 20000 |
M128ms, M128s, M128ds_v2, M128dms_v2, M128s_v2, M128ms_v2 | 16 | 20000 |
M64ms, M64ls, M64s, M64ds_v2, M64dms_v2, M64s_v2, M64ms_v2 | 8 | 10000 |
M32ms, M32ls, M32ts, M32s, M32dms_v2, M32ms_v2 | 4 | 5,000 |
M16ms, M16s | 2 | 2500 |
M8ms, M8s | 1 | 1250 |
Standard_M12s_v3, Standard_M12ds_v3 | 1 | 5000 |
Standard_M24s_v3, Standard_M24ds_v3 | 2 | 5000 |
Standard_M48s_1_v3, Standard_M48ds_1_v3 | 4 | 5,000 |
Standard_M96s_1_v3, Standard_M96ds_1_v3, Standard_M96s_2_v3, Standard_M96ds_2_v3 | 8 | 10000 |
Standard_M176s_3_v3, Standard_M176ds_3_v3, Standard_M176s_4_v3, Standard_M176ds_4_v3 | 16 | 20000 |
IOPS 제한은 VM당 및 디스크가 아닌 VM을 기준으로 합니다. 모든 Write Accelerator 디스크는 동일한 VM당 IOPS 제한을 공유합니다. 연결된 디스크는 VM에 대한 쓰기 가속기 IOPS 제한을 초과할 수 없습니다. 예를 들어 연결된 디스크가 30,000 IOPS를 수행할 수 있더라도 시스템에서는 디스크가 M416ms_v2 20,000 IOPS를 초과하도록 허용하지 않습니다.
특정 디스크에 대한 Write Accelerator 사용
다음 몇 섹션에서는 Azure Premium SSD VHD에서 Write Accelerator를 사용하도록 설정하는 방법을 설명합니다.
Azure PowerShell을 사용하여 Azure Write Accelerator를 사용하도록 설정
버전 5.5.0의 Azure PowerShell 모듈에는 특정 Azure Premium SSD 디스크에 대해 Write Accelerator를 사용하거나 사용하지 않도록 설정하기 위한 관련 cmdlet의 변경 내용이 포함됩니다. 쓰기 가속기에서 지원하는 디스크를 사용하도록 설정하거나 배포하려면, 다음 PowerShell 명령을 변경하고 쓰기 가속기에 대한 매개 변수를 허용하도록 확장합니다.
새 스위치 매개 변수인 WriteAccelerator가 추가된 cmdlet은 다음과 같습니다.
참고 항목
유연한 오케스트레이션 모드를 사용하여 Virtual Machine Scale Sets에서 쓰기 가속기를 사용하도록 설정하는 경우 각 개별 인스턴스에서 이를 사용하도록 설정해야 합니다.
매개 변수를 제공하지 않을 경우 해당 속성을 false로 설정하고 Write Accelerator에서 지원하지 않는 디스크를 배포합니다.
새 스위치 매개 변수인 OsDiskWriteAccelerator가 추가된 cmdlet은 다음과 같습니다.
매개 변수를 지정하지 않으면 기본적으로 속성이 false로 설정되고 Write Accelerator를 사용하지 않는 디스크가 반환됩니다.
새 선택적 부울(nullable이 아님) 매개 변수인 -OsDiskWriteAccelerator가 추가된 cmdlet은 다음과 같습니다.
$true
디스크를 사용하여 Azure Write Accelerator 지원을 제어하거나 $false
지정합니다.
명령 예제는 다음과 같습니다.
New-AzVMConfig | Set-AzVMOsDisk | Add-AzVMDataDisk -Name "datadisk1" | Add-AzVMDataDisk -Name "logdisk1" -WriteAccelerator | New-AzVM
Get-AzVM | Update-AzVM -OsDiskWriteAccelerator $true
New-AzVmssConfig | Set-AzVmssStorageProfile -OsDiskWriteAccelerator | Add-AzVmssDataDisk -Name "datadisk1" -WriteAccelerator:$false | Add-AzVmssDataDisk -Name "logdisk1" -WriteAccelerator | New-AzVmss
Get-AzVmss | Update-AzVmss -OsDiskWriteAccelerator:$false
다음 섹션과 같이 두 가지 주요 시나리오를 스크립팅할 수 있습니다.
PowerShell을 사용하여 Write Accelerator에서 지원하는 새 디스크 추가
다음 스크립트를 사용하여 VM에 새 디스크를 추가할 수 있습니다. 이 스크립트로 만든 디스크는 Write Accelerator를 사용합니다.
myVM
, myWAVMs
, log001
, 디스크 크기 및 디스크 LunID를 특정 배포에 적절한 값으로 바꿉니다.
# Specify your VM Name
$vmName="myVM"
#Specify your Resource Group
$rgName = "myWAVMs"
#data disk name
$datadiskname = "log001"
#LUN Id
$lunid=8
#size
$size=1023
#Pulls the VM info for later
$vm=Get-AzVM -ResourceGroupName $rgname -Name $vmname
#add a new VM data disk
Add-AzVMDataDisk -CreateOption empty -DiskSizeInGB $size -Name $vmname-$datadiskname -VM $vm -Caching None -WriteAccelerator:$true -lun $lunid
#Updates the VM with the disk config - does not require a reboot
Update-AzVM -ResourceGroupName $rgname -VM $vm
PowerShell을 사용하여 기존 Azure 디스크에서 Write Accelerator를 사용하도록 설정
이 스크립트를 사용하여 기존 디스크에서 Write Accelerator를 사용하도록 설정할 수 있습니다. myVM
, myWAVMs
및 test-log001
을 특정 배포에 적절한 값으로 바꿉니다. 스크립트에서는 $newstatus 값이 ‘$true’로 설정된 기존 디스크에 Write Accelerator를 추가합니다. '$false' 값을 사용하면 지정된 디스크에서 Write Accelerator를 사용하지 않도록 설정됩니다.
#Specify your VM Name
$vmName="myVM"
#Specify your Resource Group
$rgName = "myWAVMs"
#data disk name
$datadiskname = "test-log001"
#new Write Accelerator status ($true for enabled, $false for disabled)
$newstatus = $true
#Pulls the VM info for later
$vm=Get-AzVM -ResourceGroupName $rgname -Name $vmname
#add a new VM data disk
Set-AzVMDataDisk -VM $vm -Name $datadiskname -Caching None -WriteAccelerator:$newstatus
#Updates the VM with the disk config - does not require a reboot
Update-AzVM -ResourceGroupName $rgname -VM $vm
참고 항목
위의 스크립트가 실행되면 지정된 디스크를 분리하고, 디스크에 대해 Write Accelerator를 사용하도록 설정한 다음, 해당 디스크를 다시 연결합니다
Azure Portal을 사용하여 Azure Write Accelerator를 사용하도록 설정
디스크 캐싱 설정을 지정하는 포털을 통해 Write Accelerator를 사용하도록 설정할 수 있습니다.
Azure CLI를 사용하여 쓰기 가속기를 사용하도록 설정
Azure CLI를 사용하여 Write Accelerator를 사용하도록 설정할 수 있습니다.
기존 디스크에서 Write Accelerator를 사용하도록 설정하려면 az vm update를 사용하고, 다음 예제를 사용하여 < VMName
ResourceGroup
a0diskName
/>를 바꾸고 고유한 값으로 바꿀 수 있습니다.az vm update -g group1 -n vm1 -write-accelerator 1=true
쓰기 가속기가 설정된 디스크를 연결하려면 az vm disk attach를 사용합니다. 사용자 고유의 항목으로 바꾸는 경우 다음 예제를 사용할 수 있습니다. az vm disk attach -g group1 -vm-name vm1 -disk d1 --enable-write-accelerator
Write Accelerator를 사용하지 않도록 설정하려면 az vm update를 사용하고 속성을 false로 설정합니다. az vm update -g group1 -n vm1 -write-accelerator 0=false 1=false
REST API를 사용하여 쓰기 가속기를 사용하도록 설정
Azure Rest API를 통해 배포하려면 Azure armclient를 설치해야 합니다.
armclient 설치
armclient를 실행하려면 Chocolatey를 통해 설치해야 합니다. cmd.exe 또는 PowerShell을 통해 설치할 수 있습니다. 이러한 명령에는 대해 관리자 권한을 사용합니다("관리자 권한으로 실행").
cmd.exe를 사용하여 다음 명령을 실행합니다. @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
PowerShell을 사용하여 Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
명령을 실행합니다.
이제 cmd.exe 또는 PowerShell에서 다음 명령을 사용하여 armclient를 설치할 수 있습니다. choco install armclient
현재 VM 구성 가져오기
디스크 구성의 특성을 변경하려면 먼저 JSON 파일에서 현재 구성을 가져와야 합니다. 다음 명령을 실행하여 현재 구성을 가져올 수 있습니다. armclient GET /subscriptions/<<subscription-ID<</resourceGroups/<<ResourceGroup>>/providers/Microsoft.Compute/virtualMachines/<<virtualmachinename>>?api-version=2017-12-01 > <<filename.json>>
‘<<>>’ 내의 용어를 사용자의 데이터(JSON 파일에 있어야 하는 파일 이름 포함)로 바꿉니다.
출력은 다음과 같습니다.
{
"properties": {
"vmId": "2444c93e-f8bb-4a20-af2d-1658d9dbbbcb",
"hardwareProfile": {
"vmSize": "Standard_M64s"
},
"storageProfile": {
"imageReference": {
"publisher": "SUSE",
"offer": "SLES-SAP",
"sku": "12-SP3",
"version": "latest"
},
"osDisk": {
"osType": "Linux",
"name": "mylittlesap_OsDisk_1_754a1b8bb390468e9b4c429b81cc5f5a",
"createOption": "FromImage",
"caching": "ReadWrite",
"managedDisk": {
"storageAccountType": "Premium_LRS",
"id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/disks/mylittlesap_OsDisk_1_754a1b8bb390468e9b4c429b81cc5f5a"
},
"diskSizeGB": 30
},
"dataDisks": [
{
"lun": 0,
"name": "data1",
"createOption": "Attach",
"caching": "None",
"managedDisk": {
"storageAccountType": "Premium_LRS",
"id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/disks/data1"
},
"diskSizeGB": 1023
},
{
"lun": 1,
"name": "log1",
"createOption": "Attach",
"caching": "None",
"managedDisk": {
"storageAccountType": "Premium_LRS",
"id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/disks/data2"
},
"diskSizeGB": 1023
}
]
},
"osProfile": {
"computerName": "mylittlesapVM",
"adminUsername": "pl",
"linuxConfiguration": {
"disablePasswordAuthentication": false
},
"secrets": []
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Network/networkInterfaces/mylittlesap518"
}
]
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": "https://mylittlesapdiag895.blob.core.windows.net/"
}
},
"provisioningState": "Succeeded"
},
"type": "Microsoft.Compute/virtualMachines",
"location": "westeurope",
"id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/virtualMachines/mylittlesapVM",
"name": "mylittlesapVM"
그런 다음, JSON 파일을 업데이트하고 ‘log1’이라는 디스크에서 Write Accelerator를 사용하도록 설정합니다. 이는 디스크의 캐시 항목 뒤에 있는 JSON 파일에 이 특성을 추가하여 수행할 수 있습니다.
{
"lun": 1,
"name": "log1",
"createOption": "Attach",
"caching": "None",
"writeAcceleratorEnabled": true,
"managedDisk": {
"storageAccountType": "Premium_LRS",
"id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/disks/data2"
},
"diskSizeGB": 1023
}
그런 다음, 다음 명령으로 기존 배포를 업데이트합니다. armclient PUT /subscriptions/<<subscription-ID<</resourceGroups/<<ResourceGroup>>/providers/Microsoft.Compute/virtualMachines/<<virtualmachinename>>?api-version=2017-12-01 @<<filename.json>>
출력은 다음과 같습니다. 한 디스크에서 Write Accelerator를 사용하도록 설정되어 있음을 확인할 수 있습니다.
{
"properties": {
"vmId": "2444c93e-f8bb-4a20-af2d-1658d9dbbbcb",
"hardwareProfile": {
"vmSize": "Standard_M64s"
},
"storageProfile": {
"imageReference": {
"publisher": "SUSE",
"offer": "SLES-SAP",
"sku": "12-SP3",
"version": "latest"
},
"osDisk": {
"osType": "Linux",
"name": "mylittlesap_OsDisk_1_754a1b8bb390468e9b4c429b81cc5f5a",
"createOption": "FromImage",
"caching": "ReadWrite",
"managedDisk": {
"storageAccountType": "Premium_LRS",
"id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/disks/mylittlesap_OsDisk_1_754a1b8bb390468e9b4c429b81cc5f5a"
},
"diskSizeGB": 30
},
"dataDisks": [
{
"lun": 0,
"name": "data1",
"createOption": "Attach",
"caching": "None",
"managedDisk": {
"storageAccountType": "Premium_LRS",
"id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/disks/data1"
},
"diskSizeGB": 1023
},
{
"lun": 1,
"name": "log1",
"createOption": "Attach",
"caching": "None",
"writeAcceleratorEnabled": true,
"managedDisk": {
"storageAccountType": "Premium_LRS",
"id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/disks/data2"
},
"diskSizeGB": 1023
}
]
},
"osProfile": {
"computerName": "mylittlesapVM",
"adminUsername": "pl",
"linuxConfiguration": {
"disablePasswordAuthentication": false
},
"secrets": []
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Network/networkInterfaces/mylittlesap518"
}
]
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": "https://mylittlesapdiag895.blob.core.windows.net/"
}
},
"provisioningState": "Succeeded"
},
"type": "Microsoft.Compute/virtualMachines",
"location": "westeurope",
"id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/mylittlesap/providers/Microsoft.Compute/virtualMachines/mylittlesapVM",
"name": "mylittlesapVM"
이 변경을 적용한 후 해당 드라이브가 Write Accelerator에서 지원됩니다.