تمكين Write Accelerator

ينطبق على: ✔️ أجهزة ظاهرية بنظام التشغيل Linux ✔️ أجهزة ظاهرية بنظام التشغيل Windows ✔️ مجموعات التوسعة المرنة ✔️ مجموعات التوسعة الموحدة

إن Write Accelerator عبارة عن إمكانية قرص للأجهزة الظاهرية من الفئة M (VMs) على التخزين Premium باستخدام أقراص Azure المدارة بشكل حصري. كما يذكر الاسم، الغرض من الوظيفة هو تحسين زمن وصول الإدخال/إخراج من الكتابة مقابل تخزين Premium Azure. "مسرع الكتابة" ملائم بشكل مثالي عند طلب تحديثات ملف السجل الاستمرار مع القرص بطريقة عالية الأداء من أجل قواعد البيانات الحديثة.

يتوفر Write Accelerator بشكل عام للأجهزة الظاهرية من الفئة M في السحابة العامة.

التخطيط لاستخدام Write Accelerator

يجب استخدام Write Accelerator لوحدات التخزين التي تحتوي على سجل المعاملات أو سجلات الإعادة لنظام DBMS. لا ينصح باستخدام Write Accelerator لوحدات تخزين البيانات DBMS حيث تم تحسين الميزة لاستخدامها مع أقراص السجل.

يعمل Azure Write Accelerator فقط بالاقتران مع أقراص Azure المدارة.

هام

يؤدي تمكين Write Accelerator لقرص نظام التشغيل الخاص بالجهاز الظاهري إلى إعادة تشغيل الجهاز الظاهري.

لتمكين Write Accelerator إلى قرص Azure موجود ليس جزءًا من إنشاء وحدة تخزين من أقراص متعددة مع Windows أو مديري الأقراص أو وحدات التخزين، مساحات التخزين على Windows أو خادم ملف توسعة Windows (SOFS) أو أجهزة Linux الظاهرية، أو MDADM، يجب إيقاف تشغيل حمل العمل الذي يصل إلى قرص Azure. يجب إيقاف تشغيل تطبيقات قواعد البيانات التي تستخدم قرص Azure.

إذا كنت ترغب في تمكين Write Accelerator أو تعطيله لوحدة تخزين موجودة تم إنشاؤها من عدة أقراص تخزين Azure Premium ومخططة باستخدام Windows من مديري الأقراص أو وحدات التخزين، أو مساحات التخزين على Windows، أو خادم ملف توسعة Windows (SOFS)، أو أجهزة Linux الظاهرية، أو MDADM، فيجب تمكين جميع الأقراص التي تقوم بإنشاء وحدة التخزين أو تعطيلها لـ Write Accelerator في خطوات منفصلة. قبل تمكين Write Accelerator أو تعطيله في مثل هذا التكوين، قم بإيقاف تشغيل Azure VM.

يجب ألا يكون تمكين Write Accelerator for لأقراص نظام التشغيل ضرورياً لتكوينات الأجهزة الظاهرية المتعلقة بـ SAP.

القيود عند استخدام Write Accelerator

عند استخدام Write Accelerator لقرص Azure/القرص الصلب الظاهري تنطبق هذه القيود التالية:

  • يجب تعيين التخزين المؤقت لقرص Premium إلى 'لا' أو 'للقراءة فقط'. جميع أوضاع التخزين المؤقت الأخرى غير معتمدة.
  • يتم دعم اللقطات حالياً لأقراص البيانات التي تدعم Write Accelerator فقط، وليس قرص نظام التشغيل. أثناء النسخ الاحتياطي، تستبعد Azure Backup service تلقائياً الأقراص الممكّنة لـ Write Accelerator المرفقة بالجهاز الظاهري.
  • فقط أحجام الإدخال/الإخراج الأصغر (<=64 كيلو بايت) تأخذ المسار السريع. في حالات حمل العمل حيث يتم الحصول على البيانات تحميل مجمع أو حيث يتم تعبئة مخازن سجل المعاملة DBMS مختلفة إلى درجة أكبر قبل الحصول على استمرار إلى التخزين، وهناك احتمالات أن الإدخال/إخراج مكتوبة على القرص لا يأخذ المسار المتسارع.

هناك حدود لـ Azure Premium Storage VHDs لكل جهاز ظاهري يمكن دعمه بواسطة Write Accelerator. الحدود الحالية هي:

VM SKU عدد أقراص Write Accelerator Write Accelerator Disk 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 5000
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 5000
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 لكل جهاز ظاهري وليس لكل قرص. تشترك جميع أقراص Write Accelerator في نفس حد IOPS لكل جهاز ظاهري. لا يمكن أن تتجاوز الأقراص المرفقة حد إدخالWrite Accelerator IOPS لجهاز ظاهري. على سبيل المثال، على الرغم من أن الأقراص المرفقة يمكنها إجراء 30000 IOPS، إلا أن النظام لا يسمح للأقراص بتجاوز 20000 IOPS M416ms_v2.

تمكين Write Accelerator على قرص معين

تصف الأقسام القليلة التالية كيفية تمكين Write Accelerator على محركات أقراص التخزين Premium Azure الصلبة الظاهرية.

المتطلبات الأساسية

تنطبق المتطلبات الأساسية التالية على استخدام Write Accelerator في هذه المرحلة الزمنية:

  • يجب أن تكون الأقراص التي تريد تطبيق Azure Write Accelerator عليها أقراصاً مدارة من Azure على Premium Storage.
  • يجب أن تستخدم جهازاً ظاهرياً من الفئة M

تمكين Azure Write Accelerator باستخدام Azure PowerShell

تتضمن الوحدة النمطية Azure PowerShell من الإصدار 5.5.0 التغييرات على أوامر cmdlets ذات الصلة لتمكين أو تعطيل Write Accelerator لأقراص Azure Premium Storage المحددة. لتمكين الأقراص المدعومة من Write Accelerator أو نشرها، تم تغيير أوامر PowerShell التالية وتوسيعها لقبول معلمة ل Write Accelerator.

تمت إضافة معلمة تبديل جديدة، -WriteAccelerator إلى cmdlets التالية:

إشعار

إذا كان تمكين Write Accelerator على مجموعات مقياس الجهاز الظاهري باستخدام وضع التنسيق المرن، فأنت بحاجة إلى تمكينه على كل مثيل فردي.

يؤدي عدم إعطاء المعلمة إلى تعيين الخاصية إلى false وسيقوم بنشر الأقراص التي ليس لها دعم بواسطة Write Accelerator.

تمت إضافة معلمة تبديل جديدة، -OsDiskWriteAccelerator إلى cmdlets التالية:

يؤدي عدم تحديد المعلمة إلى تعيين الخاصية إلى false بشكل افتراضي، مما يؤدي إلى إرجاع الأقراص التي لا تستفيد من Write Accelerator.

تمت إضافة معلمة منطقية اختيارية جديدة (غير قابلة للإبطال)، -OsDiskWriteAccelerator إلى cmdlets التالية:

حدد إما $true أو $false للتحكم في دعم Azure Write Accelerator باستخدام الأقراص.

تبدو أمثلة الأوامر كما يلي:

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

يمكن كتابة سيناريوهين رئيسيين كما هو موضح في الأقسام التالية.

إضافة قرص جديد يدعمه Write Accelerator باستخدام PowerShell

يمكنك استخدام هذا البرنامج النصي لإضافة قرص جديد إلى الجهاز الظاهري. يستخدم القرص الذي تم إنشاؤه باستخدام هذا البرنامج النصي Write Accelerator.

استبدل myVM، myWAVMs، وحجم القرص، و log001LunID للقرص بقيم مناسبة للنشر المحدد.

# 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

تمكين Write Accelerator على قرص Azure موجود باستخدام PowerShell

يمكنك استخدام هذا البرنامج النصي لتمكين Write Accelerator على قرص موجود. استبدل myVM، وmyWAVMs، وtest-log001 بقيم مناسبة للنشر المحدد. يضيف البرنامج النصي Write Accelerator إلى قرص موجود حيث يتم تعيين قيمة $newstatus إلى $true. سيؤدي استخدام القيمة "$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 مقابل القرص، ثم إرفاق القرص مرة أخرى

تمكين Write Accelerator باستخدام مدخل Azure

يمكنك تمكين Write Accelerator عبر البوابة الإلكترونية حيث يمكنك تحديد إعدادات التخزين المؤقت للقرص:

Write Accelerator على مدخل Microsoft Azure

تمكين Write Accelerator باستخدام Azure CLI

يمكنك استخدام Azure CLI لتمكين Write Accelerator.

لتمكين Write Accelerator على قرص موجود، استخدم تحديث az vm، يمكنك استخدام الأمثلة التالية إذا قمت باستبدال diskName وVMName و ResourceGroup بالقيم الخاصة بك: az vm update -g group1 -n vm1 -write-accelerator 1=true

لإرفاق قرص مع تمكين Write Accelerator استخدم إرفاق قرص az vm، يمكنك استخدام المثال التالي إذا قمت بالاستعاضة عن القيم الخاصة بك: 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

تمكين Write Accelerator باستخدام واجهات برمجة تطبيقات REST

للنشر من خلال 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'))

الآن يمكنك تثبيت armclient باستخدام الأمر التالي إما في cmd.exe أو PowerShell 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 وتمكين Write Accelerator على القرص المسمى "log1". يمكن تحقيق ذلك عن طريق إضافة هذه السمة إلى ملف 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.