آموزش رایگان Data Storage Networking؛ LUN چیست و کش چه نقشی در آرایههای ذخیرهساز دارد؟
کشها یکی از مهمترین مفاهیم دنیای ذخیرهسازی و تأثیرگذارترین مؤلفههای آرایههای فلش و هارد دیسکها هستند. در هر دو حالت، کشها با هدف بهبود عملکرد کلی آرایه و عملیات خواندن و نوشتن استفاده میشوند. ما در این مقاله آموزش رایگان Data Storage Networking و مقاله آتی مباحث مختلف مرتبط با کش را بررسی میکنیم. با فالنیک همراه باشید.
قیمت استوریج با توجه به قابلیتهای آن در بازههای قیمتی مختلف عرضه میشود. از طریق کلیک روی خرید استوریج hp، خرید استوریج qnap و استوریج emc میتوانید پس از بررسی مشخصات فنی، محصول مناسب خود را انتخاب کنید. وجود یک استوریج مناسب در کنار سرور قدرتمند، توانایی فوق العاده را در پردازش اطلاعات در اختیار کاربران قرار میدهد. برای خرید سرور میتوانید از مشاوره رایگان متخصصین فنی فالنیک بهرهمند شوید.
LUN چیست؟
دلیل اصلی خرید یک آرایه، آمادهسازی ظرفیت ذخیرهسازی دادهها از طریق ارائه تعدادی دیسک فیزیکی، در دسترس قرار دادن و پیکربندی آنها به منظور توزیع بخشی از ظرفیت آنها است؛ بهگونهای که مدیر فناوری اطلاعات بتواند در صورت لزوم حجم موردنیاز یک برنامه کاربردی را به سادهترین شکل در اختیارش قرار دهد.
دیسکهای موجود در یک آرایه اغلب در مجموعههای کوچکی (گروههای Raid) پیکربندی میشوند تا در برابر خرابی مصون باشند. ریدها (Raid) بر مبنای معماری خاصی تعریف میشوند تا گروهی از دیسکهای فیزیکی بتوانند دادهها را به شکل مطمئنی میزبانی کنند، از دادهها در برابر خرابیها محافظت کنند، مدیریت دیسکها سادهتر شود و همواره نسخه پایدار و مطمئنی از دادهها در اختیار باشد.
یک گروه RAID (که ساختار زیربنایی آن گروه از دیسکهای فیزیکی است) را نمیتوان به روشهای رایج به یک میزبان معرفی کرد. برای انجام اینکار، مدیر فناوری اطلاعات باید یک LUN ایجاد کند تا بتوان این گروه از دیسکها را در اختیار سیستم عامل میزبان قرار دهد تا بتواند از آنها استفاده کند.
قبل از آنکه ادامه مطلب به پرسش LUN چیست؟ پاسخ میدهیم. LUN سرنام Logical Unit Number به معنای شماره واحد منطقی، یک شماره شناسه منحصر به فرد است. شمارهای که با استفاده از آن هارد دیسکهایی که در SAN Storage قرار دادهاید، را شناسایی میکنید. این شماره در قالب یک مفهوم منطقی در اختیار میزبان قرار میگیرد تا امکان مدیریت حجم در سیستمعامل به سادهترین شکل انجام شود. این واحد منطقی میتواند بخش، کل یا حتی مجموعهای از هارد دیسکها باشد که در انکلوژر آرایه ذخیرهساز قرار گرفته است. یک LUN میتواند به مجموعهای از ریدها، یک دیسک منفرد، پارتیشن یا حتی چند پارتیشن روی هارد دیسکهای مختلف اشاره داشته باشد.
برای دریافت قیمت سرور hp یا خرید استوریج با گارانتی معتبر و مشاوره تخصصی رایگان کافیست روی لینک بزنید.
LUN Masking
در سادهترین تعریف LUN Masking به معنای محدودسازی دسترسی به LUNهای خاص توسط میزبانهاست. تکنیک مذکور در آداپتور گذرگاه میزبان (HBA) یا کنترلر ذخیرهسازی انجام میشود تا محدودیتهایی برای میزبانها برای دسترسی به LUNهای خاص ایجاد شود. اصطلاح دیگری که در این زمینه وجود دارد، منطقهبندی LUN است که اغلب روی سوئیچهای شبکه ذخیرهسازی (SAN) انجام میشود و SAN fabric را تقسیمبندی و میزبانها و آرایههای ذخیرهسازی را در نواحی (Zones) گروهبندی میکند.
بهعنوان یک اقدام احتیاطی، تمام LUNهای مرتبط با یک آرایه ذخیرهسازی SAN باید ماسک زده شده باشند. LUN Masking به معنای کنترل سرورهایی است که میتوانند LUN را مشاهده کنند و به آن دسترسی داشته باشند. تکنیک فوق، یک فرآیند کنترلی است که تعریف میکند، کدام HBA میتواند کدام LUNها را مشاهده کند.
بدون استفاده از تکنیک فوق، تمامی LUNهای فرانتاند یک آرایه ذخیرهسازی برای همه سرورهای متصل قابل مشاهده خواهند بود. این موضوع نه تنها مشکلات امنیتی به وجود میآورد، بلکه مشکل خراب شدن اطلاعات را نیز به همراه دارد.
امروزه، LUN Masking تقریباً در بیشتر آرایههای ذخیرهسازی با استفاده از WWPN سرنام World Wide Port Name در محیطهای FC و با استفاده از آدرس IP یا نام واجد شرایط iSCSI (IQN) در محیطهای iSCSI قابل استفاده است. در یک آرایه ذخیرهسازی، دسترسی به LUNها از طریق یک پورت جلویی انجام میشود. آن پورت یک لیست کنترل دسترسی دارد که تعیین میکند کدام میزبان HBA WWPN مجاز به دسترسی به کدام LUN است. با فعالسازی تکنیک فوق، اگر HBA WWPN میزبان شما در لیست کنترل دسترسی پورت جلویی نباشد، نمیتوانید هیچ LUN را در آن پورت مشاهده کنید. پیادهسازی آن ساده است و در تمام آرایههای ذخیرهسازی استاندارد قابل پیادهسازی است.
عدم پاک کردن پیکربندی قدیمی سرورها
نظارت درست و منطقی بر محیطهای شبکه و ذخیرهسازی به این معنی است که تنظیمات و پیکربندیهای اعمال شده روی تجهیزاتی مثل سرورها زمانی که دیگر نیازی به آنها نیست یا کاربری آنها باید تغییر پیدا کند، بهطور کامل پاک شود. اکثر شرکتها در مقطعی یک سرور را از کار میاندازند و سپس آن را برای کار دیگری به خدمت میگیرند، متاسفانه تیم ذخیرهسازی نقش چندانی در این زمینه ندارد.
هنگامیکه سرور بازسازی و روشن میشود، همچنان میتواند تمام فضای ذخیرهسازی یک آرایه که قبلاً به آن متصل بوده را مشاهده کرده و به آن دسترسی داشته باشد. سرور هنوز همان کارتهای HBA را با همان WWPN دارد و این WWPNها هرگز از منطقهبندی SAN و LUN Masking مبتنی بر آرایه پاک نشدهاند.
در بیشتر موارد، این یک مشکل جزئی است، اما اگر سرور قبلاً در کلاستری قرار داشته باشد که به فضای ذخیرهسازی مشترک دسترسی داشته باشد، آنگاه با مشکل بزرگی روبرو میشوید. در گذشته، مردم قوانین ماسکزنی را روی HBA میزبان اعمال میکردند. در محیطهای ذخیرهسازی مدرن، اینکار بهندرت انجام میشود. یکی از دلایل اصلی این است که راهحل مقیاسپذیری نیست و پیادهسازی آن سود کمی نسبت به LUN Masking در ارتباط با آرایه ذخیرهسازی و منطقهبندی SAN fabric دارد. معادل LUN Masking در دنیای NAS، محدود کردن آدرس IP یا نام میزبانی است که حجم/اشتراک در اختیار او قرار میگیرد. علاوه بر آن، میتوانید مجوزهای فایل و پوشه را نیز تنظیم کنید.
اشتراکگذاری LUN
در حالی که این امکان برای چندین میزبان وجود دارد که به یک بلوک LUN دسترسی داشته باشند و آن را به اشتراک بگذارند. هنگام پیادهسازی چنین پیکربندی باید دقت زیادی به خرج دهید. تنها زمانی که چندین سرور باید اجازه دسترسی به یک LUN اشتراکی را داشته باشند و اطلاعاتی در آن بنویسند، باید به سراغ پیکربندی خوشهای بروید و از نرمافزار خوشهبندی مناسبی استفاده کنید تا یکپارچگی دادهها در LUN را تضمین کنید. اینکار به این دلیل انجام میشود تا اطمینان حاصل شود که فقط یک سرور واحد میتواند در یک زمان به LUN اطلاعاتی را بنویسد.
برخی از نرمافزارها و طرحهای پشتیبانگیری ممکن است به سرور چندرسانهای پشتیبان نیاز داشته باشند تا یک LUN اشتراکی را بهعنوان بهگونهای پیکربندی کند تا بتوان از دادههای روی LUN نسخه پشتیبان تهیه کرد. در چنین شرایطی نیازمند نرمافزار مخصوصی هستید که قادر به مدیریت دقیق این فرآیند باشد. اگر دو سرور بدون نرمافزار خوشهبندی مناسب روی یک LUN بنویسند، خراب شدن دادههای LUN حتمی است.
Thick and Thin LUNs
LUN در یک آرایه ذخیرهسازی میتواند Thick یا Thin باشد. بهطور سنتی، آنها از نوع Thick هستند، اما این روزها، نمونههای Thin نیز مشاهده میشوند. ما در مقالات آتی این مدل از LUNها را بررسی خواهیم کرد.
حافظه نهان (Cache)
حافظه نهان قلب یک آرایه ذخیرهسازی است. کش را میتوان یک ایستگاه بزرگ مرکزی در یک آرایه توصیف کرد. در اکثر آرایههای ذخیرهسازی، همه چیز باید از حافظه نهان عبور کند.
همه عملیات نوشتن در آرایه، ابتدا به حافظه نهان وارد میشوند، قبل از اینکه به دیسک پشتیبان منتقل شوند. همه عملیات خواندن نیز قبل از ارسال به میزبان در حافظه نهان قرار میگیرند. حتی ساختن یک کلون از یک حجم در یک آرایه واحد نیازمند آن است که بلوکهای داده از گذرگاه حافظه نهان عبور کرده و سپس در مکانهای جدید کپی شوند.کش نقش مهمی در دنیای ذخیرهسازی دارد.
حافظه نهان برای آرایههای ذخیرهساز مبتنی بر فلش مهم است، اما اهمیت آن کمتر از آرایههای مبتنی بر دیسک است، زیرا رسانههای مبتنی بر حالت جامد در زمینه عملکرد وابستگی شدیدی به کش ندارند و سرعت آنها به لحاظ طبیعی بالا است. آرایههای ذخیرهساز مبتنی بر فلش بیشتر به سمت کش DRAM برای انجام عملیات نوشتن/خواندن و کار با فرادادهها (MetaData) گرایش دارند و جالب آنکه این کش کمتر برای عملیات مرتبط با دادههای کاربری استفاده میشود و بیشتر در خدمت عملیات پسزمینه آرایه ذخیرهسازی است.
مزایای عملکردی کش
دلیل وجود حافظه نهان در یک آرایه ذخیرهسازی مبتنی بر دیسک چرخان، افزایش عملکرد است. اگر بتوان یک عملیات I/O را از حافظه نهان، بدون نیاز به رفتن به دیسک پشتیبان، مدیریت کرد، عملیات صدها برابر سریعتر انجام میشود. یک کش که بهخوبی پیادهسازی شده باشد، ضعفهای دیسکهای مکانیکی را میپوشاند. در رابطه با آرایههای تمام فلش، کش DRAM عملکردی سریعتر از فلش دارد و میتوان از آن به روشی مشابه استفاده کرد، ولی مزایای عملکردی مستقیم آن چندان آشکار نیست.
به همین دلیل ضروری است قبل از آنکه یک تأییده ACK برای میزبان صادر شود، عملیات خواندن و نوشتن به آرایه ابتدا به کشی وارد شود که خود از دو بخش برای نوشتن در نظر گرفته شدهاند. در ادامه این امکان وجود دارد تا عملیات ورودی/خروجی را به دیسک انتقال داد. این رفتار سرعت ACKها را بهبود میبخشد. این روش عملیاتی write-back caching نامیده میشود. اگر خطاهایی در حافظه نهان وجود داشته باشد، بهطوری که اطلاعات دریافتی را نتوان به حافظه نهان وارد کرد، آرایه تا زمانی که دادهها در وضعیت ایمن قرار نگرفته باشند، هیچ پیام ACK صادر نمیکنند.
در این حالت، بازدهی آرایه به میزان قابل توجهی کاهش پیدا میکند، زیرا آرایه به حالت write-through mode وارد میشود و عملیات نوشتن کندتر میشود.
هنگامی که آرایهای به وضعیت write-through mode وارد شود و حجم زیادی از اطلاعات درون حافظه کش قرار داشته باشند، این امکان وجود دارد تا در بازههای زمانی بلندمدت اطلاعاتی که درون حافظه کش قرار دارند، از دست بروند. در این سناریو، حافظه نهان میتواند تا حد مشخصی خدمترسانی کند که اغلب به آن واترمارک در انتظار نوشتن بالا (high write pending watermark) گفته میشود.
پس از وارد شدن به این حالت، آرایهها به حالت فلش اجباری یا حالت دستاژ حافظه نهان اضطراری میروند، جایی که سعی میکنند در حالت write-through بهطور مؤثر فرآیند نوشتن از حافظه نهان را مدیریت کنند و در همان زمان دستوراتی برای میزبانها ارسال و آنها را مجبور میکنند تا سرعت عملیات خواندن/نوشتن را کاهش دهند که به هیچ عنوان اتفاق خوبی نیست.
Read Cache and Write Cache
حافظه کش برای دادههای کاربر به دو بخش خواندنی و نوشتنی تقسیم میشود. آرایهها در تقسیم منابع کش به شکل دستی به حافظه کش خواندنی و نوشتنی توسط کاربر، یکشان نیستند. برخی کارشناسان این پرسش را مطرح میکنند که کدامیک از این دو وضعیت بهتر است، به کاربر اجازه دهیم این فرآیند را مدیریت کند یا به آرایه اجازه دهیم به شکل خودکار این فرآیندها را مدیریت کند. رویکرد اجازه دادن به آرایه برای اخذ تصمیمات، بهتر است، زیرا آرایه میتواند سریعتر از ما به عملیات مختلف واکنش نشان دهد و همچنین تصمیمات کارآمدتری بر مبنای حجم کار ورودی/خروجی فعلی اتخاذ کند.
البته در ارتباط با آرایههای کوچکتر که بارهای کاری خاص و شناخته شدهای دارند، بهتر است این مدیریت توسط کاربر انجام شود، ارتباط با آرایههای بزرگتر با بارهای کاری تصادفی و مکرر در حال تغییر، بهتر است مدیریت کارها به آرایه واگذار شود.
کش داده و کش کنترل (Data Cache and Control Cache)
آرایههای ذخیرهساز سطح بالا اغلب دارای حافظه نهان اختصاصی برای دادههای کنترلی (متا داده) و نواحی اختصاصی برای دادههای کاربر هستند. همین مسئله باعث میشود تا هزینهها افزایش پیدا کند، در مقابل عملکرد و پایداری کش بهبود پیدا کرده و قابل پیشبینیتر شود. آرایههای ذخیرهساز مبتنی بر دیسک برای بهبود عملکرد دادههای کاربر و ذخیره ابردادههایی که باید به سرعت به آنها دسترسی داشته باشند، به حافظه کش وابستگی شدیدی دارند. آرایههای تمام فلش برای بهبود عملکرد دادههای کاربر کمتر به حافظه کش متکی هستند، اما از آن بهطور گسترده برای ذخیره ابرداده استفاده میکنند.
Cache Hits و Cache Misses
یک cache hit هنگامی اتفاق میافتد که درخواست خواندنی توسط آرایه دریافت میشود و دادههای درخواست شده از قبل در حافظه نهان قرار دارند. این موضوع گاهی تحت عنوان read hit نامیده میشود. Read Hit سریعترین نوع عملیات خواندن هستند. البته اگر دادهها در حافظه کش وجود نداشته باشند و باید از دیسک پشتیبان واکشی شوند، در این حالت وضعیتی بهنام Cache Misses یا read miss به وجود میآید.
خطاهای مربوط به عملیات خواندن read misses به طرز قابل توجهی کندتر از read hits هستند. تعداد read hits دریافتی به حجم بارهای کاری I/O بستگی دارد. اگر حجم کاری شما دارای موقعیت ارجاعی بالایی است، باید نتایج خواندن خوبی (read hits) دریافت کنید. در ارتباط با عملیات نوشتن، اگر حافظه نهان بهدرستی کار کند، هنگامیکه دادهها در حافظه نهان قرار میگیرند، میتوان یک ACK برای میزبان صادر و اعلام کرد که cache hit در حال انجام است. در یک آرایه کاملاً کارآمد، باید آمار 100 درصدی در ارتباط با cache hit را مشاهده کنید.
محافظت از کش (Protecting Cache)
از آنجایی که حافظه کش در عملکرد روان یک آرایه نقش کلیدی دارد، اغلب از طریق مکانیزمهایی مثل قرینهسازی و باتریها از آن محافظت میشود. در محیطهای مبتنی بر شبکههای مجازی یا شبکههای SAN که آرایههای ذخیرهساز در آنها قرار دارد، باید به طریقی از کش آرایههای ذخیرهساز اصلی در برابر قطعی برق یا خرابیها محافظت کرد.
راههای مختلفی برای محافظت از حافظه کش وجود دارد، اما قرینهسازی (Mirroring) رایجترین روش است. شرکتها روشهای مختلفی برای قرینهسازی کش ابداع کردهاند. آرایههای طراز اول یک فرمان نوشتن را از طریق پورت جلویی دستگاه دریافت میکنند و آن را به دو ناحیه مجازی کش در قالب یک عملیات واحد روی یک گذرگاه داخلی دوبلکس میکنند. اینکار با هدف نوشتن سریعتر اطلاعات انجام میشود.
در آرایههای رده پایینتر این فرآیند در دو مرحله انجام میشود. ابتدا عملیات نوشتن دریافت و به حافظه نهان یک کنترلکننده تحویل داده میشود، در مرحله دوم، دادهها از طریق یک گذرگاه خارجی مثل اترنت در حافظه نهان کنترلکننده دیگر کپی میشود. این فرآیند کندتر است، زیرا شامل عملیات بیشتر و یک گذرگاه خارجی کندتر است.
همه آرایههای ذخیرهساز خوب، علاوه بر قرینهسازی، دارای باتریهایی هستند که در صورت قطع برق، نیروی کش را تأمین میکنند. به یاد داشته باشید که کش DRAM فرار است و با قطع برق محتویات خود را از دست میدهد. باتریها در چنین شرایطی مانع از دست رفتن اطلاعات درون DRAM میشوند.
باتریها توان کافی را برای آرایه فراهم میکنند تا محتویات حافظه کش را قبل از خاموش شدن کامل به رسانههای ذخیرهساز انتقال دهد یا به اندازه کافی انرژی موردنیاز ماژولهای حافظه درونی دوگانه (DIMM) سرنام Dual Inline Memory Modules را تأمین میکنند تا بتوان پس از بازگشت برق محتویات آنها را بازیابی یا انتقال داد.
در ارتباط با حافظه کش توجه داشته باشید که تنها عملیات نوشتن باید به حافظه کش قرینه شوند. دادههای خوانده شده از قبل در پشتیبان به شکل غیرفرار و در وضعیت محافظتشده قرار دارند، از اینرو، انعکاس عملیات خواندنها در حافظه کش تنها باعث اتلاف حافظه کش میشود. محافظت از حافظه کش با استفاده از باتریها مشکل فرار بودن اطلاعات در کش را برطرف میکنند. حافظه کش غیرفرار اغلب به عنوان حافظه دسترسی تصادفی غیرفرار (NVRAM) سرنام nonvolatile random access memory نامیده میشود.