مقارنة بين SAN وNAS
من أكبر مصادر الارتباك التي رأيتها في السنوات الأخيرة هو الخلط بين NAS وSAN. إن فهم ما هو كل منهما سيقطع شوطاً طويلاً نحو فهم مواطن فائدتهما وملاءمتهما.
مهمتنا الأولى هي تجريد المصطلحات التسويقية والانتقال إلى المصطلحات التقنية. يرمز NAS إلى Network Attached Storage (التخزين المرتبط بالشبكة) لكنه لا يعني ذلك بالضبط، ويرمز SAN إلى Storage Area Network (شبكة منطقة التخزين) لكنه يُستخدم عموماً للإشارة إلى جهاز SAN لا إلى الشبكة نفسها. بأدق صورة، SAN هي أي شبكة مخصصة لحركة مرور التخزين، لكن في العالم الحقيقي لا يُستخدم هكذا عادةً. في هذا المقال نتحدث عن أجهزة NAS وSAN وكيفية مقارنتهما لذا لن نستخدم التعريف الذي يشمل الشبكة لا الجهاز. في الواقع، كلٌّ من NAS وSAN مصطلحان تسويقيان وهما متفاوتا الدقة بعض الشيء بسبب ذلك. هما دقيقان بما يكفي للاستخدام في محادثة تقنية عادية طالما عرف جميع الأطراف معناهما، لكن عند مناقشة معناهما يجب تجريد الأسماء المثيرة والتمسك بالأوصاف الأكثر تقنية. كلا المصطلحين، حين يُستخدمان في التسويق، يُوحيان بأنهما تقنية معينة تم تحويلها إلى “جهاز” مما يجعل استخدام المصطلحين معقداً بشكل غير ضروري دون إضافة فائدة.
إذن مهمتنا الأولى هي تعريف ما تعنيه هاتان التسميتان في سياق الأجهزة. كلا الجهازين هو خادم تخزين، ببساطة، مجرد طريقتين مختلفتين لعرض ذلك التخزين على العالم الخارجي.
الأبسط من الاثنين هو SAN وهو بشكل صحيح جهاز تخزين كتل. أي جهاز يعرض تخزينه خارجياً كجهاز كتل يندرج في هذه الفئة ويمكن استخدامه بشكل تبادلي بناءً على طريقة استخدامه. أجهزة تخزين الكتل هي محركات الأقراص الخارجية وDAS (التخزين المباشر المرفق) وSAN. هذه جميعها في الواقع الشيء ذاته. نسميه محرك قرص خارجي حين نوصله بجهاز سطح مكتب. نسميه DAS حين نوصله بخادم. نسميه SAN حين نضيف نوعاً من الشبكات، عادةً محولاً، بين الجهاز والجهاز النهائي الذي يستهلك التخزين. لا يوجد فرق تقني بين هذه الأجهزة. يمكن توصيل SAN تقليدي مباشرةً بجهاز سطح مكتب واستخدامه كمحرك قرص خارجي. يمكن توصيل محرك قرص خارجي بمحول واستخدامه من قِبل أجهزة متعددة على شبكة. الواجهة بين جهاز التخزين والنظام الذي يستخدمه هي الكتلة. البروتوكولات الشائعة لتخزين الكتل تشمل iSCSI وFibre Channel وSAS وeSATA وUSB وThunderbolt وIEEE1394 (المعروف بـFirewire) وFibre Channel over Ethernet (FCoE) وATA over Ethernet (AoE). سيرى الجهاز الذي يتصل بجهاز تخزين كتل التخزينَ دائماً على هيئة محرك قرص، لا أكثر.
أما NAS، المعروف أيضاً بـ“فايلر”، فهو جهاز تخزين ملفات. هذا يعني أنه يعرض تخزينه كنظام ملفات شبكي. لذا فإن أي جهاز يتصل بهذا التخزين لا يرى محرك قرص بل يرى نظام ملفات قابل للتثبيت. حين لا يكون NAS مُعبَّأً كجهاز، نسميه ببساطة خادم ملفات وتقريباً جميع أجهزة الحوسبة من أجهزة سطح المكتب إلى الخوادم تتضمن بعض هذه الوظيفة. البروتوكولات الشائعة لأجهزة تخزين الملفات تشمل NFS وSMB/CIFS وAFP. هناك بروتوكولات أخرى كثيرة، وتقنياً هناك بروتوكولات تخزين ملفات في حالات خاصة مثل FTP وHTTP ينبغي أن تؤهل كذلك أيضاً. كمثال متطرف، خادم الويب التقليدي هو شكل متخصص جداً من أجهزة تخزين الملفات.
ما يفصل بين أجهزة تخزين الكتل وأجهزة تخزين الملفات هو نوع الواجهة التي يقدمانها للعالم الخارجي، أو بعبارة أخرى، أين تقع نقطة الفصل بين جهاز الخادم وجهاز العميل داخل مكدس التخزين.
أصبح شائعاً جداً اليوم أن تتضمن أجهزة التخزين كلاً من تخزين الكتل وتخزين الملفات من الجهاز ذاته. الأنظمة التي تفعل ذلك تُسمى التخزين الموحد. مع التخزين الموحد، يعتمد تحديد ما إذا كان الجهاز يتصرف كجهاز تخزين كتل أو جهاز تخزين ملفات (SAN أو NAS بالمصطلح الشائع) أو كليهما على السلوك الذي تُهيئه للجهاز لا على ما تشتريه. وهذا مهم لأنه يُرسِّخ نقطة أن هذا تمييز بروتوكولي أو واجهة بحتة، لا تمييز في الحجم أو القدرة أو الموثوقية أو الأداء أو الميزات وما شابه ذلك.
كلا النوعين من الأجهزة لديهما خيار، لكن ليس اشتراطاً، لتوفير ميزات موسعة “تحت نقطة الفصل” التي يسلِّمان فيها التخزين للخارج. كلاهما قد يوفر أو لا يوفر RAID وإدارة الأجزاء المنطقية والمراقبة وما إلى ذلك. وتخزين الملفات (NAS) قد يوفر أيضاً ميزات نظام الملفات مثل قوائم التحكم في الوصول Windows NTFS ACLs.
الميزة الرئيسية لتخزين الكتل هي أن الأنظمة المتصلة به تحصل على فرصة للتعامل مع نظام التخزين كما لو كان محرك قرص تقليدياً. هذا يعني أن RAID وإدارة الأجزاء المنطقية، اللذين ربما كانا يجريان بالفعل في “الصندوق الأسود” لجهاز التخزين، يمكن الآن تطبيقهما مجدداً إذا رُغب في ذلك على مستوى أعلى. أجهزة العميل لا تدرك ما نوع الجهاز الذي تراه، فهي تعلم فقط أنه يظهر كمحرك قرص. لذا يمكنك اختيار الوثوق به (الافتراض مثلاً بأن لديه RAID بمستوى كافٍ) أو يمكنك دمج أجهزة تخزين كتل متعددة في RAID تماماً كما لو كانت أقراصاً محلية عادية. هذا نادر للغاية لكنه خيار مثير للاهتمام وهناك منتجات مصممة للاستخدام بهذه الطريقة.
بشكل أكثر شيوعاً، تُطبَّق إدارة الأجزاء المنطقية مثل Linux LVM أو Solaris ZFS أو Windows Dynamic Disks فوق تخزين الكتل المعروض من الجهاز، ثم يُستخدم نظام ملفات فوق ذلك. من المهم تذكر ذلك: مع أجهزة تخزين الكتل يُنشئ نظام الملفات ويُدار من قِبل جهاز العميل لا من قِبل جهاز التخزين. جهاز التخزين لا يدري كيف يُستخدم تخزين الكتل الذي يقدمه ويتيح للمستخدم النهائي استخدامه كيفما يشاء بتحكم كامل. يمتد هذا حتى إلى نقطة أنك تستطيع تسلسل أجهزة تخزين الكتل مع بعضها حيث يوفر أحدها التخزين للتالي مدمجةً ربما في مجموعات RAID – يمكن تراكم أجهزة تخزين الكتل، إلى حد ما، إلى ما لا نهاية.
في المقابل، يحتوي جهاز تخزين الملفات على الجزء الكتلي بأكمله من التخزين لذا يجب معالجة أي RAID وإدارة أجزاء منطقية ومراقبة بواسطة جهاز تخزين الملفات. ثم يُطبَّق نظام ملفات فوق تخزين الكتل. عادةً سيكون هذا EXT4 الخاص بـLinux أو ZFS الخاص بـFreeBSD وSolaris أو Windows NTFS لكن أنظمة ملفات أخرى مثل WAFL وXFS وJFS وBtrFS وUFS وغيرها ممكنة بالتأكيد. على نظام الملفات هذا سيتم تخزين البيانات. لمشاركة هذه البيانات مع العالم الخارجي يُستخدم نظام ملفات شبكي (يُعرف أيضاً بنظام الملفات الموزع) الذي يوفر واجهة نظام ملفات ممكَّنة للشبكة – وNFS وSMB وAFP هي الأكثر شيوعاً لكن، كما هو الحال في أي عائلة بروتوكولات، هناك حالات خاصة عديدة وإمكانيات غريبة.
سيرى الجهاز البعيد الراغب في استخدام التخزين على جهاز تخزين الملفات التخزينَ عبر الشبكة بنفس الطريقة التي يرى بها نظام ملفات محلياً، وهو قادر على تثبيته بطريقة مماثلة. هذا يجعل تخزين الملفات سهلاً وواضحاً بشكل خاص للمستخدم النهائي إذ هو طبيعي في كل جانب. نحن نستخدم أنظمة الملفات الشبكية يومياً في الحوسبة المكتبية العادية. حين “نربط محركاً” في Windows مثلاً، نستخدم نظام ملفات شبكياً.
أحد التمييزات الحرجة بين تخزين الكتل وتخزين الملفات التي يجب التمييز بينها هو أنه، بينما يمكن لكليهما بشكل محتمل الجلوس على شبكة والسماح لأجهزة عميل متعددة بالاتصال بهما، إلا أن أجهزة تخزين الملفات وحدها لديها القدرة على تحكيم ذلك الوصول. هذا مهم جداً ولا يمكن التغاضي عنه.
يظهر تخزين الكتل كمحرك قرص. إذا وصَّلت محرك قرص بجهازَي حاسوب أو أكثر في وقت واحد، يمكنك تخيل ما سيحدث – كل منهما لن يعلم بالآخر وسيكون غير مدرك للملفات الجديدة التي يُنشئها الآخر أو التغييرات التي يجريها وستبدأ الأنظمة سريعاً في الكتابة فوق بعضها. إذا كان نظام ملفاتك للقراءة فقط على جميع العقد فهذه ليست مشكلة. لكن إذا كان أي نظام يكتب أو يغير البيانات، ستواجه الأنظمة الأخرى مشكلات. يؤدي هذا عادةً إلى تلف البيانات بسرعة كبيرة، عادةً في غضون دقائق. لرؤية هذا بشكل واضح، تخيل وجود نظامين أو ثلاثة من أنظمة العميل كلها تعتقد أن لها وصولاً حصرياً إلى محرك قرص وجعلها جميعها تُجري إلغاء تجزئة في الوقت ذاته. ستُشتَّت جميع البيانات على القرص في ثوانٍ.
من ناحية أخرى، يتمتع جهاز تخزين الملفات بتحكيم طبيعي إذ يتعامل نظام الملفات الشبكي مع الاتصالات للوصول إلى نظام الملفات الحقيقي، وأنظمة الملفات بطبيعتها متعددة المستخدمين. لذا إذا أجرى نظام متصل بجهاز تخزين ملفات تغييراً، فإن جميع الأنظمة ستدرك التغيير فوراً ولن “تدوس على أصابع بعضها.” حتى لو حاولت ذلك فإن نظام الملفات في جهاز تخزين الملفات يُحكِّم الوصول وله الكلمة الفصل ولا يسمح بحدوث ذلك. هذا يجعل مشاركة البيانات سهلة وشفافة للمستخدمين النهائيين. (أستخدم مصطلح “المستخدمون النهائيون” هنا ليشمل مسؤولي الأنظمة.)
هذا لا يعني عدم وجود وسيلة لمشاركة التخزين من جهاز كتل، لكن لا يمكن لجهاز تخزين الكتل نفسه التعامل مع تحكيم الوصول. يمكن جعل أجهزة تخزين الكتل “قابلة للمشاركة” باستخدام ما يُعرف بـنظام ملفات مُجمَّع. نشأت هذه الأنواع من أنظمة الملفات حين كانت مجموعات خوادم تشارك موارد التخزين من خلال توصيل خادمين بوحدة تحكم SCSI على طرفَي كابل SCSI واحد مع توصيل الأقراص المشتركة في منتصف الكابل. الوسيلة الوحيدة التي يمكن بها للخوادم التواصل كانت من خلال نظام الملفات نفسه فطُوِّرت أنظمة ملفات مُجمَّعة خاصة سمحت بالاتصالات بين الأجهزة وتنبيه كل منها بالتغييرات التي يُجريها الآخر من خلال نظام الملفات ذاته. هذا يعمل بشكل مفاجئ جيداً لكن أنظمة الملفات المُجمَّعة نادرة نسبياً إذ يُعد GFS الخاص بـRed Hat وOCFS الخاص بـOracle من أشهرها في عالم خوادم الشبكات التقليدية، وقد أصبح VMFS الخاص بـVMware الأحدث بكثير معروفاً على نطاق واسع جداً من خلال استخدامه لتخزين المحاكاة الافتراضية. قد لا يتوفر للمستخدمين العاديين بمن فيهم مسؤولو الأنظمة أنظمة ملفات مُجمَّعة أو قد تكون لديهم احتياجات لا تسمح باستخدامها. ومن الملاحظات المهمة أيضاً أن التحكيم يُعالَج عبر الثقة لا التطبيق كما هو الحال مع جهاز تخزين الملفات. مع جهاز تخزين الملفات، يتعامل الجهاز نفسه مع تحكيم الوصول ولا توجد طريقة للالتفاف حوله. أما مع أجهزة تخزين الكتل التي تستخدم نظام ملفات مُجمَّعاً، فإن أي جهاز يتصل بالتخزين يمكنه تجاهل نظام الملفات المُجمَّع وتجاوز التحكيم السلبي ببساطة – وهذا بسيط للغاية لدرجة أنه سيحدث عادةً بشكل عرضي. يمكن أن يحدث عند تثبيت نظام الملفات وتحديد نوع نظام الملفات الخاطئ أو من خلال سوء تصرف محرك أو أي إجراء خبيث. لذا يُعد أمن الوصول أمراً بالغ الأهمية على مستوى الشبكة لحماية تخزين مستوى الكتل.
المفهوم الأساسي المُكشوف هنا هو أن أجهزة تخزين الكتل هي أجهزة غبية (فكِّر في محرك قرص مُعزَّز) وأجهزة تخزين الملفات هي أجهزة ذكية (فكِّر في خادم تقليدي). يجب أن تحتوي أجهزة تخزين الملفات على “حاسوب” عامل كامل مع معالج وذاكرة وتخزين ونظام ملفات وشبكات. قد تحتوي أجهزة تخزين الكتل على هذه الأشياء لكن لا يلزمها ذلك. في أبسط صورها، يمكن لأجهزة تخزين الكتل أن تكون مجرد محرك قرص مع محول USB أو Ethernet مرفق به. ومن الشائع في الواقع أن تكون مجرد وحدة تحكم RAID مضافاً إليها محولات Ethernet أو Fibre Channel للاتصال.
في كلتا الحالتين، سواء أجهزة تخزين الكتل أو أجهزة تخزين الملفات، يمكننا التقليص إلى أجهزة بسيطة جداً أو التوسع إلى أنظمة “مستوى الحاسوب المركزي” فائقة التوافر. كلاهما يمكن أن يكون سريعاً أو بطيئاً. أحدهما ليس أفضل أو أسوأ من الآخر، أحدهما ليس أعلى أو أدنى، أحدهما ليس أكثر أو أقل استحقاقاً للمؤسسات – هما مختلفان ويخدمان أغراضاً مختلفة بشكل عام. وهناك ميزات متقدمة قد يحتوي عليها أيٌّ منهما أو لا يحتوي. يكمن التحدي في معرفة أيهما مناسب لأي عمل.
أحب التفكير في بروتوكولات تخزين الكتل كتدفق “الإخراج القياسي”، كثيراً مثل سطر الأوامر. لذا فإن المستوى الأساسي لأي “خط أنابيب” تخزين هو دائماً جهاز كتل ويمكن أن توجد أجهزة كتل عديدة أو تحولات مع تمرير كل منها إلى الآخر طالما بقي الإخراج بروتوكول تخزين كتل. نُنهي السلسلة فقط حين نُطبِّق نظام ملفات. بهذه الطريقة يمكن تطبيق RAID للأجهزة وRAID الشبكي وإدارة الأجزاء المنطقية وما إلى ذلك في تركيبات متعددة حسب الحاجة. تخزين الكتل ليس مجرد كتل بيانات فعلاً بل هو لبنات بناء أنظمة التخزين.
نقطة مثيرة للاهتمام جداً هي أنه بما أن أجهزة تخزين الكتل يمكن تسلسلها وبما أن أجهزة التخزين الشبكي يجب أن تقبل تخزين الكتل كـ“مدخل” لها، فمن الشائع جداً في الواقع استخدام جهاز تخزين كتل (SAN) كتخزين احتياطي لجهاز تخزين ملفات (NAS)، خاصةً في الأنظمة عالية المستوى. يمكنهما التعايش داخل هيكل واحد أو يمكنهما العمل بشكل تعاوني على الشبكة.
