عملیات خواندن و نوشتن در FAST Cache
در مقالات قبل درباره ویژگی های FAST VP صحبت کردیم حال قصد داریم در این مقاله به تحلیل و بررسی عملیات خواندن و نوشتن در FAST Cache بپردازیم.
عملیات خواندن در Fast Cache
هنگامی که داده ای جهت عملیات خواندن به سیستم ارسال می شود، محتویاتِ کش سیستم بررسی می شود تا تعیین نماید که فرایند I / O می تواند تکمیل شود یا خیر. اگر داده های درخواست شده در کش سیستم مستقر باشند، I / O با استفاده از داده هایی که در کش سیستم موجود هستند، فرایند خواندن را تکمیل می کند. لازم به ذکر است درخواست I / O به Pool ارسال نمی شود و Fast Cache Memory Map چک نمی شود.
اگر کش سیستم نتوانست I / O را کامل کند، یک Cache miss رخ می دهد. اگر FAST Cache فعال باشد، Memory Map بررسی می شود تا ببیند آیا محتویات FAST Cache می تواند I / O را کامل کند یا خیر. اگر داده در FAST Cache ساکن باشد، I / O به محلی که داده ها در FAST Cache مستقر شده ارجاع داده می شود، داده در کش سیستم کپی شده و درخواست خواندن تکمیل می شود.
وقتی که ما عملیات خواندن را برای داده ای درخواست می کنیم و آن داده در FAST Cache ساکن نباشد، داده باید از درایوی که داده روی آن قرار دارد درخواست شود. سپس داده از درایو به کش سیستم کپی می شود و عملیات خواندن با اطلاعات درخواست کننده کامل می شود. اگر داده به طور مرتب درخواست داده شود ، Policy Engine بروز می شود و داده به FAST Cache کپی می شود. درخواست های بعدی برای این اطلاعات ، از کش سیستم یا FAST Cache خوانده می شود.
بطور کلی می توانیم مراحل عملیات خواندن در FAST Cache را اینگونه مورد یررسی قرار دهیم:
- دستگاه ذخیره ساز Unity عملیات خواندن را دریافت می کند.
- اگر داده ی درخواست داده شده در کش سیستم موجود باشد، I/O با استفاده از داده هایی که در کش سیستم موجود هستند، فرایند خواندن را تکمیل می کند.
- اگر کش سیستم شامل داده درخواست شده نباشد، به عنوان Cache miss شناخته می شود. اگر قابلیت FAST Cache فعال باشد، FAST Cache Memory Map بررسی می شود تا ببیند آیا محتویات FAST Cache می تواند I / O را کامل کند یا خیر.
- اگر داده درخواست شده در FAST Cache ساکن باشد، مستقیما FAST Cache دیده می شود. سپس اطلاعات به کش سیستم کپی می شود و کش سیستم درخواست Read را تکمیل می کند.
- اگر FAST Cache miss رخ دهد، داده از هارد درایوهای Pool درخواست می شود، و در کش سیستم کپی می شوند. سپس کش سیستم درخواست خواندن را تکمیل می کند.
- اگر داده ای به صورت مرتب درخواست داده شود FAST Cache Policy Engine داده های در FAST Cache و Memory Map را بروز می کند.
عملیات نوشتن در Fast Cache
در دستگاه ذخیره سازی EMC Unity، تمام عملیات های نوشتن به سیستم با استفاده از کش سیستم تکمیل می شوند. این سیستم درخواست نوشتن را به کش سیستم می پذیرد و یک acknowledgment به هاست ارسال می کند. در طول این فرایند هیچ تعاملی با FAST Cache اتفاق نمی افتد. Write Cache روی یک سیستم EMC Unity نمی تواند توسط کاربر غیرفعال شود و تقریبا در همه شرایط فعال شده می باشد.
اگر Write Cache روی یک سیستم غیر فعال شود، عملیات نوشتن بر روی سیستم نیاز دارد که بر روی درایو ذخیره شود پیش از این که ack مرتبط با آن ارسال شود. در طول این عملیات، داده ها به طور موقت در کش سیستم نگهداری می شوند، تا زمانی که داده در درایو ذخیره شود. اگر FAST Cache فعال باشد، Memory Map بررسی می شود تا ببیند آیا نسخه ای دیگر از داده ها در FAST Cache وجود دارد یا خیر. اگر چنین است، داده ها در FAST Cache به روز می شود و عملیات نوشتن انجام شده و ack ارسال می شود. اگر داده ها در FAST Cache جای نداشته باشند، عملیات نوشتن در Pool HDDs رخ می دهد و ack نوشتن ارسال می کند. این نوشتن درون Pool HDDs باعث بروزرسانی FAST Cache می شود.
- هنگامی که Write Cache غیرفعال است، عملیات نوشتن توسط سیستم دریافت می شود. داده هنگامی که بر روی دیسک ذخیره می شود به طور موقت در کش سیستم نگهداری می شوند.
- هنگامی که FAST Cache فعال شده است، محتویات Memory Map بررسی می شود تا مشخص کند آیا نسخه دیگری از داده ها به روز شده در FAST Cache موجود است یا خیر.
- اگر داده در FAST Cache ساکن باشد، داده از کش سیستم به FAST Cache کپی می شود.
- اگر یک کپی از داده در FAST Cache موجود نباشد، داده به طور مستقیم در Pool HDDs نوشته می شود.
- نوشتن زمانی acknowledge ارسال می کند که داده بر روی دیسک ساکن باشد، یا در FAST Cache یا در داخل Pool.
- اگر بلوک به طور مداوم در دسترس باشد بروزرسانی در FAST Cache رخ می دهد.
به عنوان مثال زمانی که کش سیستم عملا صفحات کش یا تمیز کردن صفحات کش را پاک می کند، در شکل زیر نشان داده شده است، به روز رسانی به FAST Cache می تواند دیده شود. در هنگام این عملیات ، FAST Cache Memory Map بررسی می کند تا تعیین کند که آیا داده های overwrite شده در FAST Cache قرار می گیرند یا خیر. اگر داده ها در FAST Cache واقع شده باشند، داده هایی که از System cache پاک می شوند با محتویات FAST Cache ، Sync می شوند. همانطور که FAST Cache در حال حاضر حاوی اطلاعاتی است که جدیدتر از آنچه در Pool است، داده ها به عنوان داده های dirty مطرح می شوند. این داده ها به عنوان FAST Cache dirty page شناخته شده اند. هنگامی که یک عملیات FAST Cache page cleaning اتفاق می افتد، این داده ها با داده های داخل Pool ، Sync خواهند شد. اگر FAST Cache شامل یک کپی از اطلاعات به روز شده نباشد، داده ها به طور مستقیم بر روی درایو های Pool نوشته می شوند. این عملیات ممکن است باعث ایجاد یک FAST Cache Promotion شود.
- هنگام پاک کردن یک System Cache page یا عملیات page flushing، اگر FAST Cache فعال باشد، FAST Cache Memory Map بررسی می شود.
- اگر یک کپی از داده در FAST Cache ساکن باشد، System Cache بلوک داده را در FAST Cache با آخرین اطلاعات به روز می کند.
- اگر یک کپی از داده ها در FAST Cache موجود نباشد، داده ها به طور مستقیم در HDD های Pool نوشته می شوند.
- اگر داده ای نیاز به دسترسی به صورت مرتب داشته باشد، عملیات نوشتن ممکن است سبب شود که داده ها به FAST Cache ارتقا یابد. اگر ارتقاء رخ دهد، داده ها به FAST Cache کپی شده و Memory Map به روز می شود.
دیدگاهتان را بنویسید
می خواهید در گفت و گو شرکت کنید؟خیالتان راحت باشد :)