نسخ أقراص Azure المُدارة احتياطياً باستخدام Azure CLI
توضح هذه المقالة كيفية عمل نسخ احتياطية لـ أقراص Azure المُدارة باستخدام Azure CLI.
هام
دعم النسخ الاحتياطي والاستعادة لأقراص Azure المُدارة عبر CLI يوجد في الإصدار الأولي ومتاحًا كامتداد في الإصدار 2.15.0 Az والإصدارات الأحدث. يتم تثبيت الملحق تلقائياً عندما تقوم بتشغيل أوامر az dataprotection. تعرف على المزيد حول الملاحق.
من أجل الحصول على معلومات حول توفر منطقة النسخ الاحتياطي على Azure Disk والسيناريوهات والقيود المدعومة، راجع مصفوفة الدعم .
إنشاء مخزن للنسخ الاحتياطي
يعد مخزن النسخ الاحتياطي كيان تخزين في Azure والذي يقوم بتخزين بيانات النسخ الاحتياطي لأحمال العمل المختلفة الأحدث التي يدعمها Azure Backup، مثل قاعدة بيانات Azure لخوادم PostgreSQL، والكائنات الثنائية كبيرة الحجم في حساب تخزين، وAzure Disks. تسهل مخازن Backup تنظيم بيانات النسخ الاحتياطي، مع تقليل النفقات العامة للإدارة. تستند خزائن النسخ الاحتياطي إلى نموذج Azure Resource Manager من Azure، والذي يوفر قدرات محسنة للمساعدة في تأمين بيانات النسخ الاحتياطي.
قبل إنشاء مخزن النسخ الاحتياطي، اختر تخزين البيانات الزائدة داخل المخزن. ثم تابع إنشاء مخزن النسخ الاحتياطي مع هذا التخزين الاحتياطي والموقع. في هذه المقالة، سنقوم بإنشاء مخزن النسخ الاحتياطي TestBkpVault، في المنطقة westus، تحت مجموعة الموارد testBkpVaultRG. استخدم الأمر az dataprotection vault create لإنشاء مخزن النسخ الاحتياطي. تعرف على المزيد حول إنشاء مخزن النسخ الاحتياطي.
az dataprotection backup-vault create -g testBkpVaultRG --vault-name TestBkpVault -l westus --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"
{
"eTag": null,
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault",
"identity": {
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "SystemAssigned"
},
"location": "westus",
"name": "TestBkpVault",
"properties": {
"provisioningState": "Succeeded",
"storageSettings": [
{
"datastoreType": "VaultStore",
"type": "LocallyRedundant"
}
]
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"tags": null,
"type": "Microsoft.DataProtection/backupVaults"
}
بعد إنشاء المخزن، لنقم بإنشاء نهج نسخ احتياطي لحماية أقراص Azure.
إنشاء سياسة النسخ احتياطي
لفهم المكونات الداخلية نهج النسخ احتياطي لـ Azure Disk واسترداد قالب النهج باستخدام الأمر az dataprotection backup-policy get-default-policy-template. يقوم هذا الأمر بإرجاع قالب نهج افتراضي لنوع مصدر بيانات محدد. استخدم قالب النهج هذا لإنشاء نهج جديد.
az dataprotection backup-policy get-default-policy-template --datasource-type AzureDisk
{
"datasourceTypes": [
"Microsoft.Compute/disks"
],
"name": "DiskPolicy",
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Incremental",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupHourly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-05T13:00:00+00:00/PT4H"
]
},
"taggingCriteria": [
{
"isDefault": true,
"tagInfo": {
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
}
يتكون قالب النهج من مشغل (الذي يقرر ما الذي يقوم بتشغيل النسخ الاحتياطي) ودورة حياة (التي تحدد وقت حذف/نسخ/نقل النسخ الاحتياطي). في النسخ الاحتياطي لـ Azure Disk، تكون القيم الافتراضية للمشغل هي مشغل مجدول لكل 4 ساعات (PT4H) وللاحتفاظ بكل نسخة احتياطية لمدة 7 أيام.
المشغل المجدول:
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-05T13:00:00+00:00/PT4H"
]
}
}
دورة حياة الاستبقاء الافتراضية:
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
]
يقدم النسخ الاحتياطي لقرص Azure نسخًا احتياطية متعددة يوميًا. إذا كنت تحتاج إلى مزيد من عمليات النسخ الاحتياطي بشكل متكرر، فاختر تكرار النسخ الاحتياطي كل ساعة مع إمكانية عمل نسخ احتياطية بفواصل زمنية كل 4 أو 6 أو 8 أو 12 ساعة. تتم جدولة النسخ الاحتياطية تبعًا لفاصل الزمني المحدد.
على سبيل المثال، إذا قمت بتحديد كل 4 ساعات، ثم يتم أخذ النسخة الاحتياطية في الفترة الفاصلة تقريبا من كل 4 ساعات بحيث يتم توزيع النسخة الاحتياطية بالتساوي على مدار اليوم. إذا كان النسخ الاحتياطي مرة واحدة في اليوم كافياً، اختر تكرار النسخ الاحتياطي Daily. في تكرار النسخ الاحتياطي اليومي، يمكنك تحديد الوقت من اليوم عند أخذ النسخة الاحتياطية الخاصة بك.
هام
الوقت من اليوم يشير إلى وقت بدء النسخ الاحتياطي وليس وقت اكتمال النسخ الاحتياطي.
يعتمد الوقت المطلوب لإكمال عملية النسخ الاحتياطي على عوامل مختلفة بما في ذلك حجم القرص ومعدل التمزق بين النسخ الاحتياطية المتتالية. ومع ذلك، فإن النسخ الاحتياطي لـ Azure Disk هو نسخ احتياطي دون عوامل يستخدم اللقطات المتزايدة، والتي لا تؤثر على أداء تطبيق الإنتاج.
إشعار
على الرغم من أن المخزن المحدد قد يحتوي على إعداد التكرار العام، فإن النسخ الاحتياطي لـ Azure Disk يدعم حالياً مخزن بيانات اللقطة فقط. يتم تخزين جميع النسخ الاحتياطية في مجموعة موارد في اشتراكك ولا يتم نسخها إلى تخزين مخزن النسخ الاحتياطي.
لمعرفة المزيد من التفاصيل حول إنشاء النهج، راجع مستند نهج النسخ الاحتياطي لقرص Azure.
بمجرد تنزيل القالب كملف JSON، يمكنك تحريره للجدولة والاحتفاظ به حسبما هو مطلوب. ثم قم بإنشاء نهج جديد باستخدام JSON الناتجة. إذا كنت ترغب في تحرير التكرار كل سعاة أو فترة الاستبقاء، استخدم الأمرين az dataprotection backup-policy trigger set و/أو az dataprotection backup-policy retention-rule set. بمجرد أن يكون لدى نهج JSON كافة القيم المطلوبة، انتقل إلى إنشاء نهج جديد من كائن النهج باستخدام الأمر az dataprotection backup-policy create.
az dataprotection backup-policy get-default-policy-template --datasource-type AzureDisk > policy.json
az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n mypolicy --policy policy.json
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/mypolicy",
"name": "mypolicy",
"properties": {
"datasourceTypes": [
"Microsoft.Compute/disks"
],
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Incremental",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupHourly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-05T13:00:00+00:00/PT4H"
]
},
"taggingCriteria": [
{
"criteria": null,
"isDefault": true,
"tagInfo": {
"eTag": null,
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": null
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"type": "Microsoft.DataProtection/backupVaults/backupPolicies"
}
تكوين النسخ الاحتياطي
بمجرد إنشاء المخزن والنهج، توجد ثلاث نقاط مهمة تحتاج إلى مراعاتها لحماية قاعدة بيانات Azure Disk.
الكيانات المعنية
القرص المطلوب حمايته
إحضار معرف ARM وموقع القرص المراد حمايته. هذا سيكون بمثابة معرف القرص. سنستخدم مثالاً لقرص يسمى PSTestDisk، ضمن مجموعة موارد diskrg ضمن اشتراك مختلف.
$DiskId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk"
مجموعة موارد اللقطة
يتم تخزين لقطات القرص في مجموعة موارد ضمن الاشتراك. كدليل، نوصي بإنشاء مجموعة موارد مخصصة كمخزن بيانات لقطة من أجل استخدامها بواسطة خدمة Azure Backup. وجود مجموعة موارد مُخصصة تسمح بتقييد أذونات الوصول على مجموعة الموارد، وتوفير السلامة وسهولة إدارة البيانات الاحتياطية. دوّن معرف ARM لمجموعة الموارد حيث تريد وضع لقطات القرص
$snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/snapshotrg"
مخزن النسخ الاحتياطي
تتطلب خزائن النسخ الاحتياطي أذونات على القرص ومجموعة موارد اللقطة لتتمكن من تشغيل اللقطات وإدارة دورة حياتها. يتم استخدام الهوية المُدارة للمخزن المعيّن من قِبل النظام لتعيين مثل هذه الأذونات. استخدم الأمر az dataprotection backup-vault update لتمكين هوية مدارة معينة من قبل النظام لمخزن خدمات الاسترداد.
az dataprotection backup-vault update -g testBkpVaultRG --vault-name TestBkpVault --type SystemAssigned
تعيين الأذونات
أنت تحتاج إلى تعيين بعض الأذونات عبر RBAC إلى المخزن ( يمثله Vault MSI ) والقرص ذي الصلة و / أو القرص RG. يمكن إجراء ذلك عبر بوابة Azure أو CLI. لتعيين أذونات ذات صلة، قم بمراجعة المتطلبات الأساسية لتكوين نسخة احتياطية من الأقراص المُدارة .
إعداد الطلب
بمجرد تعيين كل الأذونات ذات الصلة، يتم تنفيذ تكوين النسخ الاحتياطي في خطوتين. أولاً، نقوم بإعداد الطلب ذي الصلة باستخدام مجموعة موارد المخزن والنهج والقرص واللقطات ذات الصلة باستخدام الأمر az dataprotection backup-instance initialize. سيقوم أمر التهيئة بإرجاع ملف JSON، ومن ثم يجب عليك تحديث قيمة مجموعة موارد اللقطة. بعد ذلك، نقوم بتقديم طلب لحماية القرص باستخدام الأمر az dataprotection backup-instance create.
az dataprotection backup-instance initialize --datasource-type AzureDisk -l southeastasia --policy-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/mypolicy" --datasource-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk" > backup_instance.json
افتح ملف JSON ثم قم بتحرير معرف مجموعة موارد اللقطة في resource_group_id
أسفل القسم data_store_parameters_list
.
{
"backup_instance_name": "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"properties": {
"data_source_info": {
"datasource_type": "Microsoft.Compute/disks",
"object_type": "Datasource",
"resource_id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk",
"resource_location": "southeastasia",
"resource_name": "CLITestDisk",
"resource_type": "Microsoft.Compute/disks",
"resource_uri": ""
},
"data_source_set_info": null,
"object_type": "BackupInstance",
"policy_info": {
"policy_id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupPolicies/DiskPolicy",
"policy_parameters": {
"data_store_parameters_list": [
{
"data_store_type": "OperationalStore",
"object_type": "AzureOperationalStoreParameters",
"resource_group_id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/snapshotrg"
}
]
}
}
}
}
إشعار
يتم إنشاء اسم مثيل النسخ الاحتياطي بواسطة العملاء لكي تكون قيمة فريدة. وهذا يعتمد على اسم مصدر البيانات والمعرّف الفريد. بمجرد إدراج النسخ الاحتياطية، يجب أن تكون قادراً على فحص اسم مثيل النسخ الاحتياطي واسم مصدر البيانات ذي الصلة.
استخدم ملف JSON الذي تم تحريره لإنشاء مثيل النسخ احتياطي من قرص Azure المدار.
az dataprotection backup-instance create -g testBkpVaultRG --vault-name TestBkpVault --backup-instance backup_instance.json
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupInstances/diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"name": "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"properties": {
"currentProtectionState": "ProtectionConfigured",
"dataSourceInfo": {
"datasourceType": "Microsoft.Compute/disks",
"objectType": "Datasource",
"resourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk",
"resourceLocation": "southeastasia",
"resourceName": "CLITestDisk",
"resourceType": "Microsoft.Compute/disks",
"resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk"
},
"dataSourceSetInfo": null,
"friendlyName": "CLITestDisk",
"objectType": "BackupInstance",
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupPolicies/DiskPolicy",
"policyParameters": {
"dataStoreParametersList": [
{
"dataStoreType": "OperationalStore",
"objectType": "AzureOperationalStoreParameters",
"resourceGroupId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/sarath-rg"
}
]
},
"policyVersion": null
},
"protectionErrorDetails": null,
"protectionStatus": {
"errorDetails": null,
"status": "ProtectionConfigured"
},
"provisioningState": "Succeeded"
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"type": "Microsoft.DataProtection/backupVaults/backupInstances"
}
بمجرد إنشاء مثيل النسخ الاحتياطي، يمكنك المتابعة لتشغيل نسخة احتياطية عند الطلب إذا كنت لا تريد انتظار النهج الذي تم جدولته.
ثم قم بإجراء النسخ الاحتياطي حسب الطلب
لسرد كل مثيلات النسخ الاحتياطي داخل مخزن، استخدم الأمر az dataprotection backup-instance list، ومن ثم جلب المثيل ذات الصلة باستخدام الأمر az dataprotection backup-instance show. بدلاً من ذلك، بالنسبة للسيناريوهات على نطاق واسع، يمكنك سرد مثيلات النسخ الاحتياطي عبر الخزائن والاشتراكات باستخدام الأمر az dataprotection backup-instance list-from-resourcegraph.
az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureDisk --datasource-id /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk
[
{
"datasourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk",
"extendedLocation": null,
"id": "//subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupInstances/diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"identity": null,
"kind": "",
"location": "",
"managedBy": "",
"name": "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"plan": null,
"properties": {
"currentProtectionState": "ProtectionConfigured",
"dataSourceInfo": {
"baseUri": null,
"datasourceType": "Microsoft.Compute/disks",
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk",
"resourceLocation": "westus",
"resourceName": "CLITestDisk",
"resourceType": "Microsoft.Compute/disks",
"resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk"
},
"dataSourceProperties": null,
"dataSourceSetInfo": null,
"datasourceAuthCredentials": null,
"friendlyName": "CLITestDisk",
"objectType": "BackupInstance",
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupPolicies/DiskPolicy",
"policyParameters": {
"dataStoreParametersList": [
{
"dataStoreType": "OperationalStore",
"objectType": "AzureOperationalStoreParameters",
"resourceGroupId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/snapshotrg"
}
]
},
"policyVersion": null
},
"protectionErrorDetails": null,
"protectionStatus": {
"errorDetails": null,
"status": "ProtectionConfigured"
},
"provisioningState": "Succeeded"
},
"protectionState": "ProtectionConfigured",
"resourceGroup": "testBkpVaultRG",
"sku": null,
"subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tags": null,
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "microsoft.dataprotection/backupvaults/backupinstances",
"vaultName": "TestBkpVault",
"zones": null
}
]
يمكنك تحديد قاعدة واسم العلامة أثناء تشغيل النسخ الاحتياطي. لعرض القواعد في النهج، ابحث من خلال نهج JSON. في المثال التالي، يتم عرض القاعدة التي تحمل الاسم "BackupDaily"
واسم العلامة "default"
، وسنستخدم هذه القاعدة للنسخ الاحتياطي عند الطلب.
"name": "BackupDaily",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2022-09-27T23:30:00+00:00/P1D"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"criteria": null,
"isDefault": true,
"tagInfo": {
"eTag": null,
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
قم بتشغيل نسخة احتياطية عند الطلب باستخدام الأمر az dataprotection backup-instance adhoc-backup.
az dataprotection backup-instance adhoc-backup --name "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166" --rule-name "BackupDaily" --resource-group "000pikumar" --vault-name "PratikPrivatePreviewVault1" --retention-tag-override "default"
تتبع الوظائف
تعقب كل المهام باستخدام الأمر az dataprotection job list. يمكنك سرد جميع الوظائف وجلب تفاصيل مهمة معينة.
يمكنك أيضاً استخدام Az.ResourceGraph لتعقب جميع المهام عبر جميع مخازن النسخ الاحتياطي. استخدم الأمر az dataprotection job list-from-resourcegraph للحصول على المهمة ذات الصلة والتي يمكن أن تكون في أي خزينة من خزائن النسخ الاحتياطي.
az dataprotection job list-from-resourcegraph --datasource-type AzureDisk --status Completed