دليل استكشاف الأخطاء وإصلاحها لتشفير قرص Azure على أجهزة Linux الظاهرية

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

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

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

استكشاف أخطاء تشفير قرص نظام التشغيل Linux وإصلاحها

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

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

  • لم تعد الصور المخصصة تطابق نظام الملفات أو نظام التقسيم المدعوم.
  • عدم دعم التطبيقات الكبيرة مثل SAP وMongoDB وApache Cassandra وDocker عند تثبيتها وتشغيلها في نظام التشغيل قبل التشفير. تشفير قرص Azure غير قادر على إيقاف تشغيل هذه العمليات بأمان كما هو مطلوب في إعداد محرك أقراص نظام التشغيل لتشفير القرص. إذا كانت لا تزال هناك عمليات نشطة تحتوي على مؤشرات ملفات مفتوحة على محرك أقراص نظام التشغيل، فلا يمكن إلغاء تحميل محرك أقراص نظام التشغيل، مما يؤدي إلى فشل تشفيره.
  • البرامج النصية المخصصة التي يتم تشغيلها في وقت قريب من التشفير الذي يتم تمكينه، أو في حالة إجراء أية تغييرات أخرى على الجهاز الظاهري أثناء عملية التشفير. يمكن أن يحدث هذا التعارض عندما يحدد قالب Azure Resource Manager ملحقات متعددة لتنفيذها في وقت واحد، أو عندما يتم تشغيل ملحق برنامج نصي مخصص أو إجراء آخر في نفس وقت تشفير القرص. قد يؤدي تسلسل هذه الخطوات وعزلها إلى حل المشكلة.
  • لم يتم تعطيل نظام التشغيل Security Enhanced Linux (SELinux) قبل تمكين التشفير، وبالتالي تفشل خطوة إلغاء التحميل. يمكن إعادة تمكين SELinux بعد اكتمال التشفير.
  • يستخدم قرص نظام التشغيل نظام إدارة وحدة التخزين المنطقية (LVM). على الرغم من توفر دعم محدود لقرص بيانات LVM، إلا أن قرص نظام تشغيل LVM ليس مدعوماً.
  • لا يتم استيفاء الحد الأدنى من متطلبات الذاكرة (يُقترح 7 جيجابايت لتشفير قرص نظام التشغيل).
  • تحميل محركات أقراص البيانات بشكل متكرر ضمن الدليل /mnt/ أو بعضها البعض (على سبيل المثال، /mnt/data1، و/mnt/data2، و/data3 + /data3/data4).

تحديث النواة الافتراضية لـ Ubuntu 14.04 LTS

تأتي صورة Ubuntu 14.04 LTS مع إصدار النواة افتراضية 4.4. يحتوي إصدار النواة هذا على مشكلة معروفة حيث يقوم Out of Memory Killer بإنهاء الأمر dd بشكل غير صحيح أثناء عملية تشفير نظام التشغيل. تم إصلاح هذا الخطأ في أحدث نواة Linux مضبوطة من Azure. لتجنب هذا الخطأ، قبل تمكين التشفير على الصورة، قم بالتحديث إلى نواة 4.15 مضبوطة من Azure أو إصدار أحدث باستخدام الأوامر التالية:

sudo apt-get update
sudo apt-get install linux-azure
sudo reboot

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

uname -a

تحديث إصدارات عامل جهاز Azure الظاهري والملحقات

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

الإصدار الصحيح من ملحق عامل الضيف Microsoft.Azure.Security.AzureDiskEncryption أو Microsoft.Azure.Security.AzureDiskEncryptionForLinux مطلوب أيضاً. يتم الاحتفاظ بإصدارات الملحق وتحديثها تلقائياً بواسطة النظام الأساسي عند استيفاء المتطلبات الأساسية لعامل جهاز Azure الظاهري واستخدام إصدار مدعوم من عامل الجهاز الظاهري.

تم إهمال ملحق Microsoft.OSTCExtensions.AzureDiskEncryptionForLinux ولم يعد مدعوماً.

غير قادر على تشفير أقراص Linux

في بعض الحالات، يبدو أن تشفير قرص Linux عالق عند "بدء تشفير قرص نظام التشغيل" ويتم تعطيل SSH. يمكن أن تستغرق عملية التشفير ما بين 3-16 ساعة حتى تنتهي على صورة معرض المخزون. إذا تمت إضافة أقراص بيانات بحجم عدة وحدات من التيرابايت، فقد تستغرق العملية أياماً.

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

أثناء تشفير محرك أقراص نظام التشغيل، يدخل الجهاز الظاهري في حالة خدمة ويعطل SSH لمنع أي انقطاع في العملية الجارية. للتحقق من حالة التشفير، استخدم أمر Azure PowerShell Get-AzVmDiskEncryptionStatus، وتحقق من الحقل ProgressMessage. سيقوم ProgressMessage بالإبلاغ عن سلسلة من الحالات أثناء تشفير البيانات وأقراص نظام التشغيل:

PS > Get-AzVMDiskEncryptionStatus -ResourceGroupName "MyResourceGroup" -VMName "myVM"

OsVolumeEncrypted          : EncryptionInProgress
DataVolumesEncrypted       : EncryptionInProgress
OsVolumeEncryptionSettings :
ProgressMessage            : Transitioning

PS > Get-AzVMDiskEncryptionStatus -ResourceGroupName "MyResourceGroup" -VMName "myVM"

OsVolumeEncrypted          : EncryptionInProgress
DataVolumesEncrypted       : EncryptionInProgress
OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings
ProgressMessage            : Encryption succeeded for data volumes

PS > Get-AzVMDiskEncryptionStatus -ResourceGroupName "MyResourceGroup" -VMName "myVM"

OsVolumeEncrypted          : EncryptionInProgress
DataVolumesEncrypted       : EncryptionInProgress
OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings
ProgressMessage            : Provisioning succeeded

PS > Get-AzVMDiskEncryptionStatus -ResourceGroupName "MyResourceGroup" -VMName "myVM"

OsVolumeEncrypted          : EncryptionInProgress
DataVolumesEncrypted       : EncryptionInProgress
OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings
ProgressMessage            : OS disk encryption started

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

PS > Get-AzVMDiskEncryptionStatus -ResourceGroupName "MyResourceGroup" -VMName "myVM"

OsVolumeEncrypted          : Encrypted
DataVolumesEncrypted       : NotMounted
OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings
ProgressMessage            : Encryption succeeded for all volumes

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

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

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

استكشاف أخطاء تشفير قرص Azure وإصلاحها خلف جدار حماية

راجع تشفير القرص على شبكة معزولة

استكشاف أخطاء حالة التشفير وإصلاحها

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

لتعطيل تشفير قرص Azure باستخدام PowerShell، استخدم Disable-AzVMDiskEncryption متبوعاً بـ Remove-AzVMDiskEncryptionExtension. سيفشل تشغيل Remove-AzVMDiskEncryptionExtension قبل تعطيل التشفير.

لتعطيل تشفير قرص Azure باستخدام CLI، استخدم تعطيل تشفير az vm.

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

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