أنظمة التخزين الشامل
تغطي هذه الوحدة الهيكل المادي لأجهزة التخزين الثانوي (HDDs و NVMs)، وخصائص الأداء، وخوارزميات جدولة الأقراص، وإدارة التخزين، وهياكل مصفوفة الأقراص المستقلة المتكررة (RAID).
Mass-Storage Systems
This module covers the physical structure of secondary storage devices (HDDs and NVMs), performance characteristics, disk scheduling algorithms, storage management, and RAID structures.
أهداف التعلم
- وصف الهيكل المادي لأجهزة التخزين الثانوي وتأثير هيكل الجهاز على استخداماته.
- شرح خصائص الأداء لأجهزة التخزين الشامل.
- تقييم خوارزميات جدولة الإدخال والإخراج (I/O).
- مناقشة خدمات نظام التشغيل المقدمة للتخزين الشامل، بما في ذلك تقنية RAID.
- Describe the physical structure of secondary storage devices and the effect of a device’s structure on its uses.
- Explain the performance characteristics of mass-storage devices.
- Evaluate I/O scheduling algorithms.
- Discuss operating-system services provided for mass storage, including RAID.
1 أداء محركات الأقراص الصلبة (HDD)
1 Hard Disk Drive (HDD) Performance
يعتمد أداء القرص الصلب على وقت تحرك الذراع (وقت البحث) ووقت دوران القرص (التأخير الدوراني).
HDD performance depends on the arm movement (seek time) and disk rotation (rotational latency).
تتكون محركات الأقراص الصلبة من أقراص تدور بسرعات تتراوح بين 60 إلى 250 مرة في الثانية.
يتم قياس الأداء من خلال وقت البحث (Seek Time) وهو الوقت اللازم لتحريك ذراع القرص إلى الأسطوانة المطلوبة، والتأخير الدوراني (Rotational Latency) وهو الوقت اللازم ليدور القطاع المطلوب تحت رأس القراءة/الكتابة.
زمن الوصول (Access Latency) هو مجموع هذين الوقتين.
HDDs consist of platters rotating at 60 to 250 times per second.
Performance is measured by Seek Time (time to move the disk arm to the desired cylinder) and Rotational Latency (time for the desired sector to rotate under the disk head).
Access Latency is the sum of both.
لحساب متوسط وقت الإدخال/الإخراج (I/O)، نجمع متوسط زمن الوصول مع (كمية البيانات المراد نقلها / معدل النقل) بالإضافة إلى العبء الإضافي للمتحكم (Controller Overhead).
متوسط وقت البحث يُحسب عادة بناءً على ثلث (1/3) المسارات.
To calculate Average I/O time, we sum the average access time + (amount to transfer / transfer rate) + controller overhead.
Average seek time is typically calculated based on 1/3 of the tracks.
لماذا يُعتبر وقت البحث (Seek Time) عادةً أكبر عنق زجاجة في أداء الأقراص الصلبة مقارنة بمعدل النقل؟ Why is seek time usually considered the biggest bottleneck in HDD performance compared to transfer rate?
لأن وقت البحث يعتمد على حركة ميكانيكية فيزيائية (تحريك الذراع)، وهي أبطأ بكثير من النقل الإلكتروني للبيانات.
Because seek time relies on physical mechanical movement (moving the arm), which is vastly slower than electronic data transfer.
2 أجهزة الذاكرة غير المتطايرة (NVM)
2 Nonvolatile Memory (NVM) Devices
أقراص سريعة بدون أجزاء متحركة، تُقرأ وتُكتب في صفحات، وتُمسح في كتل.
Fast drives with no moving parts, read/written in pages, and erased in blocks.
أجهزة NVM (مثل SSDs) أسرع وأكثر موثوقية من HDDs لعدم وجود أجزاء متحركة، مما يلغي وقت البحث والتأخير الدوراني.
ومع ذلك، لها تحديات: تُقرأ وتُكتب البيانات بزيادات تسمى 'صفحات' (Pages)، ولكن لا يمكن الكتابة فوقها مباشرة؛ يجب مسحها أولاً بزيادات أكبر تسمى 'كتل' (Blocks).
NVM devices (like SSDs) are faster and more reliable than HDDs because they have no moving parts, eliminating seek time and rotational latency.
However, they have challenges: data is read and written in 'pages', but cannot be overwritten in place; it must first be erased in larger 'blocks'.
لإدارة هذه التحديات، يستخدم المتحكم خوارزميات مثل طبقة ترجمة الفلاش (FTL) لتتبع الكتل المنطقية الصالحة، وجمع القمامة (Garbage Collection) لتحرير مساحة الصفحات غير الصالحة، وتسوية التآكل (Wear Leveling) لضمان الكتابة بالتساوي على جميع الخلايا لأن لها عمر افتراضي محدود (حوالي 100,000 عملية مسح).
To manage these challenges, the controller uses algorithms like the Flash Translation Layer (FTL) to track valid logical blocks, Garbage Collection (GC) to free invalid page space, and Wear Leveling to write equally to all cells since they have a limited lifespan (~100,000 erases).
| HDD | NVM (SSD) | |
|---|---|---|
| الأجزاء المتحركةMoving Parts | يوجد (أقراص دوارة وذراع)Yes (spinning platters, moving arm) | لا يوجدNone |
| وقت البحث والتأخير الدورانيSeek Time & Rotational Latency | موجود ويؤثر على الأداءPresent, impacts performance | غير موجودNone |
| طريقة الكتابةWrite Method | يمكن الكتابة فوق البيانات مباشرةCan overwrite in place | يجب مسح الكتلة أولاً قبل الكتابةMust erase block before writing |
| العمر الافتراضيLifespan | طويل جداً لعمليات الكتابةVery long for writes | محدود بعدد مرات المسح (~100,000)Limited by erase cycles (~100,000) |
ماذا سيحدث لمحرك SSD إذا لم يتم استخدام خوارزمية تسوية التآكل (Wear Leveling)؟ What would happen to an SSD if wear leveling algorithms were not used?
ستتآكل بعض الخلايا التي يتم الكتابة عليها بشكل متكرر بسرعة وتتلف، مما يقلل بشكل كبير من العمر الافتراضي الإجمالي للمحرك.
Cells that are frequently written to would wear out and fail very quickly, drastically reducing the overall lifespan of the drive.
3 جدولة الأقراص (Disk Scheduling)
3 Disk Scheduling
ترتيب طلبات الإدخال/الإخراج لتقليل حركة ذراع القرص وزيادة سرعة الاستجابة.
Ordering I/O requests to minimize disk arm movement and increase response speed.
نظام التشغيل مسؤول عن استخدام الأجهزة بكفاءة، مما يعني تقليل وقت البحث.
الخوارزميات الشائعة تشمل:
- FCFS (من يأتي أولاً يُخدم أولاً)،
- SCAN (خوارزمية المصعد: يتحرك الذراع من طرف لآخر ويخدم الطلبات في طريقه)،
- و C-SCAN (مثل SCAN ولكن يعود للبداية فوراً دون خدمة طلبات في طريق العودة لتوفير وقت انتظار أكثر تجانساً).
The OS is responsible for using hardware efficiently, which means minimizing seek time.
Common algorithms include:
- FCFS (First-Come, First-Served),
- SCAN (Elevator algorithm: arm moves from one end to the other servicing requests),
- and C-SCAN (Circular SCAN: returns to the beginning immediately without servicing requests on the return trip to provide a more uniform wait time).
لتجنب مشكلة المجاعة (Starvation) في الخوارزميات التي تعتمد على المسافة (مثل SSTF)، يطبق نظام Linux مجدول المواعيد النهائية (Deadline Scheduler).
يحتفظ بطوابير منفصلة للقراءة والكتابة، ويعطي الأولوية للقراءة، ويقوم بتجميع الطلبات (Batching) مع التحقق من الطلبات القديمة لضمان عدم تجاهلها.
To avoid starvation in distance-based algorithms (like SSTF), Linux implements a Deadline Scheduler.
It maintains separate read and write queues, gives read priority, and batches requests while checking for old requests to ensure they are not starved.
لماذا يعطي مجدول Linux الأولوية لعمليات القراءة على عمليات الكتابة؟ Why does the Linux deadline scheduler give priority to read operations over write operations?
لأن العمليات (Processes) غالباً ما تتوقف (Block) وتنتظر نتائج القراءة لمواصلة التنفيذ، بينما يمكن لعمليات الكتابة أن تتم في الخلفية.
Because processes are more likely to block (wait) on a read operation to continue execution, whereas writes can often be buffered and done asynchronously.
4 طرق توصيل التخزين
4 Storage Attachment
كيفية توصيل الأقراص بالحواسيب: محلياً (DAS)، عبر الشبكة كملفات (NAS)، أو عبر الشبكة ككتل (SAN).
How disks connect to computers: locally (DAS), over network as files (NAS), or over network as blocks (SAN).
يمكن الوصول إلى التخزين بثلاث طرق رئيسية:
- التخزين المرفق بالمضيف (Host-attached) عبر منافذ محلية مثل SATA أو NVMe.
- التخزين المرفق بالشبكة (NAS) حيث يتم توفير التخزين عبر شبكة (مثل LAN) باستخدام بروتوكولات مثل NFS و CIFS للوصول إلى الملفات.
- شبكة منطقة التخزين (SAN) وهي شبكة مخصصة تربط خوادم متعددة بمصفوفات تخزين متعددة، وتوفر وصولاً على مستوى الكتل (Block-level) باستخدام بروتوكولات مثل Fibre Channel أو iSCSI.
Storage can be accessed in three main ways:
- Host-attached via local ports like SATA or NVMe.
- Network-Attached Storage (NAS) where storage is made available over a network (like LAN) using protocols like NFS and CIFS for file-level access.
- Storage Area Network (SAN), a dedicated network connecting multiple servers to multiple storage arrays, providing block-level access using protocols like Fibre Channel or iSCSI.
التخزين السحابي (Cloud Storage) يشبه NAS ولكنه يُستخدم عبر الإنترنت أو WAN ويعتمد على واجهات برمجة التطبيقات (APIs) بدلاً من بروتوكولات الملفات التقليدية، وذلك للتعامل مع زمن الوصول العالي وسيناريوهات الفشل.
Cloud Storage is similar to NAS but accessed over the Internet or WAN and is API-based rather than using traditional file protocols, to better handle high latency and failure scenarios.
| NAS | SAN | |
|---|---|---|
| مستوى الوصولAccess Level | مستوى الملفات (File-level)File-level | مستوى الكتل (Block-level)Block-level |
| البروتوكولات الشائعةCommon Protocols | NFS, CIFSNFS, CIFS | Fibre Channel, iSCSIFibre Channel, iSCSI |
| الشبكة المستخدمةNetwork Used | شبكة محلية عادية (LAN/TCP/IP)Standard LAN (TCP/IP) | شبكة تخزين مخصصةDedicated storage network |
لماذا تُفضل الشركات الكبرى استخدام SAN بدلاً من NAS لقواعد البيانات الضخمة؟ Why do large enterprises prefer using SAN over NAS for massive databases?
لأن SAN يوفر وصولاً على مستوى الكتل (Block-level) وهو أسرع وأكثر كفاءة لقواعد البيانات، بينما NAS يضيف عبء معالجة نظام الملفات عبر الشبكة.
Because SAN provides block-level access which is faster and more efficient for databases, whereas NAS adds the overhead of file system processing over the network.
5 هيكل مصفوفة الأقراص المستقلة المتكررة (RAID)
5 RAID Structure
استخدام أقراص متعددة معاً لزيادة السرعة (Striping) أو الموثوقية (Mirroring/Parity).
Using multiple disks together to increase speed (Striping) or reliability (Mirroring/Parity).
تقنية RAID (مصفوفة متكررة من الأقراص غير المكلفة) تحسن الأداء والموثوقية.
- RAID 0 (التقسيم الشريطي - Striping) يوزع البيانات عبر الأقراص لزيادة السرعة لكن بدون تكرار.
- RAID 1 (النسخ المتطابق - Mirroring) ينسخ البيانات تماماً على قرص آخر للموثوقية.
- RAID 4, 5, 6 تستخدم التكافؤ (Parity) لتوفير التكرار باستخدام مساحة أقل من النسخ المتطابق.
يمكن دمج المستويات مثل RAID 1+0 أو RAID 0+1.
RAID (Redundant Array of Inexpensive Disks) improves performance and reliability.
- RAID 0 (Striping) distributes data across disks for speed but offers no redundancy.
- RAID 1 (Mirroring) duplicates data exactly on another disk for reliability.
- RAID 4, 5, 6 use block-interleaved parity to provide redundancy with less overhead than mirroring.
Levels can be nested, like RAID 1+0 or RAID 0+1.
تقنية RAID تزيد من متوسط الوقت حتى الفشل (MTTF).
لتقليل متوسط وقت الإصلاح، تُستخدم أقراص Hot Spares (أقراص احتياطية ساخنة) غير مخصصة، تحل تلقائياً محل القرص الفاشل وتبدأ في إعادة بناء البيانات عليه فوراً.
RAID increases the Mean Time To Failure (MTTF).
To decrease the Mean Time to Repair, systems use Hot Spares—unallocated disks that automatically replace a failed disk and immediately begin rebuilding the data.
لماذا يُعتبر RAID 1+0 أكثر أماناً من RAID 0+1 في حالة فشل قرص واحد؟ Why is RAID 1+0 considered safer than RAID 0+1 in the event of a single disk failure?
في RAID 1+0 (شريط من المرايا)، فشل قرص واحد يؤثر فقط على مرآة واحدة، وتبقى البيانات متاحة. في RAID 0+1 (مرآة من الأشرطة)، فشل قرص واحد يُسقط شريطاً كاملاً، مما يترك النظام يعتمد بالكامل على الشريط الآخر بدون تكرار.
In RAID 1+0 (stripe of mirrors), a single disk failure only degrades one mirror, leaving data intact. In RAID 0+1 (mirror of stripes), a single disk failure takes down an entire stripe, leaving the system running on the single remaining stripe with no redundancy.
6 إدارة أجهزة التخزين
6 Storage Device Management
تهيئة القرص فيزيائياً ومنطقياً ليتمكن نظام التشغيل من استخدامه والإقلاع منه.
Formatting the disk physically and logically so the OS can use it and boot from it.
إدارة التخزين تتضمن:
- التهيئة منخفضة المستوى (Physical Formatting) لتقسيم القرص إلى قطاعات يمكن للمتحكم قراءتها (تحتوي على ترويسة، بيانات، ورمز تصحيح الأخطاء ECC).
- ثم التقسيم (Partitioning) لإنشاء أقراص منطقية.
- وأخيراً التهيئة المنطقية (Logical Formatting) لإنشاء نظام الملفات.
للإقلاع، يُخزن برنامج Bootstrap loader في كتل الإقلاع (Boot blocks) في قسم الإقلاع.
Storage management involves:
- Low-level formatting (Physical Formatting) to divide the disk into sectors the controller can read (containing header, data, and ECC).
- Then Partitioning to create logical disks.
- Finally, Logical formatting to make a file system.
For booting, a Bootstrap loader program is stored in the boot blocks of the boot partition.
بعض التطبيقات (مثل قواعد البيانات) تفضل الوصول المباشر للقرص (Raw disk access) لتجاوز نظام التشغيل وإدارة الكتل بنفسها.
كما يستخدم نظام التشغيل تقنيات مثل Sector Sparing للتعامل مع القطاعات التالفة (Bad blocks) بشفافية.
Some apps (like databases) prefer Raw disk access to bypass the OS and manage blocks themselves.
The OS also uses methods like Sector Sparing to handle bad blocks transparently.
لماذا تفضل أنظمة قواعد البيانات أحياناً الوصول المباشر (Raw Disk Access) بدلاً من استخدام نظام ملفات نظام التشغيل؟ Why do database systems sometimes prefer Raw Disk Access instead of using the OS file system?
لأن قواعد البيانات تمتلك خوارزميات التخزين المؤقت (Caching) والجدولة الخاصة بها والتي تكون غالباً أكثر كفاءة لاحتياجاتها من الخوارزميات العامة لنظام التشغيل.
Because databases have their own caching and scheduling algorithms that are often more highly optimized for their specific workloads than the general-purpose OS algorithms.