النسخ الاحتياطي لجهاز ظاهري باستخدام Azure CLI

ينشئ Azure Backup نقاط الاسترداد المخزنة في خزائن التخزين الجغرافي المتكرر. عند الاستعادة من نقطة الاسترداد، يمكنك استعادة VM بالكامل أو الملفات الفردية. تشرح هذه المقالة كيفية استعادة جهاز ظاهري كامل باستخدام CLI. في هذا البرنامج التعليمي، ستتعرف على كيفية القيام بما يلي:

  • قائمة وتحديد نقاط الاسترداد
  • استعادة القرص من نقطة الاسترداد
  • قم بإنشاء VM من القرص المستعاد

للحصول على معلومات حول استخدام PowerShell لاستعادة قرص وإنشاء VM مسترد، راجع النسخ الاحتياطي واستعادة Azure VMs باستخدام PowerShell.

يمكنك الآن أيضاً استخدام CLI لاستعادة محتوى النسخ الاحتياطي مباشرةً إلى جهاز ظاهري (أصلي/جديد)، دون تنفيذ الخطوات المذكورة أعلاه بشكل منفصل. لمزيد من المعلومات، اطلع على استعادة البيانات إلى الجهاز الظاهري باستخدام CLI.

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

  • يتطلب هذا البرنامج التعليمي الإصدار 2.0.18 أو أحدث من Azure CLI. إذا كنت تستخدم Azure Cloud Shell، يتم تثبيت أحدث إصدار بالفعل.

  • يتطلب هذا البرنامج التعليمي Linux VM المحمي بواسطة Azure Backup. لمحاكاة عملية الحذف والاسترداد VM العرضي، يمكنك إنشاء جهاز ظاهري من قرص في نقطة الاسترداد. إذا كنت بحاجة إلى Linux VM محمي بواسطة Azure Backup، فراجع نسخ جهاز ظاهري احتياطياً في Azure باستخدام CLI.

نظرة عامة على النسخ الاحتياطي

عندما يبدأ Azure نسخة احتياطية، يأخذ ملحق النسخ الاحتياطي على الجهاز الظاهري لقطة في الوقت المناسب. يتم تثبيت امتداد النسخ الاحتياطي على الجهاز الظاهري عند طلب النسخ الاحتياطي الأول. يمكن أن يأخذ Azure Backup أيضاً لقطة من وحدة التخزين الأساسية إذا لم يكن الجهاز الظاهري قيد التشغيل عند إجراء النسخ الاحتياطي.

بشكل افتراضي، يأخذ Azure Backup نسخة احتياطية متسقة لنظام الملفات. بمجرد أن يأخذ Azure Backup اللقطة، يتم نقل البيانات إلى مخزن خدمات الاسترداد. لزيادة الكفاءة إلى أقصى حد، يحدد Azure Backup كتل البيانات التي تغيرت منذ النسخ الاحتياطي السابق وينقلها فقط.

عند اكتمال نقل البيانات، تتم إزالة اللقطة وإنشاء نقطة استرداد.

ضع قائمة بنقاط الاسترداد المتاحة

لاستعادة قرص، يمكنك تحديد نقطة استرداد كمصدر لبيانات الاسترداد. نظراً لأن السياسة الافتراضية تنشئ نقطة استرداد كل يوم وتحتفظ بها لمدة 30 يوماً، يمكنك الاحتفاظ بمجموعة من نقاط الاسترداد التي تتيح لك تحديد نقطة معينة في الوقت المناسب للتعافي.

للاطلاع على قائمة نقاط الاسترداد المتاحة، استخدم قائمة نقاط الاسترداد الاحتياطية من az. يتم استخدام اسم نقطة الاسترداد لاستعادة الأقراص. في هذا البرنامج التعليمي، نريد أحدث نقطة استرداد متاحة. تحدد المعلمة --query [0].name اسم أحدث نقطة استرداد على النحو التالي:

az backup recoverypoint list \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --backup-management-type AzureIaasVM \
    --container-name myVM \
    --item-name myVM \
    --query [0].name \
    --output tsv

قم باستعادة قرص VM

هام

يوصى بشدة باستخدام الإصدار 2.0.74 من Az CLI أو إصدار أحدث للحصول على جميع مزايا الاستعادة السريعة بما في ذلك استعادة القرص المُدارة. من الأفضل استخدام أحدث إصدار دائماً.

استعادة القرص المدارة

إذا كان الجهاز الظاهري الذي تم نسخه احتياطياً يدير الأقراص وإذا كان الهدف هو استعادة الأقراص المُدارة من نقطة الاسترداد، فأنت تقوم أولاً بتوفير حساب تخزين Azure. يتم استخدام حساب التخزين هذا لتخزين تكوين الجهاز الظاهري وقالب النشر الذي يمكن استخدامه لاحقاً لنشر الجهاز الظاهري من الأقراص المستعادة. بعد ذلك، تقوم أيضاً بتوفير مجموعة موارد مستهدفة للأقراص المُدارة التي سيتم استعادتها إليها.

  1. لإنشاء حساب تخزين، استخدم إنشاء حساب تخزين من az. يجب أن يكون اسم حساب التخزين كله صغيراً وأن يكون فريداً بشكل عام. استبدل mystorageaccount باسمك الفريد:

    az storage account create \
        --resource-group myResourceGroup \
        --name mystorageaccount \
        --sku Standard_LRS
    
  2. قم باستعادة القرص من نقطة الاسترداد باستخدام أقراص استعادة النسخ الاحتياطي من az. استبدل mystorageaccount باسم حساب التخزين الذي أنشأته في الأمر السابق. استبدل myRecoveryPointName باسم نقطة الاسترداد التي حصلت عليها في الإخراج من الأمر السابق az backup recoveryypoint list. قدم أيضاً مجموعة الموارد المستهدفة التي تمت استعادة الأقراص المُدارة إليها.

    az backup restore restore-disks \
        --resource-group myResourceGroup \
        --vault-name myRecoveryServicesVault \
        --container-name myVM \
        --item-name myVM \
        --storage-account mystorageaccount \
        --rp-name myRecoveryPointName \
        --target-resource-group targetRG
    

    تحذير

    إذا لم يتم توفير target-resources-group، فستتم استعادة الأقراص المُدارة كأقراص غير مُدارة إلى حساب التخزين المحدد. سيكون لهذا عواقب وخيمة على وقت الاستعادة لأن الوقت المستغرق لاستعادة الأقراص يعتمد كلياً على حساب التخزين المحدد. ستحصل على فائدة الاستعادة الفورية فقط عندما يتم إعطاء معلمة مجموعة الموارد المستهدفة. إذا كان الهدف هو استعادة الأقراص المدارة كغير مدارة، فلا توفر المعلمة target-resource-group وبدلا من ذلك قم بتوفير معلمة restore-as-unmanaged-disk كما هو موضح أدناه. تتوفر هذه المعلمة من Azure CLI 3.4.0 وما بعده.

    az backup restore restore-disks \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --container-name myVM \
    --item-name myVM \
    --storage-account mystorageaccount \
    --rp-name myRecoveryPointName \
    --restore-as-unmanaged-disk
    

سيؤدي هذا إلى استعادة الأقراص المُدارة كأقراص غير مُدارة إلى حساب التخزين المحدد ولن يستفيد من وظيفة الاستعادة "الفورية". في الإصدارات المستقبلية من CLI، سيكون إلزامياً توفير معلمة target-resources-group أو معلمة rest-as-unmanaged-disk.

استعادة الأقراص إلى المنطقة الثانوية

تُنسخ بيانات النسخ الاحتياطي إلى المنطقة الثانوية عندما تُمكِّن الاستعادة عبر المنطقة على المخزن حيث قمت بحماية الأجهزة الظاهرية الخاصة بك. يمكنك استخدام بيانات النسخ الاحتياطي لتنفيذ عملية استعادة.

لاستعادة الأقراص إلى المنطقة الثانوية، استخدم العلامة --use-secondary-region في الأمر az backup restore restore-disks. تأكد من تحديد حساب التخزين الهدف الموجود في المنطقة الثانوية.

az backup restore restore-disks \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --container-name myVM \
    --item-name myVM \
    --storage-account targetStorageAccountID \
    --rp-name myRecoveryPointName \
    --target-resource-group targetRG
    --use-secondary-region

استعادة عبر المناطق

يمكنك استعادة أجهزة ظاهرية مثبتة في منطقة Azure في أي مناطق توفر من نفس المنطقة.

لاستعادة جهاز ظاهري إلى منطقة أخرى، حدد المعلمة TargetZoneNumber في الأمر az backup restore restore-disks.

az backup restore restore-disks \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --container-name myVM \
    --item-name myVM \
    --storage-account targetStorageAccountID \
    --rp-name myRecoveryPointName \
    --target-resource-group targetRG
    --target-zone 3

تُدعم الاستعادة عبر المناطق فقط في السيناريوهات حيث:

  • جهاز المصدر الظاهري هو منطقة مثبتة وغير مشفرة.
  • نقطة الاسترداد موجودة في طبقة المخزن فقط. النسخ المطابقة فقط أو النسخ المطابقة وطبقة المخزن غير مدعومة.
  • خيار الاسترداد هو إنشاء جهاز ظاهري جديد أو استعادة الأقراص. يستبدل خيار استبدال الأقراص بيانات المصدر؛ لذلك، خيار منطقة التوفر غير قابل للتطبيق.
  • إنشاء جهاز ظاهري/أو أقراص في نفس المنطقة عندما يكون تكرار مساحة التخزين في المخزن هو ZRS. لاحظ أنه لا يعمل إذا كان التكرار في التخزين في المخزن هو GRS، على الرغم من أن الجهاز الظاهري المصدر هو منطقة مثبتة.
  • إنشاء جهاز ظاهري/أقراص في المنطقة المقترنة عند تمكين التكرار في تخزين المخزن لـ Cross-Region Restore وإذا كانت المنطقة المقترنة تدعم المناطق.

استعادة الأقراص غير المُدارة

إذا كان الجهاز الظاهري الذي تم نسخه احتياطياً يحتوي على أقراص غير مُدارة وإذا كان الهدف هو استعادة الأقراص من نقطة الاسترداد، فأنت تقدم أولاً حساب تخزين Azure. يتم استخدام حساب التخزين هذا لتخزين تكوين الجهاز الظاهري وقالب النشر الذي يمكن استخدامه لاحقاً لنشر الجهاز الظاهري من الأقراص المستعادة. بشكل افتراضي، ستتم استعادة الأقراص غير المُدارة إلى حسابات التخزين الأصلية الخاصة بها. إذا كنت ترغب في استعادة جميع الأقراص غير المُدارة إلى مكان واحد، فيمكن أيضاً استخدام حساب التخزين المحدد كموقع انطلاق لتلك الأقراص أيضاً.

في خطوات إضافية، يتم استخدام القرص المستعاد لإنشاء جهاز ظاهري.

  1. لإنشاء حساب تخزين، استخدم إنشاء حساب تخزين من az. يجب أن يكون اسم حساب التخزين كله صغيراً وأن يكون فريداً بشكل عام. استبدل mystorageaccount باسمك الفريد:

    az storage account create \
        --resource-group myResourceGroup \
        --name mystorageaccount \
        --sku Standard_LRS
    
  2. قم باستعادة القرص من نقطة الاسترداد باستخدام أقراص استعادة النسخ الاحتياطي من az. استبدل mystorageaccount باسم حساب التخزين الذي أنشأته في الأمر السابق. استبدل myRecoveryPointName باسم نقطة الاسترداد التي حصلت عليها في الإخراج من الأمر السابق az backup recoveryypoint list:

    az backup restore restore-disks \
        --resource-group myResourceGroup \
        --vault-name myRecoveryServicesVault \
        --container-name myVM \
        --item-name myVM \
        --storage-account mystorageaccount \
        --rp-name myRecoveryPointName
    

كما هو مذكور أعلاه، ستتم استعادة الأقراص غير المُدارة إلى حساب التخزين الأصلي الخاص بها. يوفر هذا أفضل أداء للاستعادة. ولكن إذا كانت هناك حاجة لاستعادة جميع الأقراص غير المُدارة إلى حساب تخزين معين، فاستخدم العلامة ذات الصلة كما هو موضح أدناه.

    az backup restore restore-disks \
        --resource-group myResourceGroup \
        --vault-name myRecoveryServicesVault \
        --container-name myVM \
        --item-name myVM \
        --storage-account mystorageaccount \
        --rp-name myRecoveryPointName \
        --restore-to-staging-storage-account
    ```

## Monitor the restore job

To monitor the status of restore job, use [az backup job list](/cli/azure/backup/job#az-backup-job-list):

```azurecli-interactive
az backup job list \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --output table

الإخراج مشابه للمثال التالي، الذي يوضح أن مهمة الاستعادة هي InProgress:

Name      Operation        Status      Item Name    Start Time UTC       Duration
--------  ---------------  ----------  -----------  -------------------  --------------
7f2ad916  Restore          InProgress  myvm         2017-09-19T19:39:52  0:00:34.520850
a0a8e5e6  Backup           Completed   myvm         2017-09-19T03:09:21  0:15:26.155212
fe5d0414  ConfigureBackup  Completed   myvm         2017-09-19T03:03:57  0:00:31.191807

عند حالة تقارير مهمة الاستعادة مكتملة، تتم استعادة المعلومات الضرورية (تكوين الجهاز الظاهري ونموذج النشر) إلى حساب التخزين.

استخدام الهوية المدارة لاستعادة الأقراص

يسمح لك النسخ الاحتياطي من Azure أيضاً باستخدام الهوية المدارة (MSI) أثناء عملية الاستعادة للوصول إلى حسابات التخزين حيث يتم استعادة الأقراص. هذا الخيار مدعوم حالياً فقط لاستعادة الأقراص المُدارة.

إذا كنت ترغب في استخدام الهوية المُدارة التي عيّنها نظام المخزن لاستعادة الأقراص، فمرر علامة إضافية -mi-system-assigned إلى الأمر az backup restore restore-disks. إذا كنت ترغب في استخدام هوية مُدارة يعينها المستخدم، فمرر معلمة --mi-user-assigned مع معرف Azure Resource Manager للهوية المُدارة للمخزن كقيمة للمعلمة. راجع هذه المقالة لمعرفة كيفية تمكين الهوية المُدارة للمخازن.

قم بإنشاء VM من القرص المستعاد

الخطوة الأخيرة هي إنشاء VM من الأقراص المستعادة. يمكنك استخدام قالب النشر الذي تم تنزيله إلى حساب التخزين المحدد لإنشاء الجهاز الظاهري.

إحضار تفاصيل الوظيفة

تعطي تفاصيل الوظيفة الناتجة URI للقالب الذي يمكن الاستعلام عنه ونشره. استخدم الأمر job show للحصول على مزيد من التفاصيل عن الوظيفة المستعادة التي تم تشغيلها.

az backup job show \
    -v myRecoveryServicesVault \
    -g myResourceGroup \
    -n 1fc2d55d-f0dc-4ca6-ad48-aca0fe5d0414

سيعطي ناتج هذا الاستعلام جميع التفاصيل، لكننا مهتمون فقط بمحتويات حساب التخزين. يمكننا استخدام إمكانية الاستعلام في Azure CLI لجلب التفاصيل ذات الصلة

az backup job show \
    -v myRecoveryServicesVault \
    -g myResourceGroup \
    -n 1fc2d55d-f0dc-4ca6-ad48-aca0fe5d0414 \
    --query properties.extendedInfo.propertyBag

{
  "Config Blob Container Name": "myVM-daa1931199fd4a22ae601f46d8812276",
  "Config Blob Name": "config-myVM-1fc2d55d-f0dc-4ca6-ad48-aca0fe5d0414.json",
  "Config Blob Uri": "https://mystorageaccount.blob.core.windows.net/myVM-daa1931199fd4a22ae601f46d8812276/config-appvm8-1fc2d55d-f0dc-4ca6-ad48-aca0519c0232.json",
  "Job Type": "Recover disks",
  "Recovery point time ": "12/25/2019 10:07:11 PM",
  "Target Storage Account Name": "mystorageaccount",
  "Target resource group": "mystorageaccountRG",
  "Template Blob Uri": "https://mystorageaccount.blob.core.windows.net/myVM-daa1931199fd4a22ae601f46d8812276/azuredeploy1fc2d55d-f0dc-4ca6-ad48-aca0519c0232.json"
}

إحضار قالب النشر

لا يمكن الوصول إلى النموذج مباشرةً لأنه موجود ضمن حساب تخزين العميل والحاوية المحددة. نحتاج إلى عنوان URL الكامل (جنباً إلى جنب مع رمز SAS المميز المؤقت) للوصول إلى هذا القالب.

أولاً، استخرج blob Uri للقالب من تفاصيل الوظيفة

az backup job show \
    -v myRecoveryServicesVault \
    -g myResourceGroup \
    -n 1fc2d55d-f0dc-4ca6-ad48-aca0fe5d0414 \
    --query properties.extendedInfo.propertyBag."""Template Blob Uri"""

"https://mystorageaccount.blob.core.windows.net/myVM-daa1931199fd4a22ae601f46d8812276/azuredeploy1fc2d55d-f0dc-4ca6-ad48-aca0519c0232.json"

سيكون قالب blob Uri بهذا التنسيق ويستخرج اسم القالب

https://<storageAccountName.blob.core.windows.net>/<containerName>/<templateName>

لذلك، سيكون اسم النموذج من المثال أعلاه هو azuredeploy1fc2d55d-f0dc-4ca6-ad48-aca0519c0232.jsonواسم الحاوية هوmyVM-daa1931199fd4a22ae601f46d8812276

احصل الآن على رمز SAS المميز لهذه الحاوية والنموذج كما هو مفصل هنا

expiretime=$(date -u -d '30 minutes' +%Y-%m-%dT%H:%MZ)
connection=$(az storage account show-connection-string \
    --resource-group mystorageaccountRG \
    --name mystorageaccount \
    --query connectionString)
token=$(az storage blob generate-sas \
    --container-name myVM-daa1931199fd4a22ae601f46d8812276 \
    --name azuredeploy1fc2d55d-f0dc-4ca6-ad48-aca0519c0232.json \
    --expiry $expiretime \
    --permissions r \
    --output tsv \
    --connection-string $connection)
url=$(az storage blob url \
   --container-name myVM-daa1931199fd4a22ae601f46d8812276 \
    --name azuredeploy1fc2d55d-f0dc-4ca6-ad48-aca0519c0232.json \
    --output tsv \
    --connection-string $connection)

انشر القالب لإنشاء VM

قم الآن بنشر القالب لإنشاء الجهاز الظاهري كما هو موضح هنا.

az deployment group create \
  --resource-group ExampleGroup \
  --template-uri $url?$token

لتأكيد إنشاء الجهاز الظاهري الخاص بك من القرص المسترد، قم بإدراج أجهزة VM في مجموعة الموارد الخاصة بك مع قائمة az vm على النحو التالي:

az vm list --resource-group myResourceGroup --output table

استعادة البيانات إلى الجهاز الظاهري باستخدام CLI

يمكنك الآن استعادة البيانات مباشرة إلى الجهاز الظاهري الأصلي/البديل دون تنفيذ خطوات متعددة.

استعادة البيانات إلى الجهاز الظاهري الأصلي

az backup restore restore-disks \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --container-name myVM \
    --item-name myVM \
    --restore-mode OriginalLocation 
    --storage-account mystorageaccount \
    --rp-name myRecoveryPointName \ 
Name      Operation        Status      Item Name    Start Time UTC       Duration
--------  ---------------  ----------  -----------  -------------------  --------------
7f2ad916  Restore          InProgress  myVM         2017-09-19T19:39:52  0:00:34.520850

يعمل الأمر الأخير على تشغيل عملية استعادة الموقع الأصلي لاستعادة البيانات في مكانها في الجهاز الظاهري الموجود.

استعادة البيانات إلى جهاز ظاهري تم إنشاؤه حديثًا

az backup restore restore-disks \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --container-name myVM \
    --item-name myVM \
    --restore-mode AlternateLocation \
    --storage-account mystorageaccount \

--target-resource-group "Target_RG" \
    --rp-name myRecoveryPointName \
    --target-vm-name "TargetVirtualMachineName" \
    --target-vnet-name "Target_VNet" \
    --target-vnet-resource-group "Target_VNet_RG" \
    --target-subnet-name "targetSubNet"
Name      Operation        Status      Item Name    Start Time UTC       Duration
--------  ---------------  ----------  -----------  -------------------  --------------
7f2ad916  Restore          InProgress  myVM         2017-09-19T19:39:52  0:00:34.520850

يعمل الأمر الأخير على تشغيل عملية استعادة موقع بديل لإنشاء جهاز ظاهري جديد في مجموعة موارد Target_RG وفقاً للمدخلات المحددة بواسطة المعلمات TargetVMName وTargetVNetName وTargetVNetResourceGroup وTargetSubnetName. وهذا يضمن استعادة البيانات في الجهاز الظاهري والشبكة الظاهرية والشبكة الفرعية المطلوبة.

الخطوات التالية

في هذا البرنامج التعليمي، قمت باستعادة قرص من نقطة استرداد ثم قمت بإنشاء جهاز ظاهري من القرص. لقد تعرفت على كيفية:

  • قائمة وتحديد نقاط الاسترداد
  • استعادة القرص من نقطة الاسترداد
  • قم بإنشاء VM من القرص المستعاد

تقدم إلى البرنامج التعليمي التالي للتعرف على استعادة الملفات الفردية من نقطة الاسترداد.