التمرين - إضافة قرص بيانات إلى جهاز ظاهري

مكتمل

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

تلميح

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

هدفك هو إنشاء جهاز ظاهري يعمل بنظام Linux وإرفاق قرص ثابت ظاهري جديد (VHD) يسمى uploadDataDisk1 لتخزين /uploads الدليل.

تعيين القيم الافتراضية لـ Azure CLI

يسمح لك Azure CLI بتعيين القيم الافتراضية بحيث لا تضطر إلى تكرارها في كل مرة تقوم فيها بتشغيل أمر.

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

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

تُتيح لك بيئة الاختبار المعزولة المجانية إنشاء موارد في مجموعة فرعية من مناطق Azure العالمية. حدد منطقة من بين هذه القائمة عند إنشاء الموارد:

  • غرب الولايات المتحدة2
  • southcentralus
  • centralus
  • eastus
  • westeurope
  • southeastasia
  • japaneast
  • brazilsouth
  • australiasoutheast
  • وسط الهند
  1. تشغيل az configure لتعيين الموقع الافتراضي الذي تريد استخدامه. استبدل eastus بالموقع الذي تم اختياره في الخطوة السابقة.

    az configure --defaults location=eastus
    

    تلميح

    يمكنك استخدام الزر نسخ لنسخ الأوامر إلى الحافظة. للصق، انقر بزر الماوس الأيمن على سطر جديد في محطة Cloud Shell وحدد Paste، أو استخدم اختصار لوحة المفاتيح Shift + Insert (⌘+V في macOS).

  2. تعيين اسم مجموعة الموارد الافتراضية إلى مجموعة الموارد المكونة مسبقا التي تم إنشاؤها لك من خلال بيئة الاختبار المعزولة Azure: [مجموعة موارد بيئة الاختبار المعزولة]

    az configure --defaults group="<rgn>[sandbox Resource Group]</rgn>"
    

إنشاء جهاز ظاهري لـ Linux

هنا، يمكنك إنشاء Linux VM لاستضافة خادم الويب الخاص بك.

  1. تشغيل هذا az vm create الأمر لإنشاء جهاز ظاهري لـ Ubuntu Linux.

    az vm create \
      --name support-web-vm01 \
      --image Canonical:UbuntuServer:16.04-LTS:latest \
      --size Standard_DS1_v2 \
      --admin-username azureuser \
      --generate-ssh-keys
    
    • اسم الجهاز الظاهري هو دعم-web-vm01.
    • حجمه هو Standard_DS1_v2.
    • اسم المستخدم المسؤول هو azureuser. في الواقع، هذا الاسم يمكن أن يكون ما تريد.
    • تولد وسيطة --generate-ssh-keys زوج مفاتيح SSH لك، مما يسمح لك بالاتصال بجهازك الظاهري عبر SSH.

    يستغرق الجهاز الظاهري بضع دقائق للنشر. عندما يكون الجهاز الظاهري جاهزًا، سترى معلومات عنه بتنسيق JSON. إليك مثال:

    {
      "fqdns": "",
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/680469d8-edB7-42ec-b118-cd80d51741e7/providers/Microsoft.Compute/virtualMachines/support-web-vm01",
      "location": "eastus",
      "macAddress": "00-0D-3A-10-63-0A",
      "powerState": "VM running",
      "privateIpAddress": "10.0.0.4",
      "publicIpAddress": "104.211.38.211",
      "resourceGroup": "680469d8-edB7-42ec-b118-cd80d51741e7",
      "zones": ""
    }
    

    إشعار

    في هذا الدرس، كنت تستخدم هذا الجهاز الظاهري لمعرفة كيفية إدارة الأقراص. في الممارسة العملية، قد تقوم أيضًا بتثبيت خادم الويب والبرامج الأخرى ثم تشغيل az vm open-port لجعل المنافذ التي تحتاجها متاحة للعالم الخارجي.

إضافة قرص بيانات فارغ إلى الجهاز الظاهري

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

تلميح

لأغراض التعلم، تقوم بإنشاء الجهاز الظاهري وقرص البيانات كخطوبات منفصلة. في التدريب العملي، يمكنك تحديد --data-disk-sizes-gb الوسيطة az vm create إلى الأمر لإضافة أقراص البيانات عند إنشاء الجهاز الظاهري.

  1. تشغيل الأمر التالي az vm disk attach لإضافة قرص فارغ جديد إلى الجهاز الظاهري.

    az vm disk attach \
      --vm-name support-web-vm01 \
      --name uploadDataDisk1 \
      --size-gb 64 \
      --sku Premium_LRS \
      --new
    

    هذا الأمر:

    • سمي القرص uploadDataDisk1.
    • يقوم بتعيين الحجم إلى 64 غيغابايت.
    • تحديد استخدام التخزين المتميز مع التكرار المحلي.

لاستخدام القرص، تحتاج إلى تقسيمه وتنسيقه. لنفعل ذلك بعد ذلك.

تهيئة قرص البيانات وتنسيقه

يجب تهيئة محرك أقراص البيانات الفارغة وتنسيقه. العملية للقيام بذلك هي نفسها بالنسبة للقرص الفعلي.

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

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

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

يمكنك تخزين البرامج النصية الخاصة بك في موقع تخزين Azure، أو في موقع عام مثل GitHub. يمكنك تشغيل البرامج النصية يدويًا أو كجزء من عملية نشر مؤتمتة بشكل أكبر. هنا، يمكنك تشغيل أمر Azure CLI لتنزيل برنامج نصي Bash مسبق الصنع من GitHub وتنفيذه على الجهاز الظاهري الخاص بك.

لأغراض التعلم، دعنا نشغل أيضا بعض الأوامر على الجهاز الظاهري للتحقق من تكوين الجهاز الظاهري كما تتوقع.

  1. تشغيل az vm show للحصول على عنوان IP العام للجهاز الظاهري وحفظ عنوان IP كمتغير Bash.

    ipaddress=$(az vm show \
      --name support-web-vm01 \
      --show-details \
      --query [publicIps] \
      --output tsv)
    
  2. قم بتشغيل الأمر التالي ssh لتشغيل lsblk الأمر على الجهاز الظاهري عبر اتصال SSH باستخدام البيانات المتغيرة التي ipaddress قمت بإنشائها في الخطوة السابقة. أسترجع أن azureuser كان اسم المستخدم المسؤول الذي استخدمناه عندما أنشأنا الجهاز الظاهري. إذا اخترت اسمًا مختلفًا، استخدمه بدلًا من ذلك. أدخل نعم عند مطالبتك.

    ssh azureuser@$ipaddress lsblk
    

    يجب أن يبدو إخراج هذا الأمر كما يلي.

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdb       8:16   0    7G  0 disk 
    └─sdb1    8:17   0    7G  0 part /mnt
    sr0      11:0    1  628K  0 rom  
    sdc       8:32   0   64G  0 disk 
    sda       8:0    0   30G  0 disk 
    ├─sda14   8:14   0    4M  0 part 
    ├─sda15   8:15   0  106M  0 part /boot/efi
    └─sda1    8:1    0 29.9G  0 part /
    

    لاحظ أن محرك الأقراص 64 غيغابايت، sdc، الذي قمت بإنشائه غير مثبت. يتم سرد محرك الأقراص بهذه الطريقة لأنه لم تتم تهيئته بعد.

  3. قم بتشغيل الأمر التالي az vm extension set لتشغيل البرنامج النصي Bash الذي تم إنشاؤه مسبقا على الجهاز الظاهري الخاص بك.

    تحذير

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

    az vm extension set \
      --vm-name support-web-vm01 \
      --name customScript \
      --publisher Microsoft.Azure.Extensions \
      --settings '{"fileUris":["https://raw.githubusercontent.com/MicrosoftDocs/mslearn-add-and-size-disks-in-azure-virtual-machines/master/add-data-disk.sh"]}' \
      --protected-settings '{"commandToExecute": "./add-data-disk.sh"}'
    

    أثناء تشغيل الأمر، يمكنك فحص البرنامج النصي Bash من علامة تبويب متصفح منفصل، حسب رغبتك.

    لتلخيص ما سبق، البرنامج النصي:

    • قسم محرك الأقراص /dev/sdc.
    • أنشئ نظام ملفات ext4 على محرك الأقراص.
    • ينشئ الدليل /uploads، الذي نستخدمه كنقطة تركيب لدينا.
    • أرفق القرص بنقطة التركيب.
    • حدث /etc/fstab بحيث يتم إدخال محرك الأقراص تلقائيًا بعد إعادة تمهيد النظام.
  4. للتحقق من التكوين، قم بتشغيل نفس الأمر ssh كما فعلت سابقًا لتشغيل الأمر lsblk على الجهاز الظاهري عبر اتصالSSH.

    ssh azureuser@$ipaddress lsblk
    

    ترى أن sdc/sdc1 تم تقسيمه و تم إدخاله إلى الدليل /uploads كما تتوقع.

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdb       8:16   0    7G  0 disk 
    └─sdb1    8:17   0    7G  0 part /mnt
    sr0      11:0    1  628K  0 rom  
    sdc       8:32   0   64G  0 disk 
    └─sdc1    8:33   0   64G  0 part /uploads
    sda       8:0    0   30G  0 disk 
    ├─sda14   8:14   0    4M  0 part 
    ├─sda15   8:15   0  106M  0 part /boot/efi
    └─sda1    8:1    0 29.9G  0 part /
    

تلميح

بعض Linux kernels تدعم TRIM لتجاهل الكتل غير المستخدمة على الأقراص. هذه الميزة متوفرة على أقراص Azure ويمكن أن توفر لك المال إذا قمت بإنشاء ملفات كبيرة ثم حذفها. تعرّف على كيفية تشغيل هذه الميزة في وثائق Azure.

الملخص

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

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