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

يمكن أن تتكون مجموعة Proxmox من خادمين أو أكثر. الحد الأقصى لعدد العقد في كتلة هو 32 قطعة. ستتألف المجموعة الخاصة بنا من ثلاث عقد على بث متعدد (في المقالة سأشرح أيضًا كيفية رفع كتلة على التفرد - وهذا أمر مهم إذا قمت ببناء البنية التحتية لنظام المجموعة على Hetzner أو OVH ، على سبيل المثال). باختصار ، يسمح البث المتعدد بنقل البيانات إلى عدة عقد في وقت واحد. مع البث المتعدد ، لا يمكننا التفكير في عدد العقد في المجموعة (مع التركيز على القيود المذكورة أعلاه).
الكتلة نفسها مبنية على شبكة داخلية (من المهم أن تكون عناوين IP على نفس الشبكة الفرعية) ، نفس Hetzner و OVH لديهم القدرة على تجميع العقد في مراكز بيانات مختلفة باستخدام Virtual Switch (Hetzner) و vRack (OVH) - حول Virtual Switch سنتحدث أيضا في المقال. إذا لم يكن لدى مزود الاستضافة تقنيات مماثلة في العمل ، فيمكنك استخدام OVS (Open Virtual Switch) ، المدعوم أصلاً من قبل Proxmox ، أو استخدام VPN. ومع ذلك ، في هذه الحالة ، أوصي باستخدام Unicast مع عدد صغير من العقد - حالات تنشأ غالبًا حيث "تتفكك" المجموعة ببساطة استنادًا إلى البنية الأساسية للشبكة ويجب استعادتها. لذلك ، أحاول استخدام OVH و Hetzner في عملي - لقد رأيت عددًا أقل من هذه الحوادث ، لكن أولاً وقبل كل شيء ، أدرس موفر الاستضافة الذي سيتم استضافته: هل لديه تقنية بديلة ، ما هي الحلول التي يقدمها ، هل يدعم البث المتعدد ، وما إلى ذلك. .
تثبيت Proxmox
يمكن تثبيت Proxmox بطريقتين: المثبت ISO والتثبيت عبر shell. نختار الطريقة الثانية ، لذلك قم بتثبيت دبيان على الخادم.
ننتقل مباشرة إلى تثبيت Proxmox على كل خادم. التثبيت بسيط للغاية وهو موضح في الوثائق الرسمية هنا.
أضف مستودع Proxmox ومفتاح هذا المخزون:
echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg chmod +r /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg
تحديث المستودعات والنظام نفسه:
apt update && apt dist-upgrade
بعد التحديث الناجح ، قم بتثبيت حزم Proxmox اللازمة:
apt install proxmox-ve postfix open-iscsi
ملاحظة : سيتم تكوين Postfix و grub أثناء التثبيت - قد يفشل أحدهما. ربما يكون السبب في ذلك هو أن اسم المضيف لا يحل بالاسم. قم بتحرير إدخالات المضيفين وقم بتحديث apt-get
من الآن فصاعدًا ، يمكننا تسجيل الدخول إلى واجهة الويب Proxmox على https: // <external-ip-address>: 8006 (ستصادف شهادة غير موثوق بها أثناء الاتصال).
صورة 1. واجهة الويب لعقدة Proxmox
تثبيت Nginx و دعونا تشفير الشهادة
لا يعجبني الموقف مع الشهادة وعنوان IP ، لذلك أقترح تثبيت Nginx وإعداد Let Let's Encrypt. لن أصف تثبيت Nginx ، سأترك فقط الملفات المهمة لشهادة Let's Let's للعمل:
/etc/nginx/snippets/letsencrypt.conf location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
أمر إصدار شهادة SSL:
certbot certonly --agree-tos --email sos@livelinux.info --webroot -w /var/lib/letsencrypt/ -d proxmox1.domain.name
تكوين الموقع في NGINX upstream proxmox1.domain.name { server 127.0.0.1:8006; } server { listen 80; server_name proxmox1.domain.name; include snippets/letsencrypt.conf; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name proxmox1.domain.name; access_log /var/log/nginx/proxmox1.domain.name.access.log; error_log /var/log/nginx/proxmox1.domain.name.error.log; include snippets/letsencrypt.conf; ssl_certificate /etc/letsencrypt/live/proxmox1.domain.name/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/proxmox1.domain.name/privkey.pem; location / { proxy_pass https://proxmox1.domain.name; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; proxy_buffering off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
بعد تثبيت شهادة SSL ، لا تنسَ تعيينها على التجديد التلقائي عبر cron:
0 */12 * * * /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload nginx"
! ممتاز الآن يمكننا الوصول إلى مجالنا عبر HTTPS.
ملاحظة : لتعطيل نافذة معلومات الاشتراك ، قم بتشغيل هذا الأمر:
sed -i.bak "s/data.status !== 'Active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
إعدادات الشبكةقبل الاتصال بالكتلة ، قم بتكوين واجهات الشبكة على برنامج Hypervisor. تجدر الإشارة إلى أن تكوين العقد المتبقية لا يختلف ، باستثناء عناوين IP وأسماء الخوادم ، لذلك لن أكرر إعداداتها.
دعنا ننشئ جسرًا للشبكة الداخلية بحيث تكون أجهزتنا الافتراضية (في نسختي ستكون هناك حاوية LXC للراحة) ، أولاً ، تكون متصلة بالشبكة الداخلية لبرنامج hypervisor ويمكنها التفاعل مع بعضها البعض. ثانياً ، بعد ذلك بقليل سنضيف جسرًا للشبكة الخارجية بحيث يكون للأجهزة الافتراضية عنوان IP خارجي خاص بها. وفقا لذلك ، ستكون الحاويات في الوقت الحالي وراء NAT'om معنا.
هناك طريقتان للعمل مع تكوين شبكة Proxmox: من خلال واجهة الويب أو من خلال ملف التكوين / etc / network / واجهات. في الخيار الأول ، ستحتاج إلى إعادة تشغيل الخادم (أو يمكنك ببساطة إعادة تسمية الواجهة. ملف جديد للواجهات وإعادة تشغيل خدمة الشبكات من خلال systemd). إذا كنت بدأت للتو في التكوين ولم تكن هناك أجهزة افتراضية أو حاويات LXC بعد ، فمن المستحسن إعادة تشغيل برنامج Hypervisor بعد التغييرات.
قم الآن بإنشاء جسر شبكة يسمى vmbr1 في علامة تبويب الشبكة في لوحة ويب Proxmox.
الشكل 2. واجهات الشبكة للعقدة proxmox1
الشكل 3. إنشاء جسر الشبكة
الشكل 4. تكوين تكوين شبكة vmbr1
الإعداد بسيط للغاية - نحتاج إلى vmbr1 حتى تتمكن المثيلات من الوصول إلى الإنترنت.
أعد تشغيل برنامج Hypervisor الآن وتحقق مما إذا كانت الواجهة قد تم إنشاؤها:
الشكل 5. vmbr1 واجهة الشبكة في الملكية الفكرية إخراج الأمر
ملاحظة: لدي بالفعل واجهة ens19 - هذه هي الواجهة مع الشبكة الداخلية ، والتي سيتم إنشاء مجموعة عليها.
كرر هذه الخطوات في برامجي Hypervisor الأخريين ، ثم تابع إلى الخطوة التالية - تحضير الكتلة.
أيضًا ، تتمثل المرحلة المهمة الآن في تمكين إعادة توجيه الحزمة - وبدونها ، لن تتمكن المثيلات من الوصول إلى الشبكة الخارجية. افتح ملف sysctl.conf وقم بتغيير قيمة المعلمة net.ipv4.ip_forward إلى 1 ، وبعد ذلك ندخل الأمر التالي:
sysctl -p
في الإخراج ، سترى توجيه net.ipv4.ip_forward (إذا لم تقم بتغييره من قبل)
تكوين كتلة Proxmoxالآن دعنا نذهب مباشرة إلى الكتلة. يجب أن تحل كل عقدة نفسها والعقد الأخرى على الشبكة الداخلية ، لذلك من الضروري تغيير القيم في سجلات المضيفين كما يلي (يجب أن يكون لكل عقدة سجل عن الآخرين):
172.30.0.15 proxmox1.livelinux.info proxmox1 172.30.0.16 proxmox2.livelinux.info proxmox2 172.30.0.17 proxmox3.livelinux.info proxmox3
مطلوب أيضًا إضافة المفاتيح العامة لكل عقدة إلى الآخرين - وهذا ضروري لإنشاء كتلة.
قم بإنشاء كتلة من خلال لوحة الويب:
الشكل 6. إنشاء كتلة من خلال واجهة الويب
بعد إنشاء الكتلة ، نحتاج إلى الحصول على معلومات عنها. انتقل إلى نفس علامة تبويب المجموعة وانقر على زر "الانضمام إلى المعلومات":
صورة 7. معلومات حول الكتلة التي تم إنشاؤها
هذه المعلومات مفيدة لنا عند الانضمام إلى العقد الثاني والثالث في الكتلة. نحن متصلون بالعقدة الثانية وفي علامة التبويب "الكتلة" ، انقر فوق الزر "الانضمام إلى الكتلة":
الشكل 8. الاتصال كتلة عقدة
دعنا نحلل معلمات الاتصال بمزيد من التفاصيل:
- عنوان النظير: عنوان IP الخاص بالخادم الأول (إلى الخادم الذي نتصل به)
- كلمة المرور: كلمة مرور الخادم الأول
- بصمة: نحصل على هذه القيمة من معلومات الكتلة
الشكل 9. حالة الكتلة بعد توصيل العقدة الثانية
العقدة الثانية متصلة بنجاح! ومع ذلك ، هذا لا يحدث دائما. إذا اتبعت الخطوات بشكل غير صحيح أو ظهرت مشكلات في الشبكة ، فسوف تفشل عملية الانضمام إلى المجموعة ، وسيتم تقسيم المجموعة نفسها. الحل الأفضل هو فصل العقدة عن الكتلة وحذف كافة المعلومات حول الكتلة الموجودة عليها ثم إعادة تشغيل الخادم والتحقق من الخطوات السابقة. كيفية قطع بأمان عقدة من كتلة؟ أولاً ، احذفها من الكتلة على الخادم الأول:
pvecm del proxmox2
بعد ذلك سيتم فصل العقدة من الكتلة. انتقل الآن إلى العقدة المقطوعة وقم بتعطيل الخدمات التالية على ذلك:
systemctl stop pvestatd.service systemctl stop pvedaemon.service systemctl stop pve-cluster.service systemctl stop corosync systemctl stop pve-cluster
تقوم مجموعة Proxmox بتخزين معلومات عن نفسها في قاعدة بيانات sqlite ، كما يجب مسحها:
sqlite3 /var/lib/pve-cluster/config.db delete from tree where name = 'corosync.conf'; .quit
يتم حذف البيانات المتعلقة باللحاء بنجاح. احذف الملفات المتبقية ، لذلك تحتاج إلى بدء تشغيل نظام ملفات الكتلة في الوضع المستقل:
pmxcfs -l rm /etc/pve/corosync.conf rm /etc/corosync/* rm /var/lib/corosync/* rm -rf /etc/pve/nodes/*
نقوم بإعادة تشغيل الخادم (هذا ليس ضروريًا ، لكننا آمنون: يجب أن تكون جميع الخدمات جاهزة للعمل بشكل صحيح في النهاية. حتى لا تفوت أي شيء ، سنقوم بإعادة التشغيل). بعد التبديل ، سنحصل على عقدة فارغة دون أي معلومات حول الكتلة السابقة ويمكننا بدء الاتصال مرة أخرى.
تثبيت وتكوين ZFS
ZFS هو نظام ملفات يمكن استخدامه مع Proxmox. مع ذلك ، يمكنك السماح لنفسك بتكرار البيانات إلى برنامج مراقبة آخر ، وترحيل حاوية الجهاز الظاهري / LXC ، والوصول إلى حاوية LXC من النظام المضيف ، وما إلى ذلك. تثبيته بسيط للغاية ، دعنا ننتقل إلى التحليل. تتوفر ثلاثة محركات أقراص صلبة على الخوادم الخاصة بي ، والتي سنجمعها في مجموعة RAID.
إضافة مستودعات:
nano /etc/apt/sources.list.d/stretch-backports.list deb http://deb.debian.org/debian stretch-backports main contrib deb-src http://deb.debian.org/debian stretch-backports main contrib nano /etc/apt/preferences.d/90_zfs Package: libnvpair1linux libuutil1linux libzfs2linux libzpool2linux spl-dkms zfs-dkms zfs-test zfsutils-linux zfsutils-linux-dev zfs-zed Pin: release n=stretch-backports Pin-Priority: 990
تحديث قائمة الحزم:
apt update
تعيين التبعيات المطلوبة:
apt install --yes dpkg-dev linux-headers-$(uname -r) linux-image-amd64
تثبيت ZFS نفسه:
apt-get install zfs-dkms zfsutils-linux
إذا حصلت في المستقبل على خطأ fusermount: لم يتم العثور على جهاز fuse ، فحاول "modprobe fuse" أولاً ، ثم قم بتشغيل الأمر التالي:
modprobe fuse
الآن دعنا ننتقل مباشرة إلى الإعداد. نحتاج أولاً إلى تهيئة محركات أقراص الحالة الصلبة وتكوينها من خلال مفترق:
تكوين / ديف / حزب العمل الديمقراطي parted /dev/sda (parted) print Model: ATA SAMSUNG MZ7LM480 (scsi) Disk /dev/sda: 480GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 4296MB 4295MB primary raid 2 4296MB 4833MB 537MB primary raid 3 4833MB 37,0GB 32,2GB primary raid (parted) mkpart Partition type? primary/extended? primary File system type? [ext2]? zfs Start? 33GB End? 480GB Warning: You requested a partition from 33,0GB to 480GB (sectors 64453125..937500000). The closest location we can manage is 37,0GB to 480GB (sectors 72353792..937703087). Is this still acceptable to you? Yes/No? yes
يجب تنفيذ إجراءات مماثلة لمحركات الأقراص الأخرى. بعد إعداد كافة الأقراص ، انتقل إلى الخطوة التالية:
zpool create -f -o ashift = 12 rpool / dev / sda4 / dev / sdb4 / dev / sdc4
نختار ashift = 12 لأسباب تتعلق بالأداء - هذه توصية zfsonlinux نفسها ، يمكنك قراءة المزيد عنها في الويكي:
github.com/zfsonlinux/zfs/wiki/faq#performance-considerationsقم بتطبيق بعض الإعدادات على ZFS:
zfs set atime=off rpool zfs set compression=lz4 rpool zfs set dedup=off rpool zfs set snapdir=visible rpool zfs set primarycache=all rpool zfs set aclinherit=passthrough rpool zfs inherit acltype rpool zfs get -r acltype rpool zfs get all rpool | grep compressratio
نحتاج الآن إلى حساب بعض المتغيرات لحساب zfs_arc_max ، أفعل ذلك كما يلي:
mem =`free --giga | grep Mem | awk '{print $2}'` partofmem=$(($mem/10)) echo $setzfscache > /sys/module/zfs/parameters/zfs_arc_max grep c_max /proc/spl/kstat/zfs/arcstats zfs create rpool/data cat > /etc/modprobe.d/zfs.conf << EOL options zfs zfs_arc_max=$setzfscache EOL echo $setzfscache > /sys/module/zfs/parameters/zfs_arc_max grep c_max /proc/spl/kstat/zfs/arcstats
في الوقت الحالي ، تم إنشاء المجمع بنجاح ، كما أنشأنا قاعدة بيانات فرعية. يمكنك التحقق من حالة حمام السباحة الخاص بك باستخدام أمر حالة zpool. يجب تنفيذ هذا الإجراء على جميع برامج Hypervisor ، ثم المتابعة إلى الخطوة التالية.
أضف الآن ZFS إلى Proxmox. نذهب إلى إعدادات مركز البيانات (وهو ، وليس عقدة منفصلة) في قسم "التخزين" ، انقر فوق الزر "إضافة" وحدد خيار "ZFS" ، وبعد ذلك سنرى المعلمات التالية:
المعرف: اسم المائة. أعطيته اسم zfs المحلي
تجمع ZFS: أنشأنا rpool / data ، وقمنا بإضافته هنا.
العقد: تحديد جميع العقد المتاحة
ينشئ هذا الأمر مجموعة جديدة مع محركات الأقراص التي اخترناها. على كل برنامج مراقبة ، يجب أن تظهر وحدة تخزين جديدة تسمى zfs المحلي ، وبعد ذلك يمكنك نقل أجهزتك الافتراضية من التخزين المحلي إلى ZFS.
تكرار الحالات إلى برنامج Hypervisor مجاور
تحتوي مجموعة Proxmox على إمكانية نسخ البيانات من برنامج مراقبة إلى آخر: يتيح لك هذا الخيار تبديل مثيل من خادم إلى آخر. ستكون البيانات ذات صلة في وقت آخر تزامن - يمكن ضبط وقته عند إنشاء النسخ المتماثل (يتم تعيين 15 دقيقة كمعيار). هناك طريقتان لترحيل مثيل إلى عقدة Proxmox أخرى: يدوية وتلقائية. لنلقِ نظرة على الخيار اليدوي أولاً ، وسأعطيك في النهاية نصًا Python يتيح لك إنشاء جهاز افتراضي على برنامج hypervisor يمكن الوصول إليه عندما يكون أحد برامج Hypervisor غير متوفر.
لإنشاء نسخ متماثل ، انتقل إلى لوحة الويب Proxmox وإنشاء جهاز ظاهري أو حاوية LXC. في الفقرات السابقة ، قمنا بتكوين جسر vmbr1 مع NAT ، مما سيتيح لنا الانتقال إلى الشبكة الخارجية. سوف أقوم بإنشاء حاوية LXC باستخدام MySQL و Nginx و PHP-FPM مع موقع اختبار لاختبار النسخ المتماثل. يوجد أدناه خطوة بخطوة.
نقوم بتحميل القالب المناسب (انتقل إلى التخزين -> المحتوى -> القوالب) ، مثال في لقطة الشاشة:
صورة 10. التخزين المحلي مع قوالب VM والصور
انقر فوق الزر "قوالب" وقم بتحميل قالب حاوية LXC الذي نحتاجه:
صورة 11. اختيار وتحميل قالب
الآن يمكننا استخدامه عند إنشاء حاويات LXC جديدة. حدد برنامج Hypervisor الأول وانقر فوق الزر "إنشاء CT" في الزاوية اليمنى العليا: سنرى اللوحة لإنشاء مثيل جديد. خطوات التثبيت بسيطة للغاية وسأقدم فقط ملف التكوين لحاوية LXC هذه:
arch: amd64 cores: 3 memory: 2048 nameserver: 8.8.8.8 net0: name=eth0,bridge=vmbr1,firewall=1,gw=172.16.0.1,hwaddr=D6:60:C5:39:98:A0,ip=172.16.0.2/24,type=veth ostype: centos rootfs: local:100/vm-100-disk-1.raw,size=10G swap: 512 unprivileged:
تم إنشاء الحاوية بنجاح. يمكنك توصيل حاويات LXC عبر الأمر pct enter ، كما أنني أضفت مفتاح Hypervisor SSH قبل التثبيت للاتصال مباشرة عبر SSH (هناك بعض المشاكل المتعلقة بعرض المحطة الطرفية في PCT). قمت بإعداد الخادم وتثبيت جميع تطبيقات الخادم الضرورية هناك ، يمكنك الآن المتابعة لإنشاء النسخ المتماثل.
نضغط على حاوية LXC ونذهب إلى علامة التبويب "النسخ المتماثل" ، حيث نقوم بإنشاء معامل النسخ المتماثل باستخدام زر "إضافة":
الشكل 12. إنشاء النسخ المتماثل في واجهة Proxmox
صورة 13. نافذة إنشاء وظيفة النسخ المتماثل
لقد أنشأت مهمة نسخ الحاوية إلى العقدة الثانية ، كما ترون في لقطة الشاشة التالية ، كانت عملية النسخ المتماثل ناجحة - انتبه إلى حقل "الحالة" ، فإنه يخطر بحالة النسخ المتماثل ، كما أنه يجدر الانتباه إلى حقل "المدة" لمعرفة المدة التي تستغرقها عملية نسخ البيانات.
صورة 14. قائمة التزامن VM
الآن حاول ترحيل الجهاز إلى العقدة الثانية باستخدام زر "ترحيل"
ستبدأ عملية ترحيل الحاوية ، ويمكن عرض السجل في قائمة المهام - ستكون هناك عملية ترحيل لدينا. بعد ذلك ، سيتم نقل الحاوية إلى العقدة الثانية.
خطأ "فشل التحقق من مفتاح المضيف"في بعض الأحيان عند تكوين كتلة ، قد تنشأ مشكلة مماثلة - تمنع الآلات من الترحيل وإنشاء نسخ متماثل ، مما يلغي مزايا حلول الكتلة. لإصلاح هذا الخطأ ، احذف ملف known_hosts واتصل عبر SSH بالعقدة المتعارضة:
/usr/bin/ssh -o 'HostKeyAlias=proxmox2' root@172.30.0.16
اقبل Hostkey وحاول إدخال هذا الأمر ، يجب أن يوصلك بالخادم:
/usr/bin/ssh -o 'BatchMode=yes' -o 'HostKeyAlias=proxmox2' root@172.30.0.16
ميزات إعدادات الشبكة على Hetzner
انتقل إلى لوحة Robot وانقر على زر "مفاتيح التبديل الافتراضية". في الصفحة التالية ، سترى لوحة لإنشاء وإدارة واجهات Virtual Switch: أولاً ، تحتاج إلى إنشائها ، ثم "توصيل" الخوادم المخصصة لها. في عملية البحث ، أضف الخوادم الضرورية للاتصال - لا تحتاج إلى إعادة تشغيل ، يجب فقط الانتظار حتى 10-15 دقيقة عندما يكون الاتصال بالمفتاح الظاهري نشطًا.
بعد إضافة الخوادم إلى Virtual Switch من خلال لوحة الويب ، نتصل بالخوادم ونفتح ملفات التكوين لواجهات الشبكة ، حيث نقوم بإنشاء واجهة شبكة جديدة:
auto enp4s0.4000 iface enp4s0.4000 inet static address 10.1.0.11/24 mtu 1400 vlan-raw-device enp4s0
دعونا نلقي نظرة فاحصة على ما هو عليه. في جوهره ، هو VLAN الذي يتصل بواجهة فعلية واحدة تسمى enp4s0 (قد تختلف بالنسبة لك) ، برقم VLAN - هذا هو رقم Virtual Switch الذي قمت بإنشائه في لوحة الويب Hetzner Robot. يمكنك تحديد أي عنوان ، طالما أنه محلي.
لاحظ أنه يجب عليك تكوين enp4s0 كالمعتاد ، في الواقع يجب أن يحتوي على عنوان IP خارجي تم إصداره إلى خادمك الفعلي. كرر هذه الخطوات في برامج Hypervisor الأخرى ، ثم أعد تشغيل خدمة الشبكات عليها ، وقم باختبار اتصال ping إلى عقدة مجاورة باستخدام عنوان IP الخاص بـ Virtual Switch. إذا كان اختبار ping ناجحًا ، فقد قمت بإنشاء اتصال بين الخوادم التي تستخدم Virtual Switch بنجاح.
سأرفق أيضًا ملف التكوين sysctl.conf ، وستكون هناك حاجة إليه إذا كان لديك مشاكل في حزمة إعادة التوجيه ومعلمات الشبكة الأخرى:
net.ipv6.conf.all.disable_ipv6=0 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.all.forwarding=1 net.ipv4.conf.all.rp_filter=1 net.ipv4.tcp_syncookies=1 net.ipv4.ip_forward=1 net.ipv4.conf.all.send_redirects=0
إضافة شبكات IPv4 الفرعية إلى Hetznerقبل البدء في العمل ، تحتاج إلى طلب شبكة فرعية في Hetzner ، يمكنك القيام بذلك من خلال لوحة Robot.
إنشاء جسر شبكة مع العنوان الذي سيكون من هذه الشبكة الفرعية. مثال التكوين:
auto vmbr2 iface vmbr2 inet static address ip-address netmask 29 bridge-ports none bridge-stp off bridge-fd 0
انتقل الآن إلى إعدادات الجهاز الظاهري في Proxmox وقم بإنشاء واجهة شبكة جديدة سيتم توصيلها بجسر vmbr2. يمكنني استخدام حاوية LXC ، يمكن تغيير تكوينها على الفور في Proxmox. التكوين النهائي لديبيان:
auto eth0 iface eth0 inet static address ip-address netmask 26 gateway bridge-address
يرجى ملاحظة: لقد حددت 26 قناعًا ، وليس 29 - وهذا مطلوب حتى تعمل الشبكة على الجهاز الظاهري.
إضافة عناوين IPv4 إلى Hetznerيختلف الموقف مع عنوان IP واحد - عادةً ما يعطينا Hetzner عنوانًا إضافيًا من الشبكة الفرعية للخادم. هذا يعني أنه بدلاً من vmbr2 ، نحتاج إلى استخدام vmbr0 ، لكن في الوقت الحالي لا نمتلكه. خلاصة القول هي أن vmbr0 يجب أن يحتوي على عنوان IP لخادم الحديد (أي ، استخدم العنوان الذي استخدم enp2s0 لواجهة الشبكة الفعلية). يجب نقل العنوان إلى vmbr0 ، التكوين التالي مناسب لهذا (أنصحك أن تطلب KVM ، وفي هذه الحالة تستأنف تشغيل الشبكة):
auto enp2s0 iface enp2s0 inet manual auto vmbr0 iface vmbr0 inet static address ip-address netmask 255.255.255.192 gateway ip-gateway bridge-ports enp2s0 bridge-stp off bridge-fd 0
أعد تشغيل الخادم ، إن أمكن (إن لم يكن ، أعد تشغيل خدمة الشبكات) ، ثم تحقق من واجهات الشبكة عبر بروتوكول الإنترنت a:
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr0 state UP group default qlen 1000 link/ether 44:8a:5b:2c:30:c2 brd ff:ff:ff:ff:ff:ff
كما ترون هنا ، يرتبط enp2s0 بـ vmbr0 ولا يحتوي على عنوان IP ، حيث تم إعادة تعيينه إلى vmbr0.
الآن في إعدادات الجهاز الظاهري ، أضف واجهة الشبكة التي سيتم توصيلها بـ vmbr0. بالنسبة للعبّارة ، حدد العنوان المرفق بـ vmbr0.
في النهاية
آمل أن يكون هذا المقال مفيدًا عند إعداد نظام Proxmox في Hetzner. إذا سمح الوقت ، فسوف أقوم بتوسيع المقالة وأضيف تعليمات لـ OVH - هناك ، أيضًا ، ليس كل شيء واضحًا ، كما يبدو للوهلة الأولى. لقد تبين أن المادة ضخمة جدًا ، إذا وجدت أخطاء ، فالرجاء كتابة التعليقات ، وسوف أقوم بتصحيحها. شكرا لكم جميعا على اهتمامكم.
تم النشر بواسطة Ilya Andreev ، تم تحريره بواسطة Alexei Zhadan و Live Linux Team