به هر دستگاه ذخیره سازی اطلاعات Storage گفته میشود.این دستگاه ها را از طریق حالت های مختلف Network ای (فیبر یا متدهای مختلفی که وجود دارد)به سرورها متصل میکنیم و به آن ها متصل میشویم. فضای ذخیره سازی آن ها را میتوانیم روی سرور مشاهده کنیم و به عنوان دیسک از آنها استفاده میکنیم.
سه مدل دستگاه Storage وجود دارد :
- DAS storage
- NAS storage
- SAN storage
- DAS یا Direct-Attached Storage :
DAS یا storage ای که به صورت مستقیم وصل میشود. همه ما از هارد های اکسترنال استفاده میکنیم. هارد های اکسترنال یک DAS محسوب میشوند. یعنی یک Storage ای است که به صورت مستقیم به کامپیوترمان آن را وصل میکنیم. یا Flash memory هم یک DAS است. حتی جالب است بدانید Hard Disk ای که در کیس کامپیوتر یا لپتاپ وصل است نوعی DAS محسوب میشود. وقتی یک سرور را روشن میکنید DAS 1 و DAS 2 را detect میکند و وقتی نگاه میکنید میبینید که دوتا هارد دیسک به این سرور وصل است. بنابراین هر Storage ای که به صورت مستقیم به کامپیوتر وصل میشود و ما هم به صورت مستقیم میتوانیم از فضای ذخیره سازی آ
ن استفاده کنیم یک DAS به حساب می آید. مثل یک External Hard که به کامپیوترمان وصل میکنیم و یک فضای ذخیره سازی اضافه ای را برای ما به وجود می آورد. حالا میخواهیم ببینیم فارغ از Removable بودن DAS به چه کاری می آید ؟
برای مثال میتوانید به چندین سرور متصل کنید و Backup های آن سرورها را روی آن بریزید. آن را جدا کنید تا دفعه ی بعد که میخواهید Backup بگیرید. DAS هم همزمان فقط به یک کامپیوتر وصل میشود. مثل هارد اکسترنال که وقتی به یک سیستم میزنیم به سیستم دیگری نمیتوانیم آن را وصل کنیم. یا اصلا سرور ما فضا کم آورده و پورت دیگری هم ندارد تا بتوانیم به آن هارد دیگری را اضافه کنیم و در این شرایط باید از DAS استفاده کنیم.
حتی میتوانید در این DAS ها چندین Hard Disk بگذارید و آنها را باهم RAID کنید ولی Concept آن ها باز هم همان DAS است.
- NAS یا Network-Attached Storage :
مشخصه ی NAS این است که به ما کارت شبکه میدهد شما روی آن میتوانید IP ست کنید. NAS دقیقا شبیه یک File Server برای ما کار میکند. یعنی NAS ها پروتکل های File Sharing را پشتیبانی میکنند. برای مثال پروتکل File Sharing ئه ویندوز SMB است. پروتکل File Sharing ئه لینوکس هم NFS است. NAS این پروتکل ها را پشتیبانی میکند. بعد یک Control Panel ئه Web Base به ما میدهد.ادمین میتواند به صورت web base به آن NAS وصل شود و هارد دیسک های موجود روی آن را ببینید و میتواند آن ها را RAID و پارتیشن بندی کند یا حتی فرمت کند. حتی این NAS به دومین Join میشود و جالب توجه اینکه در اکتیو دایرکتوری برای آن Computer Account ساخته میشود. نکته ی دیگر این است که شما میتوانید در آن فولدر درست کنید و فولدرها را share کنید. بعد User های داخل شبکه میتوانند با یکی از پروتکل های SMB یا NFS بیان به NAS وصل شوند و مثل یک فایل سرور از آن استفاده کنند. یعنی خیلی راحت به NAS وصل شوید و فولدرهای Share شده ی روی آن را ببینید. ضمنا در زمان وصل شدن میتوانید احراز هویت شوید. وقتی NAS شما به دومین join شده است میتوانید با user های AD به آن متصل شوید و ادمین هم میتواند روی همه ی فولدر ها مانند قبل Permission ست کند.
بنابراین NAS یک فضای ذخیره سازی متصل به Network است و خودش کارت شبکه دارد و پروتکل های File Sharing را پشتیبانی میکند و مثل یک File Server مستقل کار میکند. هرکسی که احراز هویت میشود میتواند به NAS Server وصل شود و فضای روی NAS Server را به صورت فولدر های Share شده ببیند و فایل بگذارد و فایل بردارد.
تنها راه ارتباطاتی با NAS راه Network ای است. مثل یک سرور باید به سوییچ وصل شود تا بقیه ارتباط داشته باشد. شرکت EMC ، NAS ای دارد که روی آن ویندوز Storage Server نصب است.ویندوزی تحت عنوان ویندوز Storage server دارد. NAS های عادی یک Firmware سبکی دارند در این حد که بتوان به آن ها وصل شد و IP ست کرد. NAS هایی داریم که روی آن ها ویندوز Storage Server نصب شده است و این ویندوز مشخصا برای side ئه Storage ای استفاده میشود و بدین شکل نیست که روی آن مثلا DHCP و AD نصب کنیم. نکته ی دیگری که وجود دارد این است که NAS، Multiple Access است. همانطور که گفتیم ما یک DAS را فقط میتوانیم به یک کامپویتر وصل کنیم نه بیشتر. یعنی DAS این امکان را ندارد که همزمان دو کابل وصل شود. اما NAS به این صورت که اگر آن را به شبکه وصل کنیم و IP داشته باشد، n نفر میتوانند همزمان به آن وصل شوند. درست مثل این است که ما یک سروری را داریم و یک سری فولدر را روی آن Share کردیم. اما Multiple Access over the Network است. یعنی حتما باید از طریق Network مثل یک فایل سرور با یکی از پروتکل های File Sharing ای به آن وصل شد. اصطلاحا میگویند که NAS، File Base (File level کار میکند و Block level نیست) کار میکند. فضای روی NAS قبلا توسط Administrator فرمت شده، پارتیشن بندی و Management شده است و File system آن قبلا توسط NAS Administrator تعیین شده است.کلاینت ها در مدیریت آن هیچ دخل و تصرفی ندارند. کلاینت ها فقط میتوانند با یکی از دو پروتکل SMB یا NFS به آن وصل شوند و فایل بگذارند و بردارند. این در حالی است که روی DAS اینگونه نیست. شما وقتی DAS را به کامپیوترتان وصل میکنید در Disk Management تان یک Disk میبینید و آن را مدیریت کنید.
مورد استفاده NAS فارغ از اینکه میتواند File Server باشد یک فضای ذخیره سازی است که on the fly در Network مان وجود دارد. برای مثال میتوانیم وقتی از سرورها Backup گرفته میشود این Backup ها روی NAS ذخیره شوند.
نکته ی دیگری که وجود دارد این است که NAS ها CPU و RAM دارند. ساده ترین NAS ای که راه اندازی میکنیم این است که یک فولدر را Share میکنیم و بقیه به آن وصل میشوند و از آن استفاده میکنند.
- SAN یا Storage Area Network :
شکل ظاهری SAN مانند NAS است و از نظر ظاهری خیلی متفاوت نیستند اما یک تفاوت خیلی بزرگ دارند. تعریف IBM از SAN به این صورت است :
A network behind of a Storage یعنی یک شبکه پشت سر Storage. در تعریفی دیگر به SAN ، آرایه ای از مجموعه ی یک سری از دیسک ها گفته میشود که توسط یک زیرساخت شبکه ای به همدیگر میتوانند متصل بشوند. مهم ترین تفاوتی که SAN با NAS دارد این است که SAN به شما فضای ذخیره سازی RAW میدهد. این در حالی است که NAS فضای ذخیره سازی RAW در اختیار شما قرار نمیدهد. یعنی NAS یک فضایی دارد که قبلا توسط NAS Administrator تان پارتیشن بندی و فرمت و کانفیگ شده است و حتی فولدر هم در آن ساخته شده و شما به عنوان یک کلاینت به آن وصل میشوید و از آن استفاده میکنید. برای مثال شما وقتی وارد یک فولدر Share شده میشوید نمیتوانید آن را فرمت کنید و نهایتا میتوانید آن را یا Read کنید یا Copy کنید. اما SAN فضای ذخیره سازی ای که در اختیار ما قرار میدهد کاملا خام یا RAW است. این فضای RAW ی SAN مانند یک Disk روی کامپیوتر Detect میشود و انگار که یک DAS به آن وصل کردیم.
در SAN هم ادمین به صورت Web base وصل میشود یک کنترل پنل Web base ای دارد. حالا تصور کنید ما web base ای به SAN وصل شدیم و یک تعدادی از Hard Disk ها را RAID 5 کردیم. سپس این فضا را به یک سرور وصل میکنیم. چه طور وصل میکنیم؟ ارتباط با یک SAN میتواند از طریق Network و همچنین فیبر باشد. توجه داشته باشید که این فیبر، فیبر شبکه ای نیست. در حقیقت این مدیای فیبری قرار است روی آن پروتکل Storage فقط رد وبدل بشود. یعنی IP روی آن رد و بدل نمیشود. این فضا را وقتی به یک سرور وصل میکنیم، این سرور این فضا را به عنوان یک دیسک روی خودش میبیند. مثلا تصور کنید شما 6 دیسک 1TB را با هم RAID 5 کردید. حالا وقتی آن را به یک سرور وصل کنیم، سرور آن را به صورت یک دیسک 5TB ای (زیرا RAID 5 شده است) میبیند. یعنی در diskmgmt یک دیسک 5TB ای میبیند. فضایی که دیده میشود کاملا خام است (unallocated space است). پس این فضایی که دیده میشود RAW است. حالا روی سرور فضایی که از طرف SAN آمده را ما میتوانیم تصمیم بگیریم که یک پارتیشن باشد یا n پارتیشن، File System آن را NTFS بگذاریم یا EX3 یا هرچیز دیگر. به طور کلی مدیریت آن دست ماست. تصور کنید این دیسک 5TB را دوتا پارتیشن میکنیم با هر فرمتی که میخواهیم و شروع میکنیم روی آن Data ذخیره میکنیم. ، اما مزیتی که NAS به ما میدهد این است که ما میتوانیم یک سرور دیگری داشته باشیم که آن هم همین فضا را میبیند. حالا Server 1 و Server 2 هر دو همزمان یک دیسک 5TB را میبینند. یعنی همزمان یک فضای ذخیره سازی را میبینند، همزمان Read و Write میکنند. این کاری است که نه NAS میکند ولی DAS نه. ضمنا این فضای ذخیره سازی به صورت Block Level در اختیار ما قرار گرفته است و File Level نیست. چون ما در این سطح که فرمت و پارتیشن و .. دیسک مربوطه چی باشد تصمیم گرفتیم و آن را دقیقا مثل دیسک خودمان میبینیم. اما دیسکی که همزمان چندتا سرور آن را میبینند. به این ساختار اصطلاحا به آن Block Level میگویند. اما SAN با این ساختاری که توضیح دادیم به چه کاری می آید؟ جواب Clustering یا اصطلاحا HA) High Availability) است. تصور کنید که ما یک ESX1 داریم و یک ESX2 (نرم افزار HV روی دوتا سرور نصب شده است). ما 40 تا VM داریم. این 40 تا VM فایل ها را در این فضایی که با SAN فراهم کردیم قرار دادند. این فایل ها هم VHD و VHDX هستند. حالا همانطور که گفتیم این فضای ذخیره سازی مثل دیسک Local میماند، پس ما میتوانیم روی سرور 1 یک VM درست کنیم و آن را روی SAN Storage ذخیره کنیم. حالا اگر برای سرور 2 هم یک VM درست کنیم و آن را روی SAN بگذاریم طبیعی است که این VM های همدیگر را میبینند. در این شرایط اگر یک ESX یا حتی یک سرور Down شود آیا HV یا سرور دیگری میتواند آن VM را بالا بیاورد؟ طبیعتا بله. حالا اگر همه ی این VM ها را تحت سرویس Cluster، HA را روی آنها راه اندازی کنیم این سیستمی که گفتیم کاملا اتوماتیک خواهد شد. یعنی VM اگر Down شود ESX دیگر اتوماتیک متوجه این اتفاق میشود و خودش آن را بالا می آورد. بنابراین امروزه برای راه اندازی Solution های HA ای از SAN استفاده میکنیم که به صورت کلی به آن Clustering گفته میشود.
- مطالب تکمیلی SAN :
فضای ذخیره سازی ای که روی NAS داریم مانند یک فضای ذخیره سازی Local کامپیوتر شما نیست. یک فضای ذخیره سازی Share شده ای هست که شما با یک پروتکل File Sharing ای به آن وصل میشوید. اما SAN یک تفاوتی که دارد این است که فضای ذخیره سازی ای که روی SAN است RAW هست یعنی کاملا خام است و به صورت Block Base در اختیار سرور قرار میگیرد. یعنی اینکه فضای ذخیره سازی ای که روی SAN موجود است و سرورهایی که می آیند به SAN وصل میشوند آن فضا را مثل Disk های Locally خودشان میبینند (مثل دیسک DAS آن را میبینند). یعنی یک فضای ذخیره سازی ای داریم با مدیاهایی مثل فیبر یا Copper به Device ئه SAN متصل میشویم بعد فضای ذخیره سازی روی SAN را مثل دیسک Local خودمان میبینیم و Block Level به آن دسترسی داریم. Block level یعنی اینکه آن فضا را هرطور که بخواهیم میتوانیم فرمت کنیم، پارتیشن بندی کنیم و همچنین OS ای که روی کامپیوتر ما نصب شده است این فضای ذخیره سازی را کاملا مثل دیسک Local خودش میبیند و از آن استفاده میکند. ضمنا فضای ذخیره سازی ای که SAN به این سبک در اختیار ما قرار میدهد Multiple Access در سطح سرویس است. یعنی چندین سرور میتوانند همزمان یک فضای ذخیره سازی موجود روی SAN را به صورت block level ، یعنی عین Local Hard Disk خودشان، همزمان بهش Access داشته باشند. یعنی آن را به صورت Drive های روی سیستم خود آن را میبینند.
توجه : خاصیت HA هم به وسیله ی NAS و هم به وسیله ی SAN قابل پیاده سازی است و اینکه کدام بهتر است بستگی به شرایط شبکه دارد.
همانطور که گفتیم تنها راه ارتباطی با NAS، Copper یا سیم مسی و ارتباط از طریق شبکه است. یعنی NAS شما یک IP دارد و کلاینت شما که میخواهد به آن وصل شود یا سروری که میخواهد به آن وصل شود با استفاده از پروتکل SMB یا NFS به NAS متصل میشود. اما این قضیه در مورد SAN متفاوت است. ما برای ارتباط با SAN روش های مختلفی داریم. یک حالت Network به وسیله ی کابل شبکه (IP Base) است. در حالت Network به وسیله ی کابل شبکه یک سری پروتکل داریم برای برقراری ارتباط :
- ISCSI
- FCoE
این پروتکل ها به شما کمک میکنند تا بتوانید با مدیای Copper (کابل شبکه) به SAN وصل شوید، به شرطی که SAN شما پروتکل های ISCI و FCoE را پشتیبانی کند. البته امروز همه ی SAN ها از این پروتکل ها پشتیبانی میکنند.
- LUN بندی SAN :
یک اصطلاحی به نام LUN یا Logic unique number داریم. یک SAN باید LUN بندی شود. LUN بندی یعنی فضاهای ذخیره سازی روی SAN را اگر خواستید تیکه تیکه کنید (از همدیگر Isolate کنید) سپس RAID اش را مشخص کنید. بعد این LUN را در اختیار یک سری سرور قرار بدهید. برای مثال میگوییم این LUN در اختیار Hyper-V 1 و Hyper-V 2 است. حالا مطابق شکل تیکه ی دیگر از فضا را یک LUN دیگری درست کردیم (LUN 2). حالا این LUN 2 را به Linux 1 و Linux 2. این LUN ها قبلا توسط SAN Administrator ساخته شده و RAID شده است. حالا اگر این فضا را به هر دو سرور وصل کنیم هر دو یک فضای Unallocated خواهند دید و خام است. طبیعی است که یکی از این دو باید این فضا را باید فرمت و پارتیشن بندی کند. به پارتیشن ها در لینوکس LVM گفته میشود. دیسک را مثلا LVM بندی میکنیم (پارتیشن بندی) و هرکاری که کند سرور دیگری هم همان را میبیند. بعد از آن فضایی را دارند که قابل استفاده خواهد بود. پس یک حالت این است که SAN Administrator برای شما قبلا همه ی کانفیگ های دیسک را انجام داده باشد و حالت دیگر هم این است SAN Administrator یک تیکه از فضا را ایزوله کند و در اختیار ادمین یک بخش قرار دهد، ادمین آن بخش خودش Web base وصل شود و آن قسمت را هرجوری که میخواهد RAID و فرمت کند. آن چیزی که مشخص است این است که SAN اگر LUN بندی نشده باشد قابل استفاده نیست و LUN هایی که روی SAN هستند کاملا از همدیگر ایزوله هستند و هر LUN را میتوانیم به یک سری سرور Assign کنیم.
همانطور که گفتیم مدیای وصل شدن به SAN ، Network یا Fiber است. اگر Network باشد از Copper یا همان کابل های مسی استفاده میشود. روی این حالت هم پروتکل TCP/IP است. یعنی پکت ها over TCP/IP جابه جا میشوند. حالا اگر مدیا فیبر باشد قضیه کمی متفاوت خواهد بود. برای مثال تصور کنید ما چهارتا NIC داریم روی دوتا کنترلر که در شکل بالا نیز مشخص است. اگر از کابل شبکه استفاده کنیم سرور را مستقیما به یکی از این پورت ها میزنیم. ولی در ارتباط به وسیله ی فیبر نمیتوان مستقیم این کار را انجام داد. زیرا فیبر را نمیتوان مستقیم به سرور وصل کرد. بدین منظور روی سرورها باید یک کارت الکترونیکی بگذارید که به آن HBA یا Host Boss Adaptor گفته میشود. یعنی یک کارت HBA میخرید و آن را روی Slot مربوطه ی سرور وصل میکنید و بعد به شما خروجی و ورودی فیبر میدهد. بعد یک سر فیبر را به کنترلر خودش و سر دیگر آن را به HBA سرور متصل میکنید.
برای متصل کردن فیبر از یک طرف به Storage و از طرف دیگر به سرور به ماژول SFP احتیاج داریم. تصویر زیر یک HBA است :
این کارت HBA به کنترل مربوطه وصل میشود. همانطور که در شکل مشخص است به این کارت HBA، دوتا SFP میخورد. بنابراین دوتا فیبر هم میتواند به آن وصل شود. شکل زیر نیز یک ماژول SFP را نشان میدهد که داخل پورت های شکل بالا قرار میگیرند و فیبر به آن وصل میشود.
گاهی اوقات ممکن است که SFP بسوزد و ارتباط Storage با Server را قطع کند که در این مواقع باید حتما یک SFP Pair داشته باشید که جایگزین کنید.
- SAN Switch :
سوییچی هست که SFP به آن متصل می گردد و هر ۸ تا پورت آن Bundle شده است و برای هر Bundle ئه ۸ تایی باید لایسنس خرید. . توجه داشته باشید که این سوییچ، سوییچ Network نیست چون ترافیکی که رد و بدل میشود ترافیک Ethernet نیست. یعنی این سوییچ ترافیک مربوط به Storage را میفهمد و جا به جا میکند. تصویر زیر یک SAN Switch را نشان میدهد.
هرکدام از پورتهای نشان داده شده برای فیبر است. SFP ها هم باید جداگانه خریداری کنید.
دوتا پروتکل Storage ای وجود دارد که شما میتوانید از طریق این پروتکل ها ارتباط با Storage را از طریق Network برقرار کنید :
- iSCSI) SCSI over IP)
- FCoE) FC over Ethernet)
این دو پروتکل های Storage ای هستند. یعنی یا با پروتکل SCSI یا با پروتکل SCSI به Storage وصل میشوید اما Media شما شبکه است. اتفاقی که میوفتد به این صورت است که دستورات Storage ای که میخواهیم ارسال کنیم را در دل بسته های TCP/IP میگذاریم و آن را به مقصد ارسال میکنیم. مقصد TCP/IP را میگیرد و از داخل آن دستورات Storage مثل SCSI را میخواند و Read و Write را انجام میدهد و به همین ترتیب بسته را برگشت میدهد. این اصطلاحا iSCSI میشود FCoE هم همینطور است فقط پروتکل آن FC over Ethernet است. هردو پروتکل روی TCP/IP نقل و انتقالات خود را انجام میدهند. نکته ای که وجود دارد این است که اگر از فیبر استفاده کنیم هیچ Encapsulation و Decapsulation ای رخ نمیدهد. با همین دو پروتکل Data ها Encapsulate میشوند و داخل بسته های TCP/IP قرار میگیرند ولی روی فیبر اینگونه نیست و Encapsulate و Decapsulation ای رخ نمیدهد. Overhead و Latency یا Delay در فیبر کمتر خواهد بود.
Storage ای که امکان برقرار ارتباط با iSCSI را به ما میدهد، iSCSI Target نام دارد. . به سرورهایی که به iSCSI Target وصل میشوند iSCSI Initiator گفته میشود. این دو اصطلاح initiator و Target برای زمانی است که ما به وسیله ی iSCSI وصل میشویم نه با فیبر. روی FCoE هم همچین اصطلاحاتی را نداریم.
Concept بعدی این است که ما برای Storage که ۲۴ تا Hard Disk دارد مفاهیم بالا را راه اندازی کردیم. بعد از مدتی فضای Hard Disk کم آوردیم. در اینجا یک Solution این است که یک SAN دیگر بگیریم اما ممکن است برای ما از نظر هزینه بسیار گران تمام شود. اصطلاح تحت عنوان Enclosure داریم که یک کابینت خالیه Hard Disk است. یعنی روی آن Board یه SAN وجود ندارد.Hard را داخل آن میگذاریم و با کابل آن را به SAN وصل میکنیم .
نویسنده : مهندس محمد آجورلو