Abstraction: VMs & Distributed Systems التجريد: الآلات الافتراضية (VMs) والأنظمة الموزعة
The final frontier. Hypervisors, Virtualization Types, and the complexity of Distributed File Systems. الحدود النهائية. الـ Hypervisors، أنواع المحاكاة الافتراضية، وتعقيد أنظمة الملفات الموزعة (Distributed File Systems).
Virtualization المحاكاة الافتراضية (Virtualization)
Virtualization abstracts the hardware of a single computer into several different execution environments.
Host: The underlying hardware system.
Guest: The process or OS running within the VM.
VMM (Hypervisor): The Virtual Machine Manager that creates and runs VMs.
تقوم المحاكاة الافتراضية بتجريد أجهزة الحاسوب الواحد إلى عدة بيئات تنفيذ مختلفة.
المضيف (Host): نظام الأجهزة الأساسي.
الضيف (Guest): العملية أو نظام التشغيل الذي يعمل داخل الـ VM.
VMM (Hypervisor): مدير الآلة الافتراضية الذي ينشئ ويشغل الـ VMs.
- Isolation: One VM crash doesn't affect others. العزل (Isolation): تعطل VM واحدة لا يؤثر على الآخرين.
- Consolidation: Run multiple servers on one physical box (Save power/cooling). الدمج (Consolidation): تشغيل خوادم متعددة على جهاز واحد (توفير الطاقة/التبريد).
- Development: Test new OS without formatting. التطوير: اختبار نظام تشغيل جديد دون إعادة التهيئة.
- Legacy Support: Run old apps on new hardware. دعم القديم (Legacy): تشغيل تطبيقات قديمة على أجهزة حديثة.
The Host OS has 2 modes (User/Kernel). The Guest OS thinks it has 2 modes, but it actually runs in User Mode of the Host.
How to run privileged instructions from the Guest?
نظام تشغيل المضيف لديه وضعين (مستخدم/نواة). نظام تشغيل الضيف يعتقد أن لديه وضعين، لكنه يعمل فعلياً في وضع المستخدم للمضيف.
كيف ننفذ التعليمات ذات الامتيازات من الضيف؟
How It Works كيف يعمل
1. Trap-and-Emulate 1. Trap-and-Emulate
When Guest OS tries to execute a privileged instruction (e.g., disable interrupts), it causes a Trap (error) because it's running in User Mode on the Host.
The VMM catches the trap, emulates the action (simulates the effect on the virtual CPU), and returns control to the Guest.
عندما يحاول نظام الضيف تنفيذ تعليمة ذات امتياز (مثل تعطيل المقاطعات)، يحدث Trap (خطأ) لأنه يعمل في وضع المستخدم على المضيف.
يلتقط الـ VMM هذا الخطأ، ويقوم بـ محاكاة (Emulate) الإجراء (يحاكي التأثير على المعالج الافتراضي)، ويعيد التحكم للضيف.
2. Binary Translation 2. Binary Translation (الترجمة الثنائية)
Used when the Guest CPU architecture is different or "trap-and-emulate" is too slow.
The VMM scans the Guest's code blocks before execution, translates special instructions into safe Host instructions, and caches the result.
Example: Running x86 Windows on ARM Mac.
تستخدم عندما تكون معمارية معالج الضيف مختلفة أو عندما يكون "trap-and-emulate" بطيئاً جداً.
يقوم الـ VMM بمسح كتل كود الضيف قبل التنفيذ، ويترجم التعليمات الخاصة إلى تعليمات آمنة للمضيف، ويخزن النتيجة مؤقتاً.
مثال: تشغيل x86 Windows على ARM Mac.
3. Hardware Support (VT-x / AMD-V) 3. Hardware Support (دعم العتاد VT-x / AMD-V)
Modern CPUs have a special "Root Mode" (for VMM) and "Non-Root Mode" (for Guest).
The Guest can run privileged instructions directly in Non-Root mode without causing traps, drastically improving speed.
المعالجات الحديثة لديها "وضع الجذر" (لـ VMM) و "وضع غير الجذر" (للضيف).
يمكن للضيف تنفيذ التعليمات ذات الامتيازات مباشرة في وضع غير الجذر دون التسبب في Traps، مما يحسن السرعة بشكل كبير.
Hypervisor Types أنواع الـ Hypervisor
Implemented in Firmware/Hardware.
LPARs, IBM Mainframes.
منفذ في البرامج الثابتة/العتاد.
LPARs، حواسيب IBM الكبيرة.
Runs directly on hardware. No Host OS.
VMware ESXi, Xen, Hyper-V.
Use: Datacenters.
يعمل مباشرة على العتاد. لا يوجد نظام تشغيل مضيف.
VMware ESXi, Xen, Hyper-V.
الاستخدام: مراكز البيانات.
Runs as an app on a standard OS.
VMware Workstation, VirtualBox.
Use: Desktop/Dev.
يعمل كتطبيق على نظام تشغيل قياسي.
VMware Workstation, VirtualBox.
الاستخدام: سطح المكتب/التطوير.
Distributed Systems الأنظمة الموزعة (Distributed Systems)
A collection of loosely coupled processors interconnected by a communication network.
Goal: Resource sharing, Computation speedup (Load balancing), Reliability, Communication.
مجموعة من المعالجات المقترنة بشكل غير وثيق والمترابطة عبر شبكة اتصال.
الهدف: مشاركة الموارد، تسريع الحسابات (توزيع الحمل)، الموثوقية، الاتصال.
- Transparency: Users shouldn't know resources are remote. الشفافية (Transparency): لا ينبغي للمستخدمين معرفة أن الموارد بعيدة.
- Reliability: Detect node failure, reconfigure, recover. الموثوقية (Reliability): اكتشاف فشل العقدة، إعادة التكوين، الاسترداد.
- Scalability: Add nodes without stopping system. القابلية للتوسع (Scalability): إضافة عقد دون إيقاف النظام.
Distributed File Systems (DFS) أنظمة الملفات الموزعة (DFS)
Files are spread across multiple servers but appear as a single local tree. (e.g., NFS, AFS, Hadoop HDFS). تنتشر الملفات عبر خوادم متعددة ولكنها تظهر كشجرة محلية واحدة. (مثال: NFS, AFS, Hadoop HDFS).
Location Independence: Name doesn't reveal server. ربط الأسماء المنطقية بالمواقع المادية.
استقلال الموقع: الاسم لا يكشف الخادم.
Problem: Cache Consistency (What if server file changes?). تخزين البيانات البعيدة محلياً للسرعة.
مشكلة: اتساق الكاش (ماذا لو تغير ملف الخادم؟).
The Exam Vault خزنة الاختبار (Exam Vault)
Professor's Secrets & Trap Avoidance أسرار البروفيسور وتجنب الفخاخ
TRAP: Type 1 vs Type 2 VMM فخ: Type 1 مقابل Type 2 VMM
Type 1 (Bare Metal): Runs below the Operating Systems. Faster. Used in Cloud.
Type 2 (Hosted): Runs above a Host OS (like an app). Slower due to extra layer.
Type 1 (Bare Metal): يعمل تحت أنظمة التشغيل. أسرع. يستخدم في السحابة.
Type 2 (Hosted): يعمل فوق نظام تشغيل مضيف (كتطبيق). أبطأ بسبب الطبقة الإضافية.
TRAP: Stateful vs Stateless DFS فخ: Stateful مقابل Stateless DFS
Stateful (AFS): Server tracks open files/clients. Pros: Performance/Consistency. Cons: Crash recovery is hard.
Stateless (NFS): Server tracks nothing. Pros: Crash recovery easy (just retry). Cons: Every request needs full info (file path, offset).
Stateful (AFS): يتتبع الخادم الملفات/العملاء المفتوحين. المزايا: الأداء/الاتساق. العيوب: الاسترداد من التعطل صعب.
Stateless (NFS): لا يتتبع الخادم شيئاً. المزايا: الاسترداد سهل (فقط أعد المحاولة). العيوب: كل طلب يحتاج لمعلومات كاملة (مسار الملف، الإزاحة).
SECRET: Live Migration سر: الهجرة الحية (Live Migration)
Modern VMMs can move a running VM from Server A to Server B without stopping it (zero downtime).
How? Copy memory pages to B while VM runs on A. Copy dirty pages repeatedly until delta is small. Pause A for milliseconds, copy final state, resume on B.
يمكن للـ VMMs الحديثة نقل VM قيد التشغيل من خادم A إلى خادم B دون إيقافها (توقف صفري).
كيف؟ نسخ صفحات الذاكرة إلى B أثناء تشغيل الـ VM على A. نسخ الصفحات المعدلة (Dirty Pages) بشكل متكرر حتى يصبح الفرق صغيراً. إيقاف A لمللي ثانية، نسخ الحالة النهائية، الاستئناف على B.
KEY CONCEPT: Paravirtualization مفهوم مفتاحي: Paravirtualization
Standard virtualization tricks the Guest OS into thinking it's on real hardware (Full Virtualization).
Paravirtualization: Modify the Guest OS to know it's virtualized. It makes special "Hypercalls" to the VMM instead of failing privileged instructions. Much faster.
تخدع المحاكاة الافتراضية القياسية نظام الضيف ليعتقد أنه على عتاد حقيقي (Full Virtualization).
Paravirtualization: تعديل نظام الضيف لـ يعلم أنه افتراضي. يقوم بإجراء "Hypercalls" خاصة للـ VMM بدلاً من فشل التعليمات ذات الامتيازات. أسرع بكثير.