الموثوقية في الأجهزة الظاهرية

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

للحصول على نظرة عامة معمارية على الموثوقية في Azure، راجع موثوقية Azure.

توصيات الموثوقية

يحتوي هذا القسم على توصيات لتحقيق المرونة والتوافر. وتنقسم كل توصية إلى إحدى فئتين:

  • تغطي عناصر الحماية مناطق مثل عناصر التكوين والوظيفة المناسبة للمكونات الرئيسية التي تشكل حمل عمل Azure، مثل إعدادات تكوين موارد Azure والتبعيات على الخدمات الأخرى وما إلى ذلك.

  • تغطي عناصر المخاطر مناطق مثل متطلبات التوفر والاسترداد والاختبار والمراقبة والنشر والعناصر الأخرى التي تزيد من فرص حدوث مشاكل في البيئة إذا تركت دون حل.

مصفوفة أولوية توصيات الموثوقية

توضع علامة على كل توصية وفقا لمصفوفة الأولوية التالية:

Image الأولوية ‏‏الوصف
عالي الإصلاح الفوري مطلوب.
متوسط إصلاح في غضون 3-6 أشهر.
منخفض تحتاج إلى مراجعة.

ملخص توصيات الموثوقية

Category الأولوية التوصية
قابلية الوصول العالية تشغيل أحمال عمل الإنتاج على جهازين ظاهريين أو أكثر باستخدام Azure Virtual Machine Scale Sets Flex
توزيع الأجهزة الظاهرية عبر مناطق التوفر أو استخدام مجموعات مقياس الجهاز الظاهري Flex مع المناطق
ترحيل الأجهزة الظاهرية باستخدام مجموعات التوفر إلى مجموعات مقياس الجهاز الظاهري Flex
استخدام الأقراص المدارة لأقراص الجهاز الظاهري
الإصلاح بعد كارثة النسخ المتماثل للأجهزة الظاهرية باستخدام Azure Site Recovery
النسخ الاحتياطي للبيانات على الأجهزة الظاهرية باستخدام خدمة Azure Backup
الاداء استضافة بيانات التطبيق وقاعدة البيانات على قرص بيانات
يجب أن تستخدم الأجهزة الظاهرية للإنتاج أقراص SSD
تمكين الشبكات المتسارعة (AccelNet)
عند تمكين AccelNet، يجب تحديث محرك أقراص GuestOS NIC يدويا
الإدارة VM-9: مراقبة الأجهزة الظاهرية في حالة الإيقاف
استخدام تكوينات الصيانة للجهاز الظاهري
الأمان يجب ألا يكون للأجهزة الظاهرية عنوان IP عام مقترن مباشرة
تحتوي واجهات الشبكة الظاهرية على NSG مقترنة
يجب تمكين إعادة توجيه IP للأجهزة الظاهرية للشبكة فقط
يجب تعيين الوصول إلى الشبكة إلى قرص الجهاز الظاهري إلى "تعطيل الوصول العام وتمكين الوصول الخاص"
تمكين تشفير القرص وتشفير البيانات الثابتة بشكل افتراضي
التواصل الشبكي يجب تكوين خوادم DNS للعميل على مستوى الشبكة الظاهرية
التخزين يجب تمكين الأقراص المشتركة فقط في الخوادم المجمعة
الامتثال تأكد من أن الأجهزة الظاهرية الخاصة بك متوافقة مع نهج Azure
رصد تمكين VM Insights
تكوين إعدادات التشخيص لجميع موارد Azure

التوافر العالي

تشغيل أحمال عمل الإنتاج على جهازين ظاهريين أو أكثر باستخدام مجموعات مقياس الجهاز الظاهري Flex

لحماية أحمال عمل التطبيق من وقت التعطل بسبب عدم توفر قرص أو جهاز ظاهري مؤقتا، يوصى بتشغيل أحمال عمل الإنتاج على جهازين ظاهريين أو أكثر باستخدام مجموعات مقياس الجهاز الظاهري Flex.

لتشغيل أحمال عمل الإنتاج، يمكنك استخدام:

  • مجموعات مقياس الجهاز الظاهري Azure لإنشاء وإدارة مجموعة من الأجهزة الظاهرية المتوازنة التحميل. يمكن أن يزيد عدد المثيلات للجهاز الظاهري أو ينقص تلقائيًا استجابةً للطلب أو لجدول زمني محدد.

  • مناطق التوفر. لمزيد من المعلومات حول مناطق التوفر والأجهزة الظاهرية، راجع دعم منطقة التوفر.

// Azure Resource Graph Query
// Find all VMs that are not associated with a VMSS Flex instance
resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where isnull(properties.virtualMachineScaleSet.id)
| project recommendationId="vm-1", name, id, tags

توزيع الأجهزة الظاهرية عبر مناطق التوفر أو استخدام مجموعات مقياس الجهاز الظاهري Flex مع المناطق*

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

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

للحصول على معلومات حول كيفية ترحيل الأجهزة الظاهرية الموجودة إلى دعم منطقة التوفر، راجع الترحيل إلى دعم منطقة التوفر.

// Azure Resource Graph Query
// Find all VMs that are not assigned to a Zone
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where isnull(zones)
| project recommendationId="vm-2", name, id, tags, param1="No Zone"

ترحيل الأجهزة الظاهرية باستخدام مجموعات التوفر إلى مجموعات مقياس الجهاز الظاهري Flex

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

باستخدام مجموعات مقياس الجهاز الظاهري Flex، يمكنك نشر الأجهزة الظاهرية بإحدى طريقتين:

  • عبر المناطق
  • في نفس المنطقة، ولكن عبر مجالات الخطأ (FDs) وتحديث المجالات (UD) تلقائيا.

في تطبيق N-tier، يوصى بوضع كل طبقة تطبيق في مجموعات مقياس الجهاز الظاهري Flex الخاصة بها.

// Azure Resource Graph Query
// Find all VMs using Availability Sets
resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where isnotnull(properties.availabilitySet)
| project recommendationId = "vm-3", name, id, tags, param1=strcat("availabilitySet: ",properties.availabilitySet.id)

استخدام الأقراص المدارة لأقراص الجهاز الظاهري*

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

// Azure Resource Graph Query
// Find all VMs that are not using Managed Disks
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where isnull(properties.storageProfile.osDisk.managedDisk)
| project recommendationId = "vm-5", name, id, tags

التعافي من الكوارث

النسخ المتماثل للأجهزة الظاهرية باستخدام Azure Site Recovery

عند النسخ المتماثل لأجهزة Azure الظاهرية باستخدام Site Recovery، يتم نسخ جميع أقراص الجهاز الظاهري بشكل مستمر إلى المنطقة المستهدفة بشكل غير متزامن. يتم إنشاء نقاط الاسترداد كل بضع دقائق، ما يمنحك هدف نقطة الاسترداد (RPO) بترتيب الدقائق. يمكنك إجراء تدريبات الإصلاح بعد كارثة عدة مرات كما تريد، دون التأثير على تطبيق الإنتاج أو النسخ المتماثل المستمر.

لمعرفة كيفية تشغيل تدريب التعافي من الكوارث، راجع تشغيل اختبار تجاوز الفشل.

// Azure Resource Graph Query
// Find all VMs that do NOT have replication with ASR enabled
// Run query to see results.
resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| project name, id, tags
| join kind=leftouter (
    recoveryservicesresources
    | where type =~ 'Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems'
    | where properties.providerSpecificDetails.dataSourceInfo.datasourceType =~ 'AzureVm'
    | project id=properties.providerSpecificDetails.dataSourceInfo.resourceId
    | extend name=strcat_array(array_slice(split(id, '/'), 8, -1), '/')
) on name
| where isnull(id1)
| project-away id1
| project-away name1
| project recommendationId = "vm-4", name, id, tags
| order by id asc

النسخ الاحتياطي للبيانات على الأجهزة الظاهرية باستخدام خدمة Azure Backup

تُقدم خدمة Azure Backup حلولاً بسيطة وآمنة وبتكلفة مناسبة لإجراء النسخ الاحتياطي لبياناتك واستعادتها من سحابة Microsoft Azure. لمزيد من المعلومات، راجع ما هي خدمة Azure Backup.

// Azure Resource Graph Query
// Find all VMs that do NOT have Backup enabled
// Run query to see results.
resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| project name, id, tags
| join kind=leftouter (
    recoveryservicesresources
    | where type =~ 'Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems'
    | where properties.dataSourceInfo.datasourceType =~ 'Microsoft.Compute/virtualMachines'
    | project idBackupEnabled=properties.sourceResourceId
    | extend name=strcat_array(array_slice(split(idBackupEnabled, '/'), 8, -1), '/')
) on name
| where isnull(idBackupEnabled)
| project-away idBackupEnabled
| project-away name1
| project recommendationId = "vm-7", name, id, tags
| order by id asc

الأداء

استضافة بيانات التطبيق وقاعدة البيانات على قرص بيانات

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

// Azure Resource Graph Query
// Find all VMs that only have OS Disk
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where array_length(properties.storageProfile.dataDisks) < 1
| project recommendationId = "vm-6", name, id, tags

يجب أن تستخدم الأجهزة الظاهرية للإنتاج أقراص SSD

توفر أقراص Premium SSD دعما عالي الأداء وزمن انتقال منخفضا للتطبيقات كثيفة الإدخال/الإخراج وأحمال عمل الإنتاج. أقراص SSD القياسية هي خيار تخزين فعال من حيث التكلفة محسن لأحمال العمل التي تحتاج إلى أداء متسق على مستويات IOPS أقل.

من المستحسن أن:

  • استخدم أقراص محركات الأقراص الثابتة القياسية لسيناريوهات التطوير/الاختبار وأحمال العمل الأقل أهمية بأقل تكلفة.
  • استخدم أقراص Premium SSD بدلا من أقراص محركات الأقراص الثابتة القياسية مع الأجهزة الظاهرية ذات القدرة المتميزة. بالنسبة إلى أي جهاز ظاهري أحادي المثيل يستخدم تخزينا متميزا لجميع أقراص نظام التشغيل وأقراص البيانات، يضمن Azure اتصال الجهاز الظاهري بنسبة 99.9٪ على الأقل.

إذا كنت ترغب في الترقية من Standard HDD إلى أقراص Premium SSD، ففكر في المشكلات التالية:

  • تتطلب الترقية إعادة تشغيل الجهاز الظاهري وتستغرق هذه العملية من 3 إلى 5 دقائق لإكمالها.
  • إذا كانت الأجهزة الظاهرية هي أجهزة ظاهرية للإنتاج بالغة الأهمية، فقيم التوفر المحسن مقابل تكلفة الأقراص المتميزة.

لمزيد من المعلومات حول أنواع الأقراص والأقراص المدارة من Azure، راجع أنواع الأقراص المدارة من Azure.

// Azure Resource Graph Query
// Find all disks with StandardHDD sku attached to VMs
Resources
| where type =~ 'Microsoft.Compute/disks'
| where sku.name == 'Standard_LRS' and sku.tier == 'Standard'
| where managedBy != ""
| project recommendationId = "vm-8", name, id, tags, param1=strcat("managedBy: ", managedBy)

تمكين الشبكات المتسارعة (AccelNet)

تمكن AccelNet ظاهرية إدخال/إخراج جذر واحد (SR-IOV) إلى جهاز ظاهري، مما يحسن أداء الشبكات بشكل كبير. يتخطى هذا المسار عالي الأداء المضيف من مسار البيانات، ما يقلل من زمن الانتقال وعدم الاستقرار واستخدام وحدة المعالجة المركزية لأحمال عمل الشبكة الأكثر تطلباً على أنواع الأجهزة الظاهرية المدعومة.

لمزيد من المعلومات حول الشبكات المسرعة، راجع الشبكات المسرعة

// Azure Resource Graph Query
// Find all VM NICs that do not have Accelerated Networking enabled
resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| mv-expand nic = properties.networkProfile.networkInterfaces
| project name, id, tags, lowerCaseNicId = tolower(nic.id), vmSize = tostring(properties.hardwareProfile.vmSize)
| join kind = inner (
    resources
    | where type =~ 'Microsoft.Network/networkInterfaces'
    | where properties.enableAcceleratedNetworking == false
    | project nicName = split(id, "/")[8], lowerCaseNicId = tolower(id)
    )
    on lowerCaseNicId
| summarize nicNames = make_set(nicName) by name, id, tostring(tags), vmSize
| extend param1 = strcat("NicName: ", strcat_array(nicNames, ", ")), param2 = strcat("VMSize: ", vmSize)
| project recommendationId = "vm-10", name, id, tags, param1, param2
| order by id asc

عند تمكين AccelNet، يجب تحديث برنامج تشغيل GuestOS NIC يدويا

عند تمكين AccelNet، يتم استبدال واجهة شبكة Azure الظاهرية الافتراضية في GuestOS لواجهة Mellanox. ونتيجة لذلك، يتم توفير برنامج تشغيل GuestOS NIC من Mellanox، وهو بائع تابع لجهة خارجية. على الرغم من أن صور Marketplace التي تحتفظ بها Microsoft يتم تقديمها مع أحدث إصدار من برامج تشغيل Mellanox، فبمجرد نشر الجهاز الظاهري، تحتاج إلى تحديث برنامج تشغيل GuestOS NIC يدويا كل ستة أشهر.

// cannot-be-validated-with-arg

الإدارة

مراجعة الأجهزة الظاهرية في حالة الإيقاف

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

// Azure Resource Graph Query
// Find all VMs that are NOT running
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where properties.extended.instanceView.powerState.displayStatus != 'VM running'
| project recommendationId = "vm-9", name, id, tags

استخدام تكوينات الصيانة للجهاز الظاهري

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

// Azure Resource Graph Query
// Find VMS that do not have maintenance configuration assigned
Resources
| extend resourceId = tolower(id)
| project name, location, type, id, tags, resourceId, properties
| where type =~ 'Microsoft.Compute/virtualMachines'
| join kind=leftouter (
maintenanceresources
| where type =~ "microsoft.maintenance/configurationassignments"
| project planName = name, type, maintenanceProps = properties
| extend resourceId = tostring(maintenanceProps.resourceId)
) on resourceId
| where isnull(maintenanceProps)
| project recommendationId = "vm-22",name, id, tags
| order by id asc

الأمان

يجب ألا يكون للأجهزة الظاهرية عنوان IP عام مقترن مباشرة

إذا كان الجهاز الظاهري يتطلب اتصالا خارجيا بالإنترنت، فمن المستحسن استخدام بوابة NAT أو جدار حماية Azure. تساعد بوابة NAT أو Azure Firewall على زيادة الأمان والمرونة للخدمة، نظرا لأن كلتا الخدمتين تتمتعان بتوافر أعلى ومنافذ ترجمة عناوين الشبكة المصدر (SNAT ). للاتصال بالإنترنت الوارد، يوصى باستخدام حل موازنة التحميل مثل Azure Load Balancer وApplication Gateway.

// Azure Resource Graph Query
// Find all VMs with PublicIPs directly associated with them
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where isnotnull(properties.networkProfile.networkInterfaces)
| mv-expand nic=properties.networkProfile.networkInterfaces
| project name, id, tags, nicId = nic.id
| extend nicId = tostring(nicId)
| join kind=inner (
    Resources
    | where type =~ 'Microsoft.Network/networkInterfaces'
    | where isnotnull(properties.ipConfigurations)
    | mv-expand ipconfig=properties.ipConfigurations
    | extend publicIp = tostring(ipconfig.properties.publicIPAddress.id)
    | where publicIp != ""
    | project name, nicId = tostring(id), publicIp
) on nicId
| project recommendationId = "vm-12", name, id, tags
| order by id asc

تحتوي واجهات شبكة الجهاز الظاهري على مجموعة أمان شبكة (NSG) مقترنة*

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

// Azure Resource Graph Query
// Provides a list of virtual machines and associated NICs that do have an NSG associated to them and also an NSG associated to the subnet.
Resources
| where type =~ 'Microsoft.Network/networkInterfaces'
| where isnotnull(properties.networkSecurityGroup)
| mv-expand ipConfigurations = properties.ipConfigurations, nsg = properties.networkSecurityGroup
| project nicId = tostring(id), subnetId = tostring(ipConfigurations.properties.subnet.id), nsgName=split(nsg.id, '/')[8]
| parse kind=regex subnetId with '/virtualNetworks/' virtualNetwork '/subnets/' subnet
    | join kind=inner (
        Resources
        | where type =~ 'Microsoft.Network/NetworkSecurityGroups' and isnotnull(properties.subnets)
        | project name, resourceGroup, subnet=properties.subnets
        | mv-expand subnet
        | project subnetId=tostring(subnet.id)
    ) on subnetId
    | project nicId
| join kind=leftouter (
    Resources
    | where type =~ 'Microsoft.Compute/virtualMachines'
    | where isnotnull(properties.networkProfile.networkInterfaces)
    | mv-expand nic=properties.networkProfile.networkInterfaces
    | project vmName = name, vmId = id, tags, nicId = nic.id, nicName=split(nic.id, '/')[8]
    | extend nicId = tostring(nicId)
) on nicId
| project recommendationId = "vm-13", name=vmName, id = vmId, tags, param1 = strcat("nic-name=", nicName)

يجب تمكين إعادة توجيه IP فقط للأجهزة الظاهرية للشبكة

تمكن إعادة توجيه IP واجهة شبكة الجهاز الظاهري من:

  • تلقي نسبة استخدام الشبكة غير الموجهة لأحد عناوين IP المعينة لأي من تكوينات IP المعينة لواجهة الشبكة.

  • إرسال حركة مرور الشبكة بعنوان IP مصدر مختلف عن العنوان المعين لأحد تكوينات IP لواجهة الشبكة.

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

لمعرفة كيفية تمكين إعادة توجيه IP أو تعطيله، راجع تمكين إعادة توجيه IP أو تعطيله.

// Azure Resource Graph Query
// Find all VM NICs that have IPForwarding enabled. This feature is usually only required for Network Virtual Appliances
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where isnotnull(properties.networkProfile.networkInterfaces)
| mv-expand nic=properties.networkProfile.networkInterfaces
| project name, id, tags, nicId = nic.id
| extend nicId = tostring(nicId)
| join kind=inner (
    Resources
    | where type =~ 'Microsoft.Network/networkInterfaces'
    | where properties.enableIPForwarding == true
    | project nicId = tostring(id)
) on nicId
| project recommendationId = "vm-14", name, id, tags
| order by id asc

يجب تعيين الوصول إلى الشبكة إلى قرص الجهاز الظاهري إلى "تعطيل الوصول العام وتمكين الوصول الخاص"

يوصى بتعيين الوصول إلى شبكة قرص الجهاز الظاهري إلى "تعطيل الوصول العام وتمكين الوصول الخاص" وإنشاء نقطة نهاية خاصة. لمعرفة كيفية إنشاء نقطة نهاية خاصة، راجع إنشاء نقطة نهاية خاصة.

// Azure Resource Graph Query
// Find all Disks with "Enable public access from all networks" enabled
resources
| where type =~ 'Microsoft.Compute/disks'
| where properties.publicNetworkAccess == "Enabled"
| project id, name, tags, lowerCaseDiskId = tolower(id)
| join kind = leftouter (
    resources
    | where type =~ 'Microsoft.Compute/virtualMachines'
    | project osDiskVmName = name, lowerCaseOsDiskId = tolower(properties.storageProfile.osDisk.managedDisk.id)
    | join kind = fullouter (
        resources
        | where type =~ 'Microsoft.Compute/virtualMachines'
        | mv-expand dataDisks = properties.storageProfile.dataDisks
        | project dataDiskVmName = name, lowerCaseDataDiskId = tolower(dataDisks.managedDisk.id)
        )
        on $left.lowerCaseOsDiskId == $right.lowerCaseDataDiskId
    | project lowerCaseDiskId = coalesce(lowerCaseOsDiskId, lowerCaseDataDiskId), vmName = coalesce(osDiskVmName, dataDiskVmName)
    )
    on lowerCaseDiskId
| summarize vmNames = make_set(vmName) by name, id, tostring(tags)
| extend param1 = iif(isempty(vmNames[0]), "VMName: n/a", strcat("VMName: ", strcat_array(vmNames, ", ")))
| project recommendationId = "vm-17", name, id, tags, param1
| order by id asc

تمكين تشفير القرص وتشفير البيانات الثابتة بشكل افتراضي

هناك عدة أنواع من التشفير للأقراص المدارة، بما في ذلك تشفير قرص Azure (ADE) وتشفير من جانب الخادم (SSE) والتشفير في المضيف.

  • يساعدك تشفير قرص Azure على حماية بياناتك وحفظها للوفاء بالتزامات الأمان والتوافق المؤسسي.
  • يقوم التشفير من تشفير Azure Disk Storage من جانب الخادم (يُشار إليه أيضًا باسم التشفير عند الراحة أو تشفير Azure Storage) يقوم تلقائيًا بتشفير البيانات المخزنة على أقراص Azure المُدارة (نظام التشغيل وأقراص البيانات) عند الاستمرار في مجموعات التخزين.
  • يضمن التشفير في المضيف تشفير البيانات المخزنة على مضيف الجهاز الظاهري الذي يستضيف جهازك الظاهري أثناء الراحة وتدفقها مشفرة إلى مجموعات التخزين.
  • يربط تشفير القرص السري مفاتيح تشفير القرص ب TPM الخاص بالجهاز الظاهري ويجعل محتوى القرص المحمي متاحا فقط للجهاز الظاهري.

لمزيد من المعلومات حول خيارات تشفير القرص المدارة، راجع نظرة عامة على خيارات تشفير القرص المدارة.

// under-development

الشبكات

يجب تكوين خوادم DNS على مستوى الشبكة الظاهرية

تكوين خادم DNS في الشبكة الظاهرية لتجنب عدم تناسق تحليل الاسم عبر البيئة. لمزيد من المعلومات حول تحليل الاسم للموارد في شبكات Azure الظاهرية، راجع تحليل الاسم للأجهزة الظاهرية والخدمات السحابية.

// Azure Resource Graph Query
// Find all VM NICs that have DNS Server settings configured in any of the NICs
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where isnotnull(properties.networkProfile.networkInterfaces)
| mv-expand nic=properties.networkProfile.networkInterfaces
| project name, id, tags, nicId = nic.id
| extend nicId = tostring(nicId)
| join kind=inner (
    Resources
    | where type =~ 'Microsoft.Network/networkInterfaces'
    | project name, id, dnsServers = properties.dnsSettings.dnsServers
    | extend hasDns = array_length(dnsServers) >= 1
    | where hasDns != 0
    | project name, nicId = tostring(id)
) on nicId
| project recommendationId = "vm-15", name, id, tags
| order by id asc

التخزين

يجب تمكين الأقراص المشتركة فقط في الخوادم المجمعة

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

لمعرفة المزيد حول كيفية تمكين الأقراص المشتركة للأقراص المدارة، راجع تمكين القرص المشترك.

// Azure Resource Graph Query
// Find all Disks configured to be Shared. This is not an indication of an issue, but if a disk with this configuration is assigned to two or more VMs without a proper disk control mechanism (like a WSFC) it can lead to data loss
resources
| where type =~ 'Microsoft.Compute/disks'
| where isnotnull(properties.maxShares)
| project id, name, tags, lowerCaseDiskId = tolower(id), diskState = tostring(properties.diskState)
| join kind = leftouter (
    resources
    | where type =~ 'Microsoft.Compute/virtualMachines'
    | project osDiskVmName = name, lowerCaseOsDiskId = tolower(properties.storageProfile.osDisk.managedDisk.id)
    | join kind = fullouter (
        resources
        | where type =~ 'Microsoft.Compute/virtualMachines'
        | mv-expand dataDisks = properties.storageProfile.dataDisks
        | project dataDiskVmName = name, lowerCaseDataDiskId = tolower(dataDisks.managedDisk.id)
        )
        on $left.lowerCaseOsDiskId == $right.lowerCaseDataDiskId
    | project lowerCaseDiskId = coalesce(lowerCaseOsDiskId, lowerCaseDataDiskId), vmName = coalesce(osDiskVmName, dataDiskVmName)
    )
    on lowerCaseDiskId
| summarize vmNames = make_set(vmName) by name, id, tostring(tags), diskState
| extend param1 = strcat("DiskState: ", diskState), param2 = iif(isempty(vmNames[0]), "VMName: n/a", strcat("VMName: ", strcat_array(vmNames, ", ")))
| project recommendationId = "vm-16", name, id, tags, param1, param2
| order by id asc

الامتثال

تأكد من أن الأجهزة الظاهرية الخاصة بك متوافقة مع نهج Azure

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

// Azure Resource Graph Query
// Find all VMs in "NonCompliant" state with Azure Policies
PolicyResources
| where type =~ "Microsoft.PolicyInsights/policyStates" and properties.resourceType =~ "Microsoft.Compute/virtualMachines" and properties.complianceState =~ "NonCompliant"
| project
    policyAssignmentName = properties.policyAssignmentName,
    policyDefinitionName = properties.policyDefinitionName,
    lowerCasePolicyDefinitionIdOfPolicyState = tolower(properties.policyDefinitionId),
    lowerCaseVmIdOfPolicyState = tolower(properties.resourceId)
| join kind = leftouter (
    PolicyResources
    | where type =~ "Microsoft.Authorization/policyDefinitions"
    | project lowerCasePolicyDefinitionId = tolower(id), policyDefinitionDisplayName = properties.displayName
    )
    on $left.lowerCasePolicyDefinitionIdOfPolicyState == $right.lowerCasePolicyDefinitionId
| project policyAssignmentName, policyDefinitionName, policyDefinitionDisplayName, lowerCaseVmIdOfPolicyState
| join kind = leftouter (
    Resources
    | where type =~ "Microsoft.Compute/virtualMachines"
    | project vmName = name, vmId = id, vmTags = tags, lowerCaseVmId = tolower(id)
    )
    on $left.lowerCaseVmIdOfPolicyState == $right.lowerCaseVmId
| extend
    param1 = strcat("AssignmentName: ", policyAssignmentName),
    param2 = strcat("DefinitionName: ", policyDefinitionDisplayName),  // Align to Azure portal's term.
    param3 = strcat("DefinitionID: ", policyDefinitionName)            // Align to Azure portal's term.
| project recommendationId = "vm-18", name = vmName, id = vmId, tags = vmTags, param1, param2, param3

مراقبة‬

تمكين VM Insights

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

// Azure Resource Graph Query
// Check for VMs without Azure Monitoring Agent extension installed, missing Data Collection Rule or Data Collection Rule without performance enabled.
Resources
| where type == 'microsoft.compute/virtualmachines'
| project idVm = tolower(id), name, tags
| join kind=leftouter (
    InsightsResources
    | where type =~ "Microsoft.Insights/dataCollectionRuleAssociations" and id has "Microsoft.Compute/virtualMachines"
    | project idDcr = tolower(properties.dataCollectionRuleId), idVmDcr = tolower(substring(id, 0, indexof(id, "/providers/Microsoft.Insights/dataCollectionRuleAssociations/"))))
on $left.idVm == $right.idVmDcr
| join kind=leftouter (
    Resources
    | where type =~ "Microsoft.Insights/dataCollectionRules"
    | extend
        isPerformanceEnabled = iif(properties.dataSources.performanceCounters contains "Microsoft-InsightsMetrics" and properties.dataFlows contains "Microsoft-InsightsMetrics", true, false),
        isMapEnabled = iif(properties.dataSources.extensions contains "Microsoft-ServiceMap" and properties.dataSources.extensions contains "DependencyAgent" and properties.dataFlows contains "Microsoft-ServiceMap", true, false)//,
    | where isPerformanceEnabled or isMapEnabled
    | project dcrName = name, isPerformanceEnabled, isMapEnabled, idDcr = tolower(id))
on $left.idDcr == $right.idDcr
| join kind=leftouter (
    Resources
        | where type == 'microsoft.compute/virtualmachines/extensions' and (name contains 'AzureMonitorWindowsAgent' or name contains 'AzureMonitorLinuxAgent')
        | extend idVmExtension = tolower(substring(id, 0, indexof(id, '/extensions'))), extensionName = name)
on $left.idVm == $right.idVmExtension
| where isPerformanceEnabled != 1 or (extensionName != 'AzureMonitorWindowsAgent' and extensionName != 'AzureMonitorLinuxAgent')
| project recommendationId = "vm-20", name, id = idVm, tags, param1 = strcat('MonitoringExtension:', extensionName), param2 = strcat('DataCollectionRuleId:', idDcr), param3 = strcat('isPerformanceEnabled:', isPerformanceEnabled)

تكوين إعدادات التشخيص لجميع موارد Azure

يتم إرسال مقاييس النظام الأساسي تلقائياً إلى مقاييس Azure Monitor بشكل افتراضي ودون تكوين. توفر سجلات النظام الأساسي معلومات تشخيصية وتدقيحية مفصلة لموارد Azure والنظام الأساسي ل Azure التي تعتمد عليها وهي أحد الأنواع التالية:

  • سجلات الموارد التي لا يتم جمعها حتى يتم توجيهها إلى وجهة.
  • سجلات النشاط الموجودة بمفردها ولكن يمكن توجيهها إلى مواقع أخرى.

يتطلب كل مورد Azure إعداد التشخيص الخاص به، والذي يحدد المعايير التالية:

  • المصادر نوع بيانات القياس والسجل لإرسالها إلى الوجهات المحددة في الإعداد. تختلف الأنواع المتوفرة حسب نوع المورد.
  • الوجهات: وجهة واحدة أو أكثر لإرسالِ السجلات.

يمكن أن يحدد إعداد تشخيص واحد أكثر من وجهة واحدة من كل وجهة. إذا كنت تريد إرسال بيانات إلى أكثر من نوع وجهة مُعين (على سبيل المثال، عملين مختلفين في Log Analytics)، فقم بإنشاء إعدادات مُتعددة. يمكن أن يحتوي كل مورد على ما يصل إلى 5 إعدادات تشخيص.

للحصول على معلومات، راجع إعدادات التشخيص في Azure Monitor.

// Azure Resource Graph Query
// Find all Virtual Machines without diagnostic settings enabled/with diagnostic settings enabled but not configured both performance counters and event logs/syslogs.
resources
| where type =~ "microsoft.compute/virtualmachines"
| project name, id, tags, lowerCaseVmId = tolower(id)
| join kind = leftouter (
    resources
    | where type =~ "Microsoft.Compute/virtualMachines/extensions" and properties.publisher =~ "Microsoft.Azure.Diagnostics"
    | project
        lowerCaseVmIdOfExtension = tolower(substring(id, 0, indexof(id, "/extensions/"))),
        extensionType = properties.type,
        provisioningState = properties.provisioningState,
        storageAccount = properties.settings.StorageAccount,
        // Windows
        wadPerfCounters = properties.settings.WadCfg.DiagnosticMonitorConfiguration.PerformanceCounters.PerformanceCounterConfiguration,
        wadEventLogs = properties.settings.WadCfg.DiagnosticMonitorConfiguration.WindowsEventLog,
        // Linux
        ladPerfCounters = properties.settings.ladCfg.diagnosticMonitorConfiguration.performanceCounters.performanceCounterConfiguration,
        ladSyslog = properties.settings.ladCfg.diagnosticMonitorConfiguration.syslogEvents
    | extend
        // Windows
        isWadPerfCountersConfigured = iif(array_length(wadPerfCounters) > 0, true, false),
        isWadEventLogsConfigured = iif(isnotnull(wadEventLogs) and array_length(wadEventLogs.DataSource) > 0, true, false),
        // Linux
        isLadPerfCountersConfigured = iif(array_length(ladPerfCounters) > 0, true, false),
        isLadSyslogConfigured = isnotnull(ladSyslog)
    | project
        lowerCaseVmIdOfExtension,
        extensionType,
        provisioningState,
        storageAccount,
        isPerfCountersConfigured = case(extensionType =~ "IaaSDiagnostics", isWadPerfCountersConfigured, extensionType =~ "LinuxDiagnostic", isLadPerfCountersConfigured, false),
        isEventLogsConfigured = case(extensionType =~ "IaaSDiagnostics", isWadEventLogsConfigured, extensionType =~ "LinuxDiagnostic", isLadSyslogConfigured, false)
    )
    on $left.lowerCaseVmId == $right.lowerCaseVmIdOfExtension
| where isempty(lowerCaseVmIdOfExtension) or provisioningState !~ "Succeeded" or not(isPerfCountersConfigured and isEventLogsConfigured)
| extend
    param1 = strcat("DiagnosticSetting: ", iif(isnotnull(extensionType), strcat("Enabled, partially configured (", extensionType, ")"), "Not enabled")),
    param2 = strcat("ProvisioningState: ", iif(isnotnull(provisioningState), provisioningState, "n/a")),
    param3 = strcat("storageAccount: ", iif(isnotnull(storageAccount), storageAccount, "n/a")),
    param4 = strcat("PerformanceCounters: ", case(isnull(isPerfCountersConfigured), "n/a", isPerfCountersConfigured, "Configured", "Not configured")),
    param5 = strcat("EventLogs/Syslogs: ", case(isnull(isEventLogsConfigured), "n/a", isEventLogsConfigured, "Configured", "Not configured"))
| project recommendationId = "vm-21", name, id, tags, param1, param2, param3, param4, param5

دعم منطقة القابلية للوصول

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

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

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

تدعم الأجهزة الظاهرية مناطق التوفر بثلاث مناطق توفر لكل منطقة Azure مدعومة وهي أيضا مناطق زائدة عن الحاجة ومنطقة. لمزيد من المعلومات، راجع دعم مناطق التوفر. العميل مسؤول عن تكوين الأجهزة الظاهرية الخاصة به وترحيلها للتوفر.

لمعرفة المزيد حول خيارات جاهزية منطقة التوفر، راجع:

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

  • يجب أن تتوفر وحدات SKU للجهاز الظاهري عبر المناطق في منطقتك. لمراجعة المناطق التي تدعم مناطق التوفر، راجع قائمة المناطق المدعومة.

  • يجب أن تتوفر وحدات SKU للجهاز الظاهري عبر المناطق في منطقتك. للتحقق من توفر VM SKU، استخدم إحدى الطرق التالية:

تحسينات اتفاقية مستوى الخدمة

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

إنشاء مورد مع تمكين مناطق التوفر

ابدأ بإنشاء جهاز ظاهري (VM) مع تمكين منطقة التوفر من خيارات النشر التالية أدناه:

دعم تجاوز الفشل النطاقي

يمكنك إعداد الأجهزة الظاهرية لتجاوز الفشل إلى منطقة أخرى باستخدام خدمة Site Recovery. لمزيد من المعلومات، راجع استرداد الموقع.

التسامح مع الخطأ

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

لمزيد من المعلومات، راجع عمليات استرداد الموقع.

تجربة تعطل المنطقة

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

يجب عليك أيضا الاستعداد لاحتمال وجود انقطاع في منطقة بأكملها. إذا كان هناك انقطاع في الخدمة لمنطقة بأكملها، فلن تكون النسخ المكررة محليا من بياناتك غير متوفرة مؤقتا. إذا تم تمكين النسخ المتماثل الجغرافي، يتم تخزين ثلاث نسخ أخرى من الكائنات الثنائية كبيرة الحجم والجداول في Azure Storage في منطقة مختلفة. عندما يكون هناك انقطاع إقليمي كامل أو كارثة لا يمكن فيها استرداد المنطقة الأساسية، يعيد Azure تعيين جميع إدخالات DNS إلى المنطقة المنسوخة جغرافيا.

إعداد انقطاع المنطقة واستردادها

يتم توفير الإرشادات التالية لأجهزة Azure الظاهرية أثناء تعطيل الخدمة للمنطقة بأكملها حيث يتم نشر تطبيق الجهاز الظاهري Azure الخاص بك:

  • تكوين Azure Site Recovery للأجهزة الظاهرية
  • تحقق من حالة Azure Service Health Dashboard إذا لم يتم تكوين Azure Site Recovery
  • مراجعة كيفية عمل خدمة Azure Backup للأجهزة الظاهرية
    • راجع مصفوفة الدعم للنسخ الاحتياطية لجهاز Azure الظاهري
  • تحديد خيار استعادة الجهاز الظاهري والسيناريو الذي يعمل بشكل أفضل للبيئة الخاصة بك

تصميم زمن انتقال منخفض

تتوفر خيارات Cross Region (المنطقة الثانوية) والاشتراك المتقاطع (معاينة) و Cross Zonal (معاينة) عند تصميم حل جهاز ظاهري بزمن انتقال منخفض. لمزيد من المعلومات حول هذه الخيارات، راجع أساليب الاستعادة المدعومة.

هام

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

تقنيات التوزيع خزينة

عند اختيار عزل مناطق التوفر، يجب عليك استخدام تقنيات النشر الآمنة للتعليمات البرمجية للتطبيق وترقيات التطبيق. بالإضافة إلى تكوين Azure Site Recovery، وتنفيذ أي من تقنيات النشر الآمنة التالية للأجهزة الظاهرية:

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

قبل ترقية المجموعة التالية من العقد في منطقة أخرى، يجب تنفيذ المهام التالية:

الترحيل إلى دعم منطقة التوفر

لمعرفة كيفية ترحيل جهاز ظاهري إلى دعم منطقة التوفر، راجع ترحيل الأجهزة الظاهرية ومجموعات مقياس الجهاز الظاهري إلى دعم منطقة التوفر.

التعافي من الكوارث عبر المناطق واستمرارية الأعمال

يتعلق التعافي من الكوارث (DR) بالتعافي من الأحداث عالية التأثير، مثل الكوارث الطبيعية أو عمليات النشر الفاشلة التي تؤدي إلى وقت تعطل وفقدان البيانات. بغض النظر عن السبب، فإن أفضل علاج للكارثة هو خطة الإصلاح بعد الكارثة محددة جيدا ومختبرة وتصميم تطبيق يدعم الإصلاح بعد الكارثة بنشاط. قبل البدء في التفكير في إنشاء خطة التعافي من الكوارث، راجع التوصيات لتصميم استراتيجية التعافي من الكوارث.

عندما يتعلق الأمر بالتعافي من الكوارث، تستخدم Microsoft نموذج المسؤولية المشتركة. في نموذج المسؤولية المشتركة، تضمن Microsoft توفر البنية الأساسية الأساسية وخدمات النظام الأساسي. في الوقت نفسه، لا تقوم العديد من خدمات Azure تلقائيا بنسخ البيانات نسخا متماثلا أو الرجوع من منطقة فاشلة للنسخ المتماثل إلى منطقة أخرى ممكنة. بالنسبة إلى هذه الخدمات، أنت مسؤول عن إعداد خطة التعافي من الكوارث التي تعمل مع حمل العمل الخاص بك. توفر معظم الخدمات التي تعمل على عروض النظام الأساسي كخدمة (PaaS) في Azure ميزات وإرشادات لدعم الإصلاح بعد الكارثة ويمكنك استخدام ميزات خاصة بالخدمة لدعم الاسترداد السريع للمساعدة في تطوير خطة الإصلاح بعد الكارثة.

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

التعافي من الكوارث في المنطقة الجغرافية متعددة المناطق

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

الكشف عن الانقطاع والإعلام والإدارة

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

لمزيد من المعلومات التفصيلية حول اضطرابات خدمة الجهاز الظاهري، راجع إرشادات التعافي من الكوارث.

إعداد التعافي من الكوارث والكشف عن الانقطاع

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

التعافي من الكوارث في المنطقة الجغرافية أحادية المنطقة

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

عند النسخ المتماثل لأجهزة Azure الظاهرية باستخدام Site Recovery، يجب نسخ جميع أقراص الجهاز الظاهري بشكل مستمر إلى المنطقة المستهدفة بشكل غير متزامن. يتم إنشاء نقاط الاسترداد كل بضع دقائق، ما يمنحك هدف نقطة الاسترداد (RPO) بترتيب الدقائق. يمكنك إجراء تدريبات الإصلاح بعد كارثة عدة مرات كما تريد، دون التأثير على تطبيق الإنتاج أو النسخ المتماثل المستمر. لمزيد من المعلومات، راجع تشغيل تدريبات الإصلاح بعد كارثة في Azure.

لمزيد من المعلومات، راجع المكونات المعمارية لأجهزة Azure الظاهرية وإقران المنطقة.

القدرة والمرونة الاستباقية للتعافي من الكوارث

تعمل Microsoft وعملاؤها ضمن نموذج المسؤولية المشتركة. تعني المسؤولية المشتركة أنه بالنسبة إلى DR الممكنة من قبل العملاء (الخدمات المسؤولة عن العملاء)، يجب عليك معالجة DR لأي خدمة ينشرونها ويتحكمون فيها. للتأكد من أن الاسترداد استباقي، يجب عليك دائما نشر الثانويات مسبقا لأنه لا يوجد ضمان للقدرة في وقت التأثير لأولئك الذين لم يتم تخصيصهم مسبقا.

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

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