الأجهزة الافتراضية ترى عتاداً مُقلّداً: قرصاً وهمياً وكارت شبكة وهمياً وكارت شاشة وهمياً. وهذا ممتاز حتى تحتاج شيئاً لا يُقلَّد — كارت شاشة حقيقياً لمعالجة فيديو، أو قفل حماية USB لبرنامج محاسبة، أو كارت شبكة بأداء بلا وسيط.
التمرير (Passthrough) يعطي الجهاز الافتراضي قطعة عتاد حقيقية ملكاً خالصاً. وثمنه أعلى ممّا يظنّ أكثر من يطلبه — وهذه المقالة تشرح الاثنين بالحوارات الحقيقية.
كل لقطة في هذه السلسلة من بروكسموكس حقيقي يعمل. نسخة Proxmox VE 9.2 كاملة بأجهزة وحاويات ومخزّنات ومهامّ نسخ فعلية، شغّلناها معزولة لهذا الغرض حتى لا يظهر اسم زبون واحد، ودخلنا لوحتها عبر نفق مشفّر لا عبر الإنترنت. وما تراه في كل صورة هو ما ستراه أنت حرفياً على شاشتك.
أين يُضاف الجهاز
لماذا القائمة فارغة هنا؟ لأن هذا النظام لا يملك IOMMU مفعّلاً. وهذه ليست حالة استثنائية — بل حالة كل سيرفر قبل أن تُعدّه للتمرير. القائمة الفارغة هي أشيع «عطل» يُسأل عنه، وهي في الحقيقة إعداد ناقص لا عطل.
⭐ الواجهة تخبرك بالسبب — في المكان الصحيح
هذه الرسالة هي الجواب الكامل. IOMMU هو ما يسمح بعزل جهاز PCI وتسليمه لضيف بأمان — بلا عزل، لا تمرير. وتفعيله يحتاج خطوتين لا واحدة:
| الخطوة | أين | ماذا |
|---|---|---|
| ١. تفعيل التقنية | BIOS/UEFI | Intel VT-d أو AMD-Vi / SVM — ومعها SR-IOV إن وُجدت |
| ٢. تفعيلها للنواة | سطر إقلاع النواة | intel_iommu=on أو amd_iommu=on مع iommu=pt |
| ٣. تحميل الوحدات | وحدات النواة | عائلة vfio |
| ٤. إعادة إقلاع | — | لا مفرّ منها |
⚠️ أين يُكتب سطر الإقلاع يعتمد على طريقة تنصيبك. النظام الذي يقلع بـGRUB يأخذ التعديل في إعدادات GRUB، والنظام الذي يقلع بـsystemd-boot — وهو الافتراضي حين تُنصّب على ZFS مع UEFI — يأخذه في ملفّ سطر أوامر النواة ويُطبَّق بأداة إقلاع بروكسموكس.
وأشيع سبب لـ«عدّلت GRUB وأعدت الإقلاع ولا شيء تغيّر» هو ببساطة أن النظام لا يستعمل GRUB أصلاً. تحقّق أولاً، ثم عدّل.
الخيارات المتقدّمة — وماذا تعني كل خانة
| الخانة | متى تفعّلها | لماذا |
|---|---|---|
| All Functions | غالباً نعم مع كروت الشاشة | الكارت يظهر كوظيفتين (صورة + صوت HDMI)؛ تمرير واحدة فقط يُربك التعريف |
| Primary GPU | حين يكون الكارت هو شاشة الضيف الوحيدة | يعطّل الشاشة الوهمية — وإن أخطأت فقدت الكونسول |
| PCI-Express | مع q35 والكروت الحديثة | يعرض الجهاز كـPCIe حقيقي لا PCI قديم |
| ROM-Bar | مفعّلة افتراضياً؛ أطفئها عند فشل الإقلاع | بعض الكروت تحتاج ROM مستخرجاً يدوياً |
| MDev Type | مع كروت تدعم التقسيم | يقسم كارتاً واحداً على عدّة ضيوف بدل تخصيصه لواحد |
نوع اللوحة يجب أن يكون q35. اللوحة الافتراضية القديمة (i440fx) لا تعرف PCIe. غيّرها من تبويب Options ← Machine قبل أن تضيف الكارت — لا بعده.
تمرير USB — أسهل بكثير وأكثر فائدة
| الطريقة | تتبع | استعملها حين |
|---|---|---|
| Vendor/Device ID | الجهاز نفسه | جهاز واحد مميّز — يتبعه حتى لو غيّرت المنفذ |
| USB Port | المنفذ الفيزيائي | أجهزة متطابقة لعدّة ضيوف — كلٌّ بمنفذه |
| Spice Port | جهاز المستخدم البعيد | تمرير فلاشة من حاسب المستخدم عبر جلسة SPICE |
⚠️ الفخّ الكلاسيكي: قفلا حماية متطابقان لجهازين مختلفين لهما نفس Vendor/Device ID. اختيارهما بالمعرّف يعني أن الضيفين سيتنازعان على أول قفل يظهر. اربطهما بالمنفذ لا بالمعرّف — وعلّم المنفذين فيزيائياً بلاصق.
⭐ خرائط الموارد — الطريقة الصحيحة في الكلاستر
الفرق جوهري: بلا خرائط تربط الجهاز بعنوان عتاد على عقدة بعينها، ومع الخرائط تربطه باسم منطقي مثل «قفل‑المحاسبة» ثم تخبر الكلاستر أين يوجد هذا الاسم على كل عقدة.
| تمرير مباشر | خريطة موارد | |
|---|---|---|
| ما يُكتب في إعداد الجهاز | عنوان عتاد خام | اسم منطقي |
| عند تغيير فتحة الكارت | يتعطّل | عدّل الخريطة فقط |
| في الكلاستر | مربوط بعقدة واحدة | يعمل على كل عقدة تملك المورد |
| الصلاحيات | تحتاج صلاحية عالية | تُمنَح على الخريطة وحدها |
لماذا تهمّ الصلاحيات هنا؟ إضافة جهاز PCI خام تحتاج صلاحية على مستوى النود — أي أنك تعطي من يفعلها مفاتيح كثيرة. أمّا الخريطة فيمكن منح استعمالها لمستخدم محدود دون أي صلاحية أخرى. هذا وحده سبب كافٍ لاعتماد الخرائط في أي بيئة فيها أكثر من مسؤول.
⭐ الثمن الحقيقي للتمرير
| ما تخسره | التفصيل |
|---|---|
| الترحيل الحيّ | ينتهي تماماً — الجهاز مربوط بعتاد عقدة بعينها |
| اللقطات مع الذاكرة | لا يمكن حفظ حالة عتاد فيزيائي في لقطة |
| التوفّر العالي العملي | العقدة الأخرى قد لا تملك نفس الكارت |
| المشاركة | الجهاز الممرَّر ملك لضيف واحد — لا للمضيف ولا لغيره |
| بساطة الاسترجاع | استرجاع النسخة على عقدة بلا الكارت يفشل الإقلاع |
القاعدة: مرّر فقط ما لا تستطيع العمل بدونه. أغلب من يطلب تمرير كارت شاشة يريد فعلياً أداء رسوميات — وكثير من أحماله يعمل على المعالج بلا أي تمرير وبلا خسارة الترحيل والنسخ. اسأل «ما الذي يفشل بلا التمرير؟» قبل أن تسأل «كيف أمرّر؟».
حالات تستحقّ التمرير فعلاً
| الحالة | البديل إن رفضت التمرير |
|---|---|
| قفل حماية USB لبرنامج محاسبي | خادم أقفال شبكي إن دعمه المورّد |
| ترميز فيديو بكارت رسوميات | ترميز بالمعالج — أبطأ بكثير |
| تدريب نماذج ذكاء اصطناعي | لا بديل عملي |
| كارت شبكة بأداء عالٍ جداً | SR-IOV أو virtio المضبوط |
| جهاز صناعي على منفذ تسلسلي | محوّل شبكي للمنفذ التسلسلي |
أخطاء شائعة وحلولها
| العرَض | السبب | الحلّ |
|---|---|---|
| قائمة الأجهزة فارغة | IOMMU غير مفعّل | فعّله في BIOS وسطر النواة ثم أعد الإقلاع |
| الجهاز يبدأ ثم يتجمّد | الكارت يُستعمَل من المضيف | اربطه بـvfio-pci قبل الإقلاع |
| تمرير الكارت يسحب أجهزة أخرى | مجموعة IOMMU واحدة تضمّ عدّة أجهزة | غيّر الفتحة، أو مرّر المجموعة كلّها |
| الضيف بلا صورة بعد التمرير | Primary GPU مفعّلة والتعريف ناقص | أطفئها حتى ينصّب الضيف التعريف |
| الترحيل صار مرفوضاً | هذا هو السلوك المقصود | أزل التمرير مؤقّتاً للترحيل |
| كل شيء يعمل ثم ينكسر بعد ترقية | تغيّر ترتيب عناوين PCI | استعمل خرائط الموارد بدل العناوين الخام |
أسئلة شائعة
هل يمكن تمرير كارت شاشة إلى حاوية؟
الحاويات تتشارك نواة المضيف، فهي لا «تمرّر» بل تصل إلى ملفّات الجهاز مباشرة. وهذا أبسط وأخفّ من تمرير PCI — ويجعل الحاوية خياراً ممتازاً لأحمال الترميز.
هل أستطيع تقسيم كارت واحد على عدّة أجهزة؟
نعم إن دعم الكارت ذلك — عبر MDev Type. وهذه ميزة كروت محطّات العمل والسيرفرات غالباً، لا كروت الألعاب.
هل التمرير يخفّض الأداء؟
لا — بل هو أسرع من أي تقليد. الخسارة في المرونة لا في السرعة.
لماذا يحذّر بروكسموكس عند تمرير PCI؟
لأن الضيف يصير قادراً على التعامل مع عتاد حقيقي، وهذا يخفّف العزل بينه وبين المضيف. لا تمرّر أجهزة إلى ضيوف لا تثق بمن يديرها.
هل يعمل التمرير داخل بروكسموكس مُتداخِل؟
في الغالب لا — وهو تحديداً سبب فراغ القائمة في لقطات هذه المقالة. وقد آثرنا أن نُريك الحالة الحقيقية ورسالة الواجهة بدل صورة مركّبة.
ماذا بعد؟
عرفنا الكلاستر والترحيل والتمرير. يبقى ما يجب أن يحدث دورياً لا مرّة واحدة: تحديث النظام وترقيته بلا كسر شيء — وهو موضوع المقالة التالية.
سلسلة «بروكسموكس من الداخل» — بلقطات حقيقية من الواجهة.
الأساسيات:
١. الواجهة ·
٢. أول جهاز ·
٣. الحاويات ·
٤. الصور والقوالب ·
٥. الصلاحيات
التخزين:
٦. أنواع التخزين ·
٧. إضافة قرص وتوسيعه ·
٨. ZFS ·
٩. نقل قرص ·
١٠. امتلاء التخزين
الشبكة والأمان:
١١. تبويب الشبكة ·
١٢. الجدار الناري ·
١٣. SDN ·
١٤. تأمين اللوحة ·
١٥. السجلّات
التشغيل اليومي:
١٦. ضبط الموارد ·
١٧. مهمّة النسخ ·
١٨. الاسترجاع ·
١٩. اللقطات ·
٢٠. قراءة الرسوم
التوسّع:
٢١. الكلاستر ·
٢٢. الترحيل الحيّ ·
٢٣. تمرير الأجهزة ·
٢٤. التحديث والترقية ·
٢٥. التوفّر العالي