Data Storage Networking؛ LUN چیست و کش چه نقشی در آرایههای ذخیرهساز دارد؟-بخش دوم
Data Storage Networking؛ LUN چیست و کش چه نقشی در آرایههای ذخیرهساز دارد؟-بخش دوم
Data Storage Networking؛ LUN چیست و کش چه نقشی در آرایههای ذخیرهساز دارد؟-بخش دوم
مزایای عملکردی کش
دلیل وجود حافظه نهان در یک آرایه ذخیرهسازی مبتنی بر دیسک چرخان، افزایش عملکرد است. اگر بتوان یک عملیات 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
حافظه کش برای دادههای کاربر به دو بخش خواندنی و نوشتنی تقسیم میشود. آرایهها در تقسیم منابع کش به شکل دستی به حافظه کش خواندنی و نوشتنی توسط کاربر، یکشان نیستند. برخی کارشناسان این پرسش را مطرح میکنند که کدامیک از این دو وضعیت بهتر است، به کاربر اجازه دهیم این فرآیند را مدیریت کند یا به آرایه اجازه دهیم به شکل خودکار این فرآیندها را مدیریت کند. رویکرد اجازه دادن به آرایه برای اخذ تصمیمات، بهتر است، زیرا آرایه میتواند سریعتر از ما به عملیات مختلف واکنش نشان دهد و همچنین تصمیمات کارآمدتری بر مبنای حجم کار ورودی/خروجی فعلی اتخاذ کند.
البته در ارتباط با آرایههای کوچکتر که بارهای کاری خاص و شناخته شدهای دارند، بهتر است این مدیریت توسط کاربر انجام شود، ارتباط با آرایههای بزرگتر با بارهای کاری تصادفی و مکرر در حال تغییر، بهتر است مدیریت کارها به آرایه واگذار شود.