إعداد جهاز Oracle Linux الظاهري لـ Azure
ينطبق على: ✔️ أجهزة Linux الظاهرية ✔️ مجموعات مقياس مرنة
تفترض هذه المقالة أنك قمت بالفعل بتثبيت نظام تشغيل Oracle Linux (OS) على قرص ثابت ظاهري (VHD). توجد أدوات متعددة لإنشاء ملفات .vhd. مثال على ذلك هو حل ظاهري مثل Hyper-V. للحصول على الإرشادات، راجع تثبيت دور Hyper-V وتكوين جهاز ظاهري (VM).
ملاحظات لتثبيت Oracle Linux
- لمزيد من النصائح حول إعداد Linux ل Azure، راجع ملاحظات تثبيت Linux العامة.
- Hyper-V وAzure يدعما Oracle Linux إما مع Unbreakable Enterprise Kernel (UEK) أو Kernel المتوافق مع Red Hat.
- لا يتم دعم UEK2 من Oracle على Hyper-V وAzure لأنه لا يتضمن برامج التشغيل المطلوبة.
- تنسيق VHDX غير مدعوم في Azure، فقط VHD ثابت. يمكنك تحويل القرص إلى تنسيق VHD باستخدام Hyper-V Manager أو
convert-vhd
cmdlet. - مطلوب دعم Kernel لتركيب أنظمة ملفات الوظائف المعرفة من قبل المستخدم (UDF). في التمهيد الأول على Azure، يتم تمرير تكوين التوفير إلى Linux VM عبر وسائط بتنسيق UDF المرفقة بالضيف. يجب أن يكون عامل Azure Linux قادرًا على إدخال نظام ملفات UDF لقراءة تكوينه وتوفير الجهاز الظاهري.
- عند تثبيت نظام Linux، نوصي باستخدام الأقسام القياسية بدلا من إدارة وحدة التخزين المنطقية (LVM)، والتي غالبا ما تكون الافتراضية للعديد من التثبيتات. تتجنب هذه الأقسام القياسية تعارض اسم LVM مع الأجهزة الظاهرية المستنسخة، خاصة إذا كان قرص نظام التشغيل بحاجة إلى إرفاقه بجهاز ظاهري آخر لاستكشاف الأخطاء وإصلاحها. يمكن أيضا استخدام LVM أو RAID على أقراص البيانات.
- لا تدعم إصدارات Linux kernel الأقدم من 2.6.37 NUMA على Hyper-V بأحجام أجهزة ظاهرية أكبر. تؤثر هذه المشكلة بشكل أساسي على التوزيعات القديمة التي تستخدم نواة Red Hat 2.6.32 الأولية وتم إصلاحها في Oracle Linux 6.6 والإصدارات الأحدث.
- لا تقم بتكوين قسم مبادلة على قرص نظام التشغيل.
- يجب أن يكون لجميع أقراص VHD على Azure حجم ظاهري محاذاته إلى 1 ميغابايت. عند التحويل من قرص خام إلى VHD، يجب التأكد من أن حجم القرص الخام هو مضاعف 1 ميغابايت قبل التحويل. لمزيد من المعلومات، راجع ملاحظات تثبيت Linux.
- تأكد من تمكين المستودع
Addons
. تحرير الملف/etc/yum.repos.d/public-yum-ol6.repo
(Oracle Linux 6) أو/etc/yum.repos.d/public-yum-ol7.repo
(Oracle Linux 7). غير السطرenabled=0
إلىenabled=1
ضمن [ol6_addons] أو [ol7_addons] في هذا الملف.
Oracle Linux 6.X
هام
تذكر أن Oracle Linux 6.x بالفعل في نهاية العمر الافتراضي. يتوفر Oracle Linux الإصدار 6.10 دعم دورة الحياة الموسعة، والذي ينتهي في يوليو 2024.
يجب إكمال خطوات تكوين محددة في نظام التشغيل لتشغيل الجهاز الظاهري في Azure.
في الجزء الأوسط من Hyper-V Manager، حدد الجهاز الظاهري.
حدد Connect لفتح نافذة الجهاز الظاهري.
إلغاء التثبيت
NetworkManager
:sudo rpm -e --nodeps NetworkManager
إشعار
إذا لم تكن الحزمة مثبتة بالفعل، يفشل هذا الأمر مع ظهور رسالة خطأ. هذه الرسالة متوقعة.
أنشئ ملف باسم الشبكة في الدليل
/etc/sysconfig/
الذي يحتوي على النص التالي:NETWORKING=yes HOSTNAME=localhost.localdomain
أنشئ ملف باسم ifcfg-eth0 في الدليل
/etc/sysconfig/network-scripts/
الذي يحتوي على النص التالي:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
تعديل قواعد udev لتجنب إنشاء قواعد ثابتة لواجهات Ethernet. يمكن أن تتسبب هذه القواعد في حدوث مشكلات عند استنساخ جهاز ظاهري في Azure أو Hyper-V:
sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
تأكد من أن خدمة الشبكة تبدأ في وقت التمهيد:
sudo chkconfig network on
تثبيت
python-pyasn1
:sudo yum install python-pyasn1
تعديل خط تمهيد kernel في تكوين grub الخاص بك لتضمين المزيد من معلمات kernel ل Azure. للقيام بهذه الخطوة، افتح
/boot/grub/menu.lst
في محرر نص وتأكد من أن النواة تتضمن المعلمات التالية:console=ttyS0 earlyprintk=ttyS0
يضمن هذا الإعداد إرسال جميع رسائل وحدة التحكم إلى المنفذ التسلسلي الأول، والذي يمكن أن يساعد دعم Azure في تصحيح المشكلات.
بالإضافة إلى الخطوات السابقة، نوصي بإزالة المعلمات التالية:
rhgb quiet crashkernel=auto
التمهيد الرسومي والهادئ غير مفيد في بيئة سحابية حيث تريد إرسال جميع السجلات إلى المنفذ التسلسلي.
crashkernel
يمكن ترك الخيار مكونا إذا كنت تريد ذلك. تقلل هذه المعلمة مقدار الذاكرة المتوفرة في الجهاز الظاهري بمقدار 128 ميغابايت أو أكثر، مما قد يكون مشكلة لأحجام الأجهزة الظاهرية الأصغر.تأكد من تثبيت خادم SSH وتكوينه للبدء في وقت التمهيد. عادةً ما يكون هذا الإعداد هو الإعداد الافتراضي.
قم بتثبيت عامل Azure Linux عن طريق تشغيل الأمر التالي. أحدث إصدار هو 2.0.15.
sudo yum install WALinuxAgent
يؤدي تثبيت الحزمة إلى
WALinuxAgent
إزالةNetworkManager
الحزمتين وNetworkManager-gnome
إذا لم تتم إزالتها بالفعل، كما هو موضح في الخطوة 2.لا تنشئ مساحة مبادلة على قرص نظام التشغيل.
يمكن لعامل Azure Linux تكوين مساحة التبديل تلقائيا باستخدام قرص المورد المحلي المرفق بالجهاز الظاهري بعد التوفير على Azure. قرص المورد المحلي هو قرص مؤقت وقد يتم إفراغه عند إلغاء توفير الجهاز الظاهري. بعد تثبيت عامل Azure Linux (راجع الخطوة السابقة)، قم بتعديل المعلمات
/etc/waagent.conf
التالية بشكل مناسب:ResourceDisk.Format=y ResourceDisk.Filesystem=ext4 ResourceDisk.MountPoint=/mnt ResourceDisk.EnableSwap=y ResourceDisk.SwapSizeMB=2048 ## NOTE: set this to whatever you need it to be.
إلغاء توفير الجهاز الظاهري وإعداده للتزويد على Azure:
sudo waagent -force -deprovision sudo export HISTSIZE=0 sudo logout
حدد Action>Shut down في Hyper-V Manager. أصبح قرص Linux VHD جاهزاً الآن للتحميل إلى Azure.
Oracle Linux 7.0 والإصدار الأحدث
اتبع الخطوات الواردة في الأقسام التالية إذا كنت تستخدم Oracle Linux 7.0 أو أحدث.
التغييرات في Oracle Linux 7
يعد إعداد جهاز Oracle Linux 7 الظاهري ل Azure مشابها ل Oracle Linux 6، ولكن هناك العديد من الاختلافات الجديرة بالملاحظة:
- Azure يدعم Oracle Linux إما مع Unbreakable Enterprise Kernel (UEK) أو Kernel المتوافقة مع Red Hat. نوصي باستخدام Oracle Linux مع UEK.
NetworkManager
لم تعد الحزمة تتعارض مع عامل Azure Linux. يتم تثبيت هذه الحزمة بشكل افتراضي، ونوصي بعدم إزالتها.- يتم الآن استخدام GRUB2 كمحمل التمهيد الافتراضي، لذلك تم تغيير إجراء تحرير معلمات kernel. (راجع قسم "خطوات التكوين".)
- يعد XFS الآن نظام الملفات الافتراضي. لا يزال من الممكن استخدام نظام الملفات ext4 إذا أردت ذلك.
خطوات التكوين
في Hyper-V Manager، حدد الجهاز الظاهري.
حدد Connect لفتح نافذة وحدة تحكم للجهاز الظاهري.
أنشئ ملف باسم الشبكة في الدليل
/etc/sysconfig/
الذي يحتوي على النص التالي:NETWORKING=yes HOSTNAME=localhost.localdomain
أنشئ ملف باسم ifcfg-eth0 في الدليل
/etc/sysconfig/network-scripts/
الذي يحتوي على النص التالي:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
تعديل قواعد udev لتجنب إنشاء قواعد ثابتة لواجهات Ethernet. يمكن أن تتسبب هذه القواعد في حدوث مشكلات عند استنساخ جهاز ظاهري في Azure أو Hyper-V:
sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
تأكد من أن خدمة الشبكة تبدأ في وقت التمهيد:
sudo chkconfig network on
ثبّت حزمة
python-pyasn1
.sudo yum install python3-pyasn1
امسح بيانات تعريف yum الحالية وقم بتثبيت أي تحديثات:
sudo yum clean all sudo yum -y update
تعديل خط تمهيد kernel في تكوين grub الخاص بك لتضمين المزيد من معلمات kernel ل Azure. للقيام بهذه الخطوة، افتح
/etc/default/grub
في محرر نص وقم بتحرير المعلمةGRUB_CMDLINE_LINUX
. على سبيل المثال:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
يضمن هذا التعديل أيضا إرسال جميع رسائل وحدة التحكم إلى المنفذ التسلسلي الأول، والذي يمكن أن يساعد دعم Azure في تصحيح المشكلات. كما أنه يوقف اصطلاحات التسمية لبطاقات واجهة الشبكة في Oracle Linux 7 مع UEK. نوصي أيضا بإزالة المعلمات التالية:
rhgb quiet crashkernel=auto
التمهيد الرسومي والهادئ غير مفيد في بيئة سحابية حيث تريد إرسال جميع السجلات إلى المنفذ التسلسلي.
crashkernel
يمكن ترك الخيار مكونا إذا كنت تريد ذلك. تقلل هذه المعلمة مقدار الذاكرة المتوفرة في الجهاز الظاهري بمقدار 128 ميغابايت أو أكثر، مما قد يكون مشكلة لأحجام الأجهزة الظاهرية الأصغر.بعد الانتهاء من التحرير
/etc/default/grub
، أعد إنشاء تكوين grub:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
تأكد من تثبيت خادم SSH وتكوينه للبدء في وقت التمهيد. عادةً ما يكون هذا الإعداد هو الإعداد الافتراضي.
تثبيت عامل Azure Linux والتبعيات:
sudo yum install WALinuxAgent sudo systemctl enable waagent
تثبيت
cloud-init
للتعامل مع التزويد:sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
تكوين
waagent
لcloud-init
:sudo sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/g' /etc/waagent.conf sudo sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/g' /etc/waagent.conf
sudo echo "Adding mounts and disk_setup to init stage" sudo sed -i '/ - mounts/d' /etc/cloud/cloud.cfg sudo sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfg
echo "Allow only Azure datasource, disable fetching network setting via IMDS"
sudo cat > /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF datasource_list: [ Azure ] datasource: Azure: apply_network_config: False EOF if [[ -f /mnt/resource/swapfile ]]; then echo Removing swapfile - Oracle Linux uses a swapfile by default swapoff /mnt/swapfile rm /mnt/swapfile -f fi echo "Add console log file" cat >> /etc/cloud/cloud.cfg.d/05_logging.cfg <<EOF # This tells cloud-init to redirect its stdout and stderr to # 'tee -a /var/log/cloud-init-output.log' so the user can see output # there without needing to look on the console. output: {all: '| tee -a /var/log/cloud-init-output.log'} EOF
تكوين المبادلة:
لا تقم بإنشاء مساحة تبديل على قرص نظام التشغيل.
في السابق، تم استخدام عامل Azure Linux تلقائيا لتكوين مساحة التبديل باستخدام قرص المورد المحلي المرفق بالجهاز الظاهري بعد توفير الجهاز الظاهري على Azure. ومع ذلك،
cloud-init
يعالج الآن هذه الخطوة. يجب عدم استخدام عامل Linux لتنسيق قرص المورد لإنشاء ملف التبديل. تعديل المعلمات التالية بشكل/etc/waagent.conf
مناسب:sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.conf
إذا كنت تريد تحميل التبديل وتنسيقه وإنشائه، فيمكنك إما:
- مرر هذه التعليمة البرمجية كتكوين
cloud-init
في كل مرة تقوم فيها بإنشاء جهاز ظاهري. - استخدم توجيها
cloud-init
مخبوزا في الصورة للقيام بهذه الخطوة في كل مرة يتم فيها إنشاء الجهاز الظاهري:
echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf cat > /etc/cloud/cloud.cfg.d/00-azure-swap.cfg << EOF #cloud-config # Generated by Azure cloud image build disk_setup: ephemeral0: table_type: mbr layout: [66, [33, 82]] overwrite: True fs_setup: - device: ephemeral0.1 filesystem: ext4 - device: ephemeral0.2 filesystem: swap mounts: - ["ephemeral0.1", "/mnt/resource"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"] EOF
- مرر هذه التعليمة البرمجية كتكوين
إلغاء توفير الجهاز الظاهري وإعداده للتزويد على Azure:
sudo cloud-init clean sudo rm -f /var/log/waagent.log sudo waagent -force -deprovision sudo rm -f ~/.bash_history sudo export HISTSIZE=0
إشعار
إذا كنت تقوم بترحيل جهاز ظاهري معين ولا تريد إنشاء صورة معممة، فتخط خطوة إلغاء التوفير.
حدد Action>Shut down في Hyper-V Manager. أصبح قرص Linux VHD جاهزاً الآن للتحميل إلى Azure.
المحتوى ذو الصلة
أنت الآن جاهز لاستخدام Oracle Linux .vhd لإنشاء أجهزة ظاهرية جديدة في Azure. إذا كانت هذه هي المرة الأولى التي تقوم فيها بتحميل ملف .vhd إلى Azure، فراجع إنشاء جهاز ظاهري يعمل بنظام التشغيل Linux من قرص مخصص.