Storage VPS أم VPS عادي: ما الفرق؟
يمنحك Storage VPS سعة تصل إلى 20 تيرابايت بسعر منخفض، لكنه أبطأ من NVMe بنحو 20 مرة. تعرّف إلى الخطة المناسبة للنسخ الاحتياطي وقواعد البيانات.
التخزين مقابل الخادم الافتراضي الخاص العادي: الإجابة المختصرة
يُباع خادم VPS مخصّص للتخزين بوحدة التيرابايت، بينما يُباع خادم VPS العادي وفق عدد الأنوية. تمنحك خطة التخزين عدة تيرابايتات من مساحة قرص بطيئة، مع حصة صغيرة من المعالج. أما الخطة القياسية، فتمنحك قرص NVMe (non-volatile memory express) سريعاً، يكون غالباً أصغر بعشرين مرة، إضافة إلى معالج وذاكرة أكبر مقابل السعر نفسه. وتتطابق بقية خصائص المنتجين: نفس hypervisor، ونفس جلسة root shell، ونفس صورة Ubuntu، ونفس مكدس الشبكة.
هذا الفرق وحده يحدد الاستخدام المناسب. يناسب خادم VPS المخصّص للتخزين أهداف النسخ الاحتياطي، ومكتبات الوسائط، والأرشيفات الباردة، وكل ما تكتبه مرة وتقرأه نادراً. لكنه لا يناسب قاعدة بيانات، ولا أي صفحة ينتظر المستخدم تحميلها، لأن هذه الأحمال تحتاج إلى إكمال عمليات قراءة عشوائية صغيرة خلال نحو ميلي ثانية، ولأن السعة الرخيصة رخيصة تحديداً لأنها لا تستطيع تنفيذ ذلك.
أسماء الخطط التي ستجدها في صفحة الأسعار
تغطي أربعة مسميات معظم مزوّدي الخدمة، لكن اثنين منها فقط لهما معنى محدد.
- Standard VPS. من 2 إلى 8 vCPU، ومن 2 GB إلى 32 GB من RAM، ومن 20 GB إلى 400 GB من NVMe أو SATA SSD الموجود على عقدة المضيف نفسها.
- Storage VPS. من 1 TB إلى 20 TB أو أكثر، وعادةً باستخدام أقراص SATA دوّارة أو أقراص SATA SSD عالية السعة، مع vCPU مشترك من 1 إلى 4 وكمية محدودة من RAM. وغالباً ما تكون تكلفته الشهرية مساوية لتكلفة خطة Standard صغيرة.
- VDS. اختصار لـ virtual dedicated server. لا يوجد تعريف موحّد لهذا المصطلح، ويتناول القسم التالي ما ينبغي قراءته بدلاً منه.
- Block storage volume. ليس خطة بحد ذاته، بل قرص متصل عبر الشبكة تضيفه إلى VPS موجود وتدفع تكلفته لكل GB شهرياً. وهو الوحيد من بين الأنواع الأربعة الذي يمكنك توسيعه من دون نقل الخادم.
هذه النطاقات تمثل الشكل الشائع في السوق، ولا تمثل عرض شركة واحدة بعينها. اسم الخطة يحدد فئة المنتج، ولذلك يوضح تقريباً نوع هيكل الخادم الذي يعمل عليه خادمك. لكنه لا يوضح نوع القرص، أو سياسة تخصيص CPU، أو حصة bandwidth. وهذه هي البنود التي تحدد مدى كفاءة تشغيل عبء العمل لديك.
ما الذي يتغير فعلياً بين الخطتين
نوع القرص وعدده. هذا هو الفرق الكامل بين المنتجين. تضعك الخطة القياسية على وحدة تخزين NVMe تعتمد على الذاكرة الوميضية وتتصل عبر ناقل PCI Express. أما خطة التخزين فتضعك على مصفوفة كبيرة من الأقراص الدوارة أو على أقراص SATA SSD عالية السعة. إذا لم تكن متأكداً من المصطلح المهم بالنسبة إليك، فابدأ بقراءة ما هو VPS المزود بقرص SSD وكيف يختلف عن خطط الأقراص الأقدم ثم الفرق العملي بين NVMe وSATA SSD.
نسبة CPU. تتضمن خطط التخزين عدداً أقل من vCPU لكل تيرابايت، وتكون وحدات vCPU هذه مشتركة تقريباً دائماً مع مستأجرين آخرين. هذا ليس عيباً. تقضي وجهة النسخ الاحتياطي معظم وقتها في انتظار الشبكة، ولذلك لا تحتاج إلى أنوية.
RAM. توفر خطط التخزين RAM أقل مقارنة بسعرها. يظهر أثر ذلك في موضع محدد: البيانات الوصفية لنظام الملفات. تحتاج ملايين الملفات الصغيرة إلى ذاكرة لتخزين ذاكرة التخزين المؤقت للأدلة وinode، ومن دونها تعود كل عملية سرد إلى القرص.
سعة الشبكة. اقرأ هذا السطر بعناية في خطة التخزين. السعة التي لا يمكنك الاستعادة منها ليست نسخة احتياطية. تحقق من سعة النقل الشهرية بوحدة TB ومن سرعة المنفذ بوحدة Gbit/s، لأن استعادة كاملة بحجم 4 TB عبر منفذ بسرعة 1 Gbit/s تستغرق نحو تسع ساعات وفق سرعة الخط، وتستغرق وقتاً أطول بكثير إذا كان المنفذ مشتركاً.
The data behind this chart
[
{
"plan": "Storage VPS, HDD",
"usd_per_tb_month": 3
},
{
"plan": "Storage VPS, SATA SSD",
"usd_per_tb_month": 9
},
{
"plan": "Standard VPS, NVMe",
"usd_per_tb_month": 40
},
{
"plan": "Block storage add-on",
"usd_per_tb_month": 90
}
]هذه أرقام تقريبية مأخوذة من صفحات الأسعار العامة لدى عدة مزودين في August 2026، وليست عرض سعر من شركة واحدة، كما أنها تتغير. أما النمط العام فهو الجزء المستمر. تبلغ تكلفة تيرابايت واحد في خطة تخزين تعتمد على الأقراص الدوارة نحو 3 دولاراً أمريكياً شهرياً. وتبلغ تكلفة التيرابايت نفسه من NVMe في الخطة القياسية نحو 40، بينما يكون volume الكتلي المتصل عبر الشبكة الأغلى بين الخيارات البالغ عددها 4، بسعر 90. للحصول على صورة أوسع عن مكونات الفاتورة الشهرية، راجع ما التكلفة الفعلية لـVPS شهرياً.
لماذا يسير السعر لكل TB والسعر لكل نواة في اتجاهين متعاكسين
تحتوي عقدة التخزين على هيكل يضم من 12 إلى 16 قرصاً كبيراً، مع معالج متوسط واحد أمامها. أما عقدة الحوسبة فعكس ذلك: عدد كبير من الأنوية، وذاكرة RAM كبيرة، وقرصان أو أربعة أقراص NVMe. يبيع مزود الخدمة السعة الفائضة في ذلك الهيكل. لذلك تكون الخطة الرخيصة لكل TB مكلفة لكل نواة، وتكون الخطة الرخيصة لكل نواة مكلفة لكل TB. لا توجد خطة رخيصة في المقياسين معاً، لأن أي هيكل لا يُبنى بهذه الطريقة.
لهذا تكون الإجابة الصادقة عن سؤال «أي خطة أشتري؟» هي غالباً «كلتيهما». يكلف VPS صغير يعمل بأقراص NVMe لتشغيل التطبيق، مع VPS للتخزين يحتفظ بنسخه الاحتياطية، أقل من جهاز واحد يكفي لأداء المهمتين جيداً. عندما تحتاج فعلاً إلى جهاز واحد يؤدي المهمتين، تكون قد تجاوزت نطاق VPS: راجع متى يتفوق الخادم المخصص على VPS.
القراءات العشوائية مهمة لا يستطيع القرص الرخيص تنفيذها
The data behind this chart
[
{
"disk": "7200 rpm SATA HDD",
"random_read_iops": "180",
"typical_latency_ms": 8.5
},
{
"disk": "SATA SSD",
"random_read_iops": "75,000",
"typical_latency_ms": 0.2
},
{
"disk": "NVMe SSD",
"random_read_iops": "600,000",
"typical_latency_ms": 0.08
}
]هذه أرقام من فئة المواصفات الفنية، وليست نتيجة اختبار معياري لدى أي مزود. ينفّذ قرص بسرعة 7200 rpm نحو 180 قراءة عشوائية بحجم 4k في الثانية، لأن الرأس يجب أن يتحرك فعلياً إلى المسار ثم ينتظر وصول القطاع إلى موضعه تحته. ويستغرق ذلك نحو 8.5 ms في كل مرة. لا يحتوي التخزين الفلاشي على أجزاء يجب تحريكها، لذلك يصل SATA SSD إلى نحو 75,000، ويصل جهاز NVMe إلى نحو 600,000 IOPS بزمن استجابة يبلغ 0.08 ms. وهذا فرق يتجاوز ثلاثة آلاف مرة، ولا يمكن لأي مقدار من RAM أو CPU ردمه.
أما العمل المتسلسل فمختلف تماماً، ولهذا تكون خطط التخزين مفيدة أصلاً. لا يزال القرص الدوّار الواحد يقرأ تدفقاً بسرعة تتراوح بين 150 MB/s و250 MB/s، وتقرأ المصفوفة المكوّنة من عدة أقراص بسرعة أعلى. وهذا يشبع منفذاً بسرعة 1 Gbit/s، لذلك يعمل رفع النسخة الاحتياطية بأقصى سرعة للشبكة، ولا يكون القرص أبداً العامل المحدِّد. تعتمد أرقامك أيضاً على طريقة بناء المصفوفة، لأن striping يوزّع الطلب الواحد على عدة أقراص: يشرح كيف يغيّر RAID 10 أداء خطة التخزين ذلك.
ما المقصود بـ VDS؟
غالباً ما يكون هذا مجرد تصنيف تسويقي. توجد 3 معانٍ شائعة، ونادراً ما يوضح المزوّد المعنى المقصود. يستخدم بعض المزوّدين VDS للإشارة إلى أنوية CPU محجوزة أو مخصصة، بحيث لا تنافسك أي جهة مستأجرة أخرى على دورات المعالجة. ويستخدمه بعضهم للإشارة إلى المحاكاة الافتراضية الكاملة، مثل KVM، في مقابل المحاكاة الافتراضية القائمة على الحاويات، مثل LXC أو OpenVZ، حيث تشارك نواة الخادم المضيف. ويستخدمه آخرون دون معنى إضافي، سوى كونه اسماً يبدو أقوى من VPS.
يمكنك التحقق من جزء من ذلك من داخل الخادم. يطبع systemd-detect-virt القيمة kvm على آلة افتراضية كاملة، والقيمة lxc على حاوية. وتعني الحاوية أنه لا يمكنك تحميل وحدات النواة أو تشغيل نواة خاصة بك. أما ادعاء تخصيص CPU، فعليك قياسه باستخدام فحص وقت السرقة الوارد أدناه. تعامل مع الأحرف الواردة في خطة الاستضافة على أنها مؤشر، ومع بنود المواصفات على أنها العقد الفعلي.
ما مواصفات الخطة التي يجب التحقق منها بدلاً من الاسم
- الكلمة المطبوعة بجوار السعة:
NVMeأوSSDأوSATAأوHDD. إذا لم تظهر أي كلمة تشير إلى القرص في الصفحة، فافترض استخدام أرخص عتاد يلائم السعر. - ما إذا كان القرص محلياً على العقدة أو متصلاً عبر الشبكة. يضيف التخزين المتصل عبر الشبكة زمن تأخير إلى كل طلب، لكنه يستمر بعد تعطل العقدة. القرص المحلي أسرع، لكنه يتعطل مع العقدة.
- وصف وحدة المعالجة المركزية: «مخصصة» أو «مثبتة» مقابل «مشتركة» أو «حصة عادلة» أو عدم وجود وصف.
- أي حد لـ IOPS أو MB/s مذكور في الخطة. يجعل حد قدره 500 IOPS نوع القرص غير مهم تقريباً.
- حصة النقل الشهرية وسرعة المنفذ، وهما ما يحددان المدة اللازمة لاستعادة كاملة.
- ما إذا كانت اللقطات والنسخ الاحتياطية وعناوين IP الإضافية مشمولة أو تُحتسب تكلفتها بشكل منفصل.
كيفية التحقق من القرص الذي حصلت عليه فعلياً
ابدأ بما يبلّغه kernel، ثم توقف عن الوثوق به.
lsblk -d -o NAME,ROTA,SIZE,MODEL
df -h /
nproc
free -hتكون ROTA مساوية لـ1 للجهاز الدوّار، و0 لجهاز flash. لا تعتمد عليها داخل VPS: فعادةً ما يبلّغ قرص virtio عن ROTA=0 بغضّ النظر عمّا يوجد خلفه، لأن hypervisor يقدّم جهاز block عاماً، ولا يرى النظام الضيف القرص الفعلي. وتكون MODEL فارغة للسبب نفسه. يصف هذا العلم ما أعلن عنه hypervisor، لا ما يدور في الخزانة، لذلك أجرِ القياس بدلاً من ذلك.
sudo apt update && sudo apt install -y fio
fio --name=randread --filename=/var/tmp/fio.test --size=1G --bs=4k --rw=randread \
--ioengine=libaio --direct=1 --iodepth=32 --runtime=30 --time_based --group_reporting
rm -f /var/tmp/fio.testيتجاوز --direct=1 ذاكرة page cache، لذلك تقيس القرص بدلاً من RAM. السطر الذي يجب قراءته هو read: IOPS=، ويظهر التوزيع تحته في clat percentiles (usec). يبلّغ العرض القياسي لتخزين NVMe عن عشرات الآلاف من IOPS، مع قيمة مئينية 99% أقل من millisecond واحد. أما عرض التخزين الدوّار فيبلّغ عن بضع مئات من IOPS، مع قيمة مئينية 99% من عشرات الـmilliseconds. إذا أبلغ fio بأن محرك libaio غير قابل للتحميل، فاستخدم --ioengine=psync --iodepth=1 وتوقّع أرقاماً أقل، لأن ذلك المحرك يصدر طلباً واحداً في كل مرة.
vmstat 1 5
sudo apt install -y sysstat
iostat -x 1 5في vmstat، يمثّل العمود st زمن steal: نسبة الوقت الذي كان فيه vCPU جاهزاً للتشغيل، بينما منح host دورات المعالجة تلك لـguest آخر. تشير قيمة ثابتة أعلى من 5 إلى أن node يعاني من فرط الاشتراك، وهذا هو الاختبار الفعلي لادعاء «CPU مخصص». في iostat -x، راقب %util وr_await وw_await. تعني قيمة %util القريبة من 100، مع w_await من عشرات الـmilliseconds، أن القرص هو عنق الزجاجة، ولن يفيد أي ضبط للتطبيق. بالنسبة إلى الفحوص الخاصة بـflash، تتعمق مقالة التحقق من أن قرص NVMe هو NVMe فعلاً في هذا الموضوع.
اختيار الخطة وفقاً لحِمل العمل
- هدف نسخ احتياطي لـrestic أو Borg أو rsync. اختر Storage VPS. هذه هي الحالة التي صُمّم لها. تكون عمليات الكتابة كبيرة ومتسلسلة، وتحدث إزالة التكرار على الجهاز المصدر، ولا ينتظر أي مكوّن النتيجة. توجد ملاحظة مهمة: يقرأ
restic pruneوrestic check --read-dataالمستودع بأكمله على أجزاء صغيرة، لذلك خصّص لهما ساعات وشغّلهما وفق جدول زمني. راجع تشغيل نسخ restic الاحتياطية إلى VPS. - مكتبة وسائط لـImmich أو Jellyfin. استخدم Storage VPS للملفات، مع الانتباه إلى المعالج. ينشئ Immich الصور المصغرة ويشغّل مهام تعلّم آلي عند الاستيراد، بينما ينفّذ Jellyfin تحويل الترميز أثناء التشغيل. سيستغرق أول استيراد لـ200 GB من الصور وقتاً طويلاً على vCPU مشتركين. احتفظ بقاعدة البيانات وذاكرة التخزين المؤقت للصور المصغرة على أسرع قرص في الخادم. يشرح استضافة Immich ذاتياً كبديل لـGoogle Photos كيفية تحديد الموارد.
- PostgreSQL أو MySQL. اختر خطة NVMe القياسية. تنتهي كل عملية commit بسجل
fsyncيجب أن يصل إلى تخزين دائم قبل أن تعود المعاملة، لذلك يكون زمن commit هو زمن القرص، بينما تكون عملية البحث في الفهرس قراءة عشوائية بحجم 8 kB، وهي بالضبط العملية التي تؤدي فيها الأقراص الدورانية أسوأ أداء. - تطبيق ويب أو API أو مستوى تحكم. اختر الخطة القياسية. تحتاج هذه الخدمات إلى أنوية وزمن استجابة متوقع، ونادراً ما تحتاج إلى أكثر من 100 GB.
- ذاكرة تخزين مؤقتة لـCI أو مخزن للملفات الناتجة. يعتمد ذلك على حجم الملفات. تُنقل ملفات tarball الكبيرة من خطة التخزين بأقصى سرعة للشبكة. أما ذاكرة التخزين المؤقت التي تضم مئات الآلاف من الملفات الصغيرة وتسحبها عدة runners بالتوازي، فهي عمليات random IO مقنّعة وستؤدي إلى أداء مخيب للآمال.
كيف يبدو الأمر عند تنفيذ ذلك بصورة خاطئة
لا يظهر الفشل فوراً. يبدو أداء قاعدة البيانات على خطة تخزين تعتمد على أقراص دوارة جيداً مع مستخدم واحد، لكنه ينهار مع 10 مستخدمين، لأن الاستعلامات التي كانت تصل إلى RAM تبدأ بالوصول إلى القرص، وتصبح كلفة كل استعلام بالمللي ثانية بدلاً من الميكروثانية. يرتفع متوسط الحمل بينما يوضّح top أن المعالج في حالة خمول غالباً مع قيمة %wa مرتفعة، ما يعني أن العمليات محجوبة بانتظار القرص بدلاً من تنفيذ الحسابات. ويعرض iostat -x 1 أن %util ثابت تقريباً عند 100%.
يوضّح PostgreSQL ذلك صراحةً في سجله الخاص، لأن log_checkpoints مفعّل افتراضياً منذ الإصدار 15:
LOG: checkpoint complete: wrote 8241 buffers (2.5%); ... write=112.402 s, sync=9.318 s, total=121.914 sقيمة sync= هي المهمة. وهي المدة التي انتظرتها checkpoint حتى يعيد fsync النتيجة، ولذلك تعني القيمة المحسوبة بالثواني أن القرص لا يستطيع استيعاب عمليات الكتابة بالسرعة التي تنتج بها قاعدة البيانات هذه العمليات. تتوقف اتصالات العملاء مؤقتاً خلال هذه الفترة، رغم أن الاستعلام نفسه منخفض الكلفة. لا يكمن الحل في تغيير الإعدادات. انقل دليل البيانات إلى NVMe، واترك خطة التخزين للمهمة التي تناسبها: الاحتفاظ بنسخ قاعدة البيانات الاحتياطية.
FAQ
هل VPS للتخزين أبطأ من VPS عادي؟
نعم، وبفارق كبير في عمليات القراءة والكتابة العشوائية. يعالج مخطط التخزين ذي الأقراص الدورانية بضع مئات من الطلبات العشوائية الصغيرة في الثانية، بزمن يقارب 8 ms لكل طلب، بينما يعالج مخطط NVMe عشرات الآلاف منها بزمن أقل بكثير من 1 ms. أما عمليات النقل المتسلسل فالفارق بينهما أصغر بكثير، لأن مصفوفة التخزين تظل تنقل 150 MB/s أو أكثر، وهو معدل يكفي لملء منفذ بسرعة 1 Gbit/s. قِس الأداء على نظامك باستخدام fio --rw=randread --bs=4k --direct=1 قبل اتخاذ القرار.
هل يمكنني تشغيل PostgreSQL على VPS للتخزين؟
يمكنك تشغيله، وسيعمل إلى أن تتجاوز مجموعة العمل سعة RAM. بعد ذلك ينتظر كل commit تنفيذ fsync على قرص بطيء، ويسجّل Postgres ذلك كقيمة sync= بالثواني داخل checkpoint complete، بينما يعرض iostat -x 1 قيمة %util قريبة من 100 مع ارتفاع w_await. الترتيب المعتاد هو استخدام VPS صغير يعمل بـNVMe لقاعدة البيانات، واستخدام VPS للتخزين كوجهة لملفات dump الخاصة بها.
هل يعني VDS أنني أحصل على عتاد مخصص؟
ليس بالضرورة. لا يملك VDS معنى قياسياً. يستخدمه بعض المزوّدين للإشارة إلى أنوية CPU مثبتة، ويستخدمه بعضهم للإشارة إلى المحاكاة الافتراضية الكاملة عبر KVM بدلاً من حاوية تشترك في النواة، بينما يستخدمه آخرون كاسم فقط. شغّل systemd-detect-virt لمعرفة ما إذا كنت تستخدم kvm أو lxc، وشغّل vmstat 1 5 وراقب العمود st لمعرفة ما إذا كان مستأجرون آخرون يستهلكون دورات CPU الخاصة بك.
كيف أعرف ما إذا كان قرص VPS لدي يعمل فعلاً بتقنية NVMe؟
لا تعتمد على lsblk -d -o NAME,ROTA,MODEL، لأن قرص virtio يعرض عادةً ROTA=0 وسلسلة نموذج فارغة، بغض النظر عن العتاد الموجود تحته. شغّل اختبار قراءة عشوائية لمدة 30 ثانية باستخدام fio و--direct=1، واقرأ قيمة IOPS وزمن الاستجابة عند النسبة المئوية 99. إذا كانت النتيجة مئات IOPS بزمن استجابة من خانتين بالميلي ثانية، فهذه مصفوفة أقراص دورانية. أما عشرات الآلاف من IOPS بزمن أقل من ميلي ثانية واحد فتشير إلى تخزين فلاش.