إنشاء جهاز Linux ظاهري مع الشبكات المسرّعة باستخدام Azure CLI
إنشاء مدخل
على الرغم من أن هذه المقالة تقدم خطوات لإنشاء جهاز ظاهري بشبكة مسرّعة باستخدام Azure CLI، إلا إنه يمكنك أيضاً إنشاء جهاز ظاهري بشبكة مسرّعة باستخدام مدخل Azure. عند إنشاء جهاز ظاهري في المدخل، في إنشاء جزء جهاز ظاهري، اختر علامة التبويب الشبكات. في علامة التبويب هذه، هناك خيار للشبكات المسرّعة. إذا اخترت نظام تشغيل مدعوم وحجم جهاز ظاهري، فستتم تعبئة هذا الخيار تلقائياً إلى "تشغيل". إذا لم يكن الأمر كذلك، فستتم تعبئة خيار "إيقاف التشغيل" للشبكات المسرّعة وإعطاء المستخدم سبباً لعدم تمكينه.
يمكنك أيضاً تمكين الشبكات المسرّعة أو تعطيلها من خلال المدخل بعد إنشاء الجهاز الظاهري عن طريق الانتقال إلى واجهة الشبكة والنقر فوق الزر الموجود أعلى جزء النظرة العامة.
ملاحظة
يمكن تمكين أنظمة التشغيل المدعومة فقط من خلال المدخل. إذا كنت تستخدم صورة مخصصة، وكانت صورتك تدعم الشبكة المسرّعة، فقم بإنشاء الجهاز الظاهري باستخدام CLI أو PowerShell.
بعد إنشاء الجهاز الظاهري، يمكنك التأكد من تمكين "الشبكة المسرّعة" باتباع إرشادات التأكيد.
إنشاء CLI
إنشاء شبكة افتراضية
ثبّت أحدث Azure CLI وسجل الدخول إلى حساب Azure باستخدام تسجيل الدخول إلى az. في الأمثلة التالية، استبدل أسماء معلمات الأمثلة بالقيم الخاصة بك. تتضمن أسماء المعلمات النموذجية myResourceGroup وmyNic وmyVm.
قم بإنشاء مجموعة موارد باستخدام إنشاء مجموعة من الألف إلى الياء . ينشئ المثال التالي مجموعة موارد باسم myResourceGroup في موقع centralus:
az group create --name myResourceGroup --location centralus
حدد منطقة Linux مدعومة مدرجة في شبكة Linux المسرّعة.
قم بإنشاء شبكة ظاهرية باستخدام az networkvnet create. ينشئ المثال التالي شبكة اتصال ظاهرية باسم myVnet:
az network vnet create \
--resource-group myResourceGroup \
--name myVnet \
--address-prefix 192.168.0.0/16 \
--subnet-name mySubnet \
--subnet-prefix 192.168.1.0/24
إنشاء مجموعة أمان الشبكة
إنشاء مجموعة أمان الشبكة باستخدام az network nsg create. يُنشئ المثال التالي مجموعة أمان شبكة باسم myNetworkSecurityGroup:
az network nsg create \
--resource-group myResourceGroup \
--name myNetworkSecurityGroup
تحتوي مجموعة أمان الشبكة على عدة قواعد افتراضية، أحدها يعطل جميع عمليات الوصول الواردة من الإنترنت. افتح منفذاً للسماح بوصول SSH إلى الجهاز الظاهري باستخدام إنشاء az network nsg rule:
az network nsg rule create \
--resource-group myResourceGroup \
--nsg-name myNetworkSecurityGroup \
--name Allow-SSH-Internet \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 100 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-address-prefix "*" \
--destination-port-range 22
إنشاء واجهة شبكة باستخدام الشبكات المسرّعة
أنشئ عنوان IP عامًا باستخدام إنشاء عنوان IP عام لشبكة az. لا يلزم عنوان IP العام إذا كنت لا تخطط للوصول إلى الجهاز الظاهري من الإنترنت. ومع ذلك، يلزم إكمال الخطوات الواردة في هذه المقالة.
az network public-ip create \
--name myPublicIp \
--resource-group myResourceGroup
إنشاء واجهة شبكة باستخدام إنشاء az network nic مع تمكين الشبكة المسرّعة. ينشئ المثال التالي واجهة شبكة تسمى myNic في الشبكة الفرعية mySubnet للشبكة الظاهرية myVnet ويربط مجموعة أمان الشبكة myNetworkSecurityGroup بواجهة الشبكة:
az network nic create \
--resource-group myResourceGroup \
--name myNic \
--vnet-name myVnet \
--subnet mySubnet \
--accelerated-networking true \
--public-ip-address myPublicIp \
--network-security-group myNetworkSecurityGroup
إنشاء جهاز ظاهري وإرفاق بطاقات NIC
عند إنشاء الجهاز الظاهري، حدد بطاقة NIC التي قمت بإنشائها باستخدام --nics. حدد الحجم والتوزيع المدرجين في شبكات Linux المسرّعة.
أنشئ جهازاً ظاهرياً باستخدام إنشاء vm az. يقوم المثال التالي بإنشاء جهاز ظاهري باسم myVM مع صورة UbuntuLTS وحجم يدعم الشبكة المسرّعة (Standard_DS4_v2):
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image UbuntuLTS \
--size Standard_DS4_v2 \
--admin-username azureuser \
--generate-ssh-keys \
--nics myNic
للحصول على قائمة بجميع أحجام الجهاز الظاهري وخصائصه، راجع أحجام جهاز Linux الظاهري.
بمجرد إنشاء الجهاز الظاهري، يتم إرجاع إخراج مشابه لإخراج المثال التالي. لاحظ publicIpAddress. يستخدم هذا العنوان للوصول إلى الجهاز الظاهري في الخطوات التالية.
{
"fqdns": "",
"id": "/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
"location": "centralus",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "192.168.0.4",
"publicIpAddress": "40.68.254.142",
"resourceGroup": "myResourceGroup"
}
تأكد من تمكين الشبكات المسرّعة
استخدم الأمر التالي لإنشاء جلسة SSH باستخدام الجهاز الظاهري. استبدل <your-public-ip-address> بعنوان IP العام المخصص للجهاز الظاهري الذي أنشأته، واستبدل azureuser إذا استخدمت قيمة مختلفة لـ --admin-username عند إنشاء الجهاز الظاهري.
ssh azureuser@<your-public-ip-address>
من Bash shell، أدخل uname -r وتأكد أن إصدار kernel هو أحد الإصدارات التالية، أو أحدث:
- Ubuntu 16.04: 4.11.0-1013
- SLES SP3: 4.4.92-6.18
- RHEL: 3.10.0-693, 2.6.32-573*
- CentOS: 3.10.0-693
ملاحظة
قد يتم دعم إصدارات kernel الأخرى. للحصول على أحدث قائمة، ارجع إلى جداول التوافق لكل توزيع على الأجهزة الظاهرية المدعومة من Linux وFreeBSD لـ Hyper-V وتأكد من دعم SR-IOV. يمكن العثور على تفاصيل إضافية في ملاحظات الإصدار الخاصة بـ خدمة تكامل Linux لـ Hyper-V وAzure. * يتم دعم RHEL 6.7-6.10 إذا تم تثبيت Mellanox VF الإصدار 4.5+ قبل خدمات تكامل Linux 4.3+.
تأكد من تعرض جهاز Mellanox VF لجهاز ظاهري باستخدام الأمر lspci. يشبه الإخراج الذي تم إرجاعه الإخراج التالي:
0000:00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (rev 03)
0000:00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 01)
0000:00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
0000:00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)
0000:00:08.0 VGA compatible controller: Microsoft Corporation Hyper-V virtual VGA
0001:00:02.0 Ethernet controller: Mellanox Technologies MT27500/MT27520 Family [ConnectX-3/ConnectX-3 Pro Virtual Function]
تحقق من وجود نشاط على VF (وظيفة ظاهرية) باستخدام الأمر ethtool -S eth0 | grep vf_. إذا تلقيت إخراجاً مشابهاً لإخراج العينة التالي، فسيتم تمكين الشبكة المسرَّعة وتنشيطها.
vf_rx_packets: 992956
vf_rx_bytes: 2749784180
vf_tx_packets: 2656684
vf_tx_bytes: 1099443970
vf_tx_dropped: 0
تم الآن تمكين الشبكات المسرَّعة للجهاز الظاهري الخاص بك.
التعامل مع الربط الديناميكي وإلغاء الوظيفة الظاهرية
يجب تشغيل التطبيقات على بطاقة NIC الاصطناعية التي يتم كشفها في جهاز ظاهري. إذا كان التطبيق يعمل مباشرة عبر VF NIC فلن يتلقى كل الحزم الموجهة إلى الجهاز الظاهري، حيث تظهر بعض الحزم على الواجهة الاصطناعية. إذا قمت بتشغيل تطبيق عبر NIC الاصطناعية، فإنه يضمن أن التطبيق يتلقى جميع الحزم الموجهة إليه. كما يتأكد أيضاً من استمرار تشغيل التطبيق، حتى إذا تم إبطال VF أثناء خدمة المضيف. تُعد التطبيقات الملزمة لبطاقة واجهة الشبكة (NIC) الاصطناعية مطلباً إلزامياً لجميع التطبيقات التي تستفيد من الشبكات المسرَّعة.
لمزيدٍ من التفاصيل حول متطلبات ربط التطبيقات، راجع كيفية عمل الشبكات المسرَّعة في الأجهزة الظاهرية Linux وFreeBSD.
تمكين الشبكات المسرَّعة على الأجهزة الظاهرية الحالية
إذا قمت بإنشاء جهاز ظاهري بدون "الشبكة المسرَّعة"، فمن الممكن تمكين هذه الميزة على جهاز ظاهري موجود. يجب أن يدعم الجهاز الظاهري الشبكات المسرَّعة من خلال تلبية المتطلبات الأساسية التالية الموضحة أيضاً:
- يجب أن يكون الجهاز الظاهري حجماً مدعوماً من أجل الشبكات المسرَّعة
- يجب أن يكون الجهاز الظاهري صورة Azure Gallery مدعومة (وإصدار kernel لنظام التشغيل Linux)
- يجب إيقاف/إلغاء تخصيص جميع الأجهزة الظاهرية في مجموعة توفر أو VMSS قبل تمكين الشبكات المسرَّعة على أي NIC
الأجهزة الظاهرية & الفردية في مجموعة توفر
أولاً، قم بإيقاف/إلغاء تخصيص الجهاز الظاهري، أو في حالة وجود مجموعة توافر، كل الأجهزة الظاهرية الموجودة في المجموعة:
az vm deallocate \
--resource-group myResourceGroup \
--name myVM
إذا تم إنشاء الجهاز الظاهري بشكلٍ فردي بدون تعيين توفر، فيجب عليك فقط إيقاف الجهاز الظاهري الفردي أو إلغاء تخصيصه لتمكين "الشبكة المسرَّعة". إذا تم إنشاء الجهاز الظاهري باستخدام مجموعة توفر، فيجب إيقاف جميع الأجهزة الظاهرية الموجودة في المجموعة أو إلغاء تخصيصها قبل تمكين "الشبكة المسرَّعة" على أي من بطاقات واجهة الشبكة (NIC).
بمجرد التوقف، قم بتمكين الشبكات المسرَّعة على بطاقة NIC الخاصة بالجهاز الظاهري:
az network nic update \
--name myNic \
--resource-group myResourceGroup \
--accelerated-networking true
أعد تشغيل الجهاز الظاهري أو، إذا كنت في مجموعة التوفر، جميع الأجهزة الظاهرية في المجموعة وتأكد من تمكين "الشبكة المسرَّعة":
az vm start --resource-group myResourceGroup \
--name myVM
VMSS
يختلف نظام VMSS قليلاً ولكنه يتبع نفس سير العمل. أولاً، أوقف الأجهزة الظاهرية:
az vmss deallocate \
--name myvmss \
--resource-group myrg
بمجرد إيقاف الأجهزة الظاهرية، قم بتحديث خاصية "الشبكة المسرَّعة" ضمن واجهة الشبكة:
az vmss update --name myvmss \
--resource-group myrg \
--set virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].enableAcceleratedNetworking=true
ملاحظة
يحتوي نظام VMSS على ترقيات الجهاز الظاهري التي تطبق التحديثات باستخدام ثلاثة إعدادات مختلفة، تلقائية ومتدرجة ويدوية. في هذه التعليمات، يتم تعيين النهج على تلقائي بحيث يلتقط نظام VMSS التغييرات فور إعادة التشغيل. ينبغي تعيينه إلى تلقائي بحيث يتم التقاط التغييرات على الفور:
az vmss update \
--name myvmss \
--resource-group myrg \
--set upgradePolicy.mode="automatic"
أخيراً، أعد تشغيل VMSS:
az vmss start \
--name myvmss \
--resource-group myrg
بمجرد إعادة التشغيل، انتظر حتى تنتهي الترقيات ولكن بمجرد اكتمالها، يظهر VF داخل الجهاز الظاهري. (تأكد من أنك تستخدم نظام تشغيل وحجم جهاز ظاهري مدعوماً.)
تغيير حجم الأجهزة الظاهرية الحالية باستخدام الشبكات المسرَّعة
لا يمكن تغيير حجم الأجهزة الظاهرية المزودة بميزة "الشبكات المسرَّعة" إلا إلى أجهزة ظاهرية تدعم الشبكات المسرَّعة.
لا يمكن تغيير حجم جهاز ظاهري مع تمكين الشبكة المسرَّعة إلى مثيل جهاز ظاهري لا يدعم الشبكات المسرعة باستخدام عملية تغيير الحجم. بدلاً من ذلك، لتغيير حجم أحد هذه الأجهزة الظاهرية:
- قم بإيقاف/إلغاء تخصيص الجهاز الظاهري أو إذا كان في مجموعة توفر/VMSS، فقم بإيقاف/إلغاء تخصيص جميع الأجهزة الظاهرية في المجموعة/VMSS.
- يجب تعطيل الشبكة المسرَّعة على NIC الخاص بالجهاز الظاهري أو إذا كان في مجموعة توفر/VMSS، فإن جميع الأجهزة الظاهرية في المجموعة/VMSS.
- بمجرد تعطيل "الشبكة المسرَّعة"، يمكن نقل الجهاز الظاهري/مجموعة التوفر/VMSS إلى حجم جديد لا يدعم "الشبكات المسرَّعة" وإعادة تشغيله.
الخطوات التالية
- تعرف على كيفية عمل الشبكة المسرَّعة
- تعرف على كيفية إنشاء جهاز ظاهري باستخدام الشبكات المسرَّعة في PowerShell
- تحسين زمن الانتقال باستخدام مجموعة مواضع تقارب Azure