آموزش رایگان Data Storage Networking ؛ پراکندگی (Fragmentation) در هارددیسک ها به چه معنا است؟
هنگامی که صحبت از هارد دیسکها و حافظههای حالت جامد به میان میآید، دو موضوع فنی مهم وجود دارد که باید به آن دقت کنید. اول آنکه حافظه نهان یا همان کش چه نقشی در این رسانهها بازی میکند و دوم آنکه مشکل پراکندگی یا همان تکهتکه شدن به چه معنا است و آیا امکان برطرف کردن این مشکل وجود دارد یا خیر. در نهایت برای خریدهایی در مقیاس کلان برای مراکز داده چگونه باید از معیارهای محاسباتی برای یک خرید درست استفاده کنیم، بهطوری که در بلندمدت هزینههای مرکز داده رشد غیر قابل کنترلی نداشته باشند.
- نوار (Tape)
- ذخیره سازی Caching یعنی چه؟
- تکنولوژی S.M.A.R.T چیست؟
- مفهوم پراکندگی/ تکهتکه شدن هارد
- چرا نباید ssd را دیفرگ کنید؟
- معیارهای اندازهگیری هزینهها
- نحوه محاسبه هزینه ذخیره سازی
نوار (Tape)
اگر یک هارد دیسک یا همان دیسک چرخان قدیمی است، پس نوار مغناطیسی مطمئناً ماقبل تاریخ است. بله، نوار از قدیم الایام وجود داشته و تا اعصار آینده نیز وجود خواهد داشت.
نوار یک انتخاب خوب برای ذخیرهسازی طولانی مدت و انجام فرآیندهایی مثل پشتیبانگیری و بایگانی دادهها است و اگرچه قدیمی است، اما معمولا ظرفیت بالایی را با قیمت مناسبی ارائه میدهد.
از منظر عملکردی، در ارتباط با فرآیندهایی مثل دسترسی متوالی مناسب است، اما در دسترسی تصادفی جالب نیست. بهطور مثال، اگر نیازمند دسترسی به دادههایی باشید که در مکانهای تصادفی قرار دارند باید چند بار عملیات جلو و عقب رفتن را تکرار کنید تا به دادههای موردنظر دسترسی پیدا کنید. پس برای فعالیتهای تجاری روزمره ایدهآل نیست. در مقالات آتی فالنیک هنگامیکه درباره پشتیبانگیری و ذخیرهسازی اطلاعات صحبت خواهیم کرد بهشکل کاملتری این رسانههای قدیمی را بررسی میکنیم.
ذخیره سازی Caching یعنی چه؟
Caching به معنای ذخیرهسازی دادهها در حافظه موقت است که رسانههای ذخیرهسازی با هدف بهبود عملکرد از آن استفاده میکنند. بدون caching، عملکرد رسانههای ذخیرهساز کاملا وحشتناک میشد. اما کش چیست؟ در اینجا، ذخیرهسازی به معنای استفاده از مقدار کمی حافظه اصلی همراه با دیسک است تا بتوان دادههایی که بهطور مکرر به آنها نیاز است را درون این حافظه نهان قرار داد تا حافظه اصلی که سرعت بالاتری دارد به این نیاز پاسخ دهد. حافظههای کش معمولاً مبتنی بر dram هستند و از اینرو سریعتر از دیسکهای چرخان هستند.
حافظه نهان در دیسک درایوها بهاندازهای مهم است که همه دیسک درایوهای کلاس سازمانی با مقدار کمی حافظه نهان dram روی برد اصلی به بازار عرضه میشوند. اندازههای کش حدود 16 مگابایت در درایوهای با کارایی بالا و ظرفیت کم و 128 مگابایت در درایوهای با کارایی پایین و ظرفیت بالا است. اگرچه حافظه نهان در مقایسه با ظرفیت درایو کوچک است، اما میتواند برای بارهای کاری تصادفی مفید باشد. کش معمولاً توسط یک خازن یا باتری پشتیبانی میشود تا هنگام قطع برق اطلاعات آن از دست نرود.
حافظه کش بهطور گسترده در آرایههای ذخیرهسازی استفاده میشود و از اینرو، دیدن یک آرایه ذخیرهسازی سطح بالا با 1 ترابایت حافظه نهان غیر معمول نیست. اگرچه این میزان ممکن است حافظه نهان زیادی به نظر برسد، اما وقتی از نزدیک نگاه میکنید و مشاهده میکنید که ظرفیت فضای ذخیرهسازی شما برابر با 1 پتابایت است، متوجه میشوید که این مقدار چندان زیاد هم نیست.
تولیدکنندگان رسانههای ذخیرهساز به ازای هر گیگابایت باید هزینه زیادی برای استفاده از حافظه کش اختصاص دهند و به همین دلیل است که گاهی اوقات روی بسته محصولات عبارت Cache is Cash را مشاهده میکنید، به این معنی که کش ارزان نیست.
تکنولوژی S.M.A.R.T چیست؟
فناوری نظارت، تجزیه و تحلیل و گزارش سرنام Self-Monitoring, Analysis, and Reporting Technology که اغلب با نامهای SMART یا S.M.A.R.T شناخته میشود، یک استاندارد نظارتی در صنعت ساخت دیسک درایوها است که سعی در پیشبینی خرابیها دارد.
پیشبینی خرابی درایو به شما این امکان را میدهد تا کاری در مورد آن انجام دهید و قبل از آنکه دادهها برای همیشه از دست بروند نسخه پشتیبانی از آنها تهیه کنید. اگر میتوانید پیشبینی کنید که یک درایو در شرف از کار افتادن است، میتوانید به سادگی محتویات آن را در دیسک دیگری کپی کنید. با اینحال، اگر درایو خراب شود و اطلاعاتی روی آن وجود داشته باشد باید از طریق تکنیکهای ریکاوری به بازیابی آنها پرداخت. فرآیند ریکاوری یا همان بازیابی اطلاعاتی به چند برابر زمان بیشتری نسبت به کپی کردن سادهها اطلاعات نیاز دارد.
نکته مهمی که باید در ارتباط با فناوری S.M.A.R.T. به آن دقت کنید این است که این فناوری قرار نیست در مورد خوب یا بد بودن هارددیسک اطلاعاتی در اختیارتان قرار دهد، بلکه تنها گزارشی در مورد وضعیت سلامت هارددیسک در اختیارتان قرار میدهد و کمک میکند با کمترین زحمت ممکن یک محیط ذخیرهسازی ایمن پیادهسازی کنید.
مفهوم پراکندگی/ تکهتکه شدن هارد
شاید این جمله را بارها شنیدهاید که کامپیوتر من کند کار میکند و پاسخی که دریافت میکنید این است که نیاز به یکپارچهسازی دارد. آیا اجرای یکپارچهسازی سرعت کامپیوتر را افزایش میدهد؟ بیایید کمی در مورد موضوع پراکندگی اطلاعات در هارددیسکها صحبت کنیم. پراکندگی و تکهتکه شدن دو تعریفی است که برای واژه fragmentation استفاده میشود به دلایل مختلفی بهوجود میآید و یکی از موضوعات مهمی است که بهعنوان یک کارشناس ذخیرهسازی باید به آن دقت کنید. اینجا سوء تفاهمی در ارتباط با اصطلاح تکهتکه شدن (Fragmentation) وجود دارد که ضروری است در مورد آن اطلاعاتی داشته باشیم. در این بخش اصطلاح Fragmentation را از سه منظر سیستم فایلی، دیسک و SSD بررسی میکنیم:
Filesystem Fragmentation
نوعی تقسیمبندی انجام شده توسط ابزارهای یکپارچهسازی مبتنی بر سیستمعامل است. سیستمعاملهایی مثل ویندوز برای مدیریت بهتر دیسک از نوعی مکانیزم تقسیمبندی سطح فایلی استفاده میکنند تا فرآیند نوشتن اطلاعات روی رسانه بهشکل کارآمدتری انجام شود. این فرآیند filesystem fragmentation نام دارد. در سطح سیستم فایلی پراکندگی زمانی اتفاق میافتد که فایلها آدرسهای پیوسته درون سیستم فایلی را استفاده نکنند. برای روشن شدن بحث به مثال زیر دقت کنید:
تصور کنید که یک سیستم فایلی خالی با فضای آدرسدهی مبنای شانزده (0-15) داریم، درست بههمان شکلی که در تصویر زیر مشاهده میکنید.
حالا بیایید تصور کنیم که فایل جدیدی به نام uber در اختیار دارید که نیازمند چهار بلوک است. سیستم فایلی این فایل را در پهنه 0 تا 3 مینویسد، درست به همان صورتی که در شکل زیر به رنگ تیره مشاهده میکنید.
حال تصور کنید که قصد نوشتن فایل جدیدی بهنام legendary-file را داریم که وسعت شش برابری را اشغال میکند. سیستم فایلی برای مدیریت این درخواست به پهنهای در بازه 4 تا 9 این فایل را مینویسد، خطوط مورب شکل زیر این موضوع را نشان میدهند.
فرض کنید، در نظر داریم محتوای بیشتری به فایل uber اضافه کنید، بهطوری که حجم آن دو برابر میشود و پهنهای به وسعت هشت را اشغال میکند. هنگامیکه فایل را ذخیره میکنید به پهنهای برابر با وسعت چهار برابر دیگر برای ذخیرهسازی فایل نیاز دارید، اما بلوکهای بعد از آن آزاد نیستند و از اینرو سیستم فایلی مجبور است، ادامه فایل را در بلوکها مجاور که آزاد هستند ذخیرهسازی کند. درست به همان شکلی که در تصویر زیر مشاهده میکنید. سیستم فایل باید محتویات اضافی فایل uber را در پهنه 10 تا 13 بنویسد.
نتیجه نهایی این است که فایل uber در سیستم فایلی به شکل پراکنده (تکهتکه) ذخیرهسازی میشود.
در این مرحله، مهم است که به یاد داشته باشید که سیستم فایلی و سیستم عامل هیچ اطلاعی در مورد چگونگی ذخیرهسازی فایلها روی دیسک درایو ندارند.
آنها فقط فضای آدرسدهی منطقی (lba) را مشاهده میکنند که کنترلر درایو در اختیار آنها قرار میدهد و هیچ راهی برای اطمینان از اینکه فایلها بهشکل درستی سکتورها و ترکها را اشغال میکنند در اختیار ندارند.
این بدان معنا است که هر کار یکپارچهسازی انجام شده توسط سیستمعامل یا سیستم فایلی لزوماً تغییری در سازماندهی و ساختار فیزیکی دیسک اعمال نمیکند، اما باعث پیوستگی اطلاعات میشود.
یکپارچهسازی یک سیستم فایلی (Defragmenting a Filesystem)
اجازه دهید به سیستم فایلی شانزدهی شکل زیر نگاه دقیقتری داشته باشیم.
برای یکپارچهسازی یا همان دیفرگ سیستم فایلی، ابزار یکپارچهسازی از گستره (بلوک) آزاد بهعنوان یک ناحیه کاری یا فضای چرخشی استفاده میکند تا توانایی تغییر محدودهها را تا زمانی که فایلها تا حد امکان بهطور پیوسته در سیستم فایلی نمایش داده شوند داشته باشد. بهعنوان مثال، در مثال ساده ما، بهراحتی میتوانید جای بلوکهای 4 و 5 را با بلوکهای آزاد 14 و 15 تغییر دهید. حالا که بلوکهای 4 و 5 آزاد هستند، میتوانید 10 و 11 را به 4 و 5 منتقل کنید. با انجام اینکار، سیستم فایلی حالتی شبیه به تصویر زیر را خواهد داشت.
مرحله بعدی این است که بلوکهای 6 و 7 را به بلوکهای آزاد 10 و 11 منتقل کنید و سپس 12 و 13 را به بلوکهای 6 و 7 تازه آزاد شده انتقال دهید. در این مرحله، سیستم فایلی همانند شکل زیر است.
در این مرحله، فایل uber دیگر تکهتکه نیست. میتوانید مشاهده کنید که جابجایی بلوکهای 14 و 15 به 12 و 13 باعث میشود که فایل uber دیگر همانند تصویر اول این پاراگراف تکهتکه نشده باشد.
اکنون یک سیستم فایلی یکپارچه داریم که عملکرد دیسک درایو را به میزان قابل توجهی بهبود داده است. اما این تمام ماجرا نیست. هنوز مشکل پراکندگی دیسک وجود دارد، که میتواند تأثیر منفی بر عملکرد داشته باشد و راندمان انجام کارها را کاهش دهد.
پراکندگی/ تکهتکه شدن دیسک (Disk Fragmentation)
تکهتکه شدن دیسک زمانی اتفاق میافتد که یک فایل هم در سیستم فایلی و هم روی دیسک در بلوکهای مختلفی ذخیره شده است. بهطوری که سکتورها و ترکهای پیوسته را اشغال نکرده است. در این حالت برای دسترسی به فایل شاهد افزایش جستوجو (Seek) و افزایش تأخیر چرخشی هستیم، در حالیکه اگر فایل بهطور پیوسته روی دیسک قرار میگرفت، در کمترین زمان به آن دسترسی پیدا میکردید.
تکه تکه شدن دیسک بهطور طبیعی میتواند اتفاق بیفتد به خصوص وقتی یک دیسک درایو قدیمی است و با مشکل بدسکتورها روبرو میشود. در چنین شرایطی ساختار منطقی دیسک باید از نوبازسازی شود. بیایید فرض کنیم شما یک عملیات نوشتن K8 روی دیسک دارید و شانزده سکتور پیوسته در دسترس وجود دارد (هر 512 بایت). بهطور معمول، عملیات نوشتن K8 در این دیسک روی این شانزده سکتور پیوسته انجام میشود. با این حال، اگر هنگام نوشتن دادهها روی دیسک، یکی از این سکتورها مشکل داشته باشد، یعنی دادهها را نمیتوان روی آن نوشت و اطلاعات باید روی سکتور دیگری در دیسک نوشته شود. چیزی که در نهایت با آن روبرو میشوید یک فایل K8 است که در پانزده سکتور به هم پیوسته و یک سکتور غیر پیوسته که به شکل تصادفی روی دیسک قرار دارد نوشته شده است. این بدان معنا است که خواندن یا نوشتن به این فایل نیاز به زمان جستوجوی اضافی و چرخشهای اضافیتری دارید.
به مرور زمان که دیسک درایوها مستهلک میشوند، باید نقشه منطقی دیسک بازطراحی شود تا بدسکتورها زمان دسترسی به فایلها را افزایش ندهند. نکته مهمی که باید به آن دقت کنید این است که یکپارچهسازی سیستم فایلی کمک خاصی در حل مشکل تکهتکه شدن دیسک یا درست کردن بدسکتورها نمیکند. هنگامیکه این اتفاق میافتد، بهترین کاری که میتوانید انجام دهید این است که یک دیسک درایو جدید تهیه کنید.
چرا نباید ssd را دیفرگ کنید؟
بهطور کلی، شما نباید از مکانیزم دیفرگ در ssd بهمنظور یکپارچهسازی استفاده کنید. دلایل مختلفی برای این موضوع وجود دارد که از مهمترین آنها عبارتند از:
- یکپارچهسازی یک سیستم فایلی باعث خواندن و نوشتن زیاد میشود. نوشتن غیرضروری دادهها در رسانههای حالت جامد توصیه نمیشود، زیرا هر نوشتنی عمر سلولهای حافظه فلش را کوتاهتر میکند. فراموش نکنیم که هر سلول فلش را میتوان فقط برای تعداد محدودی دفعات برنامهریزی/پاک کرد. یکپارچهسازی منظم یک حافظه فلش به سرعت باعث کاهش این چرخه محدود میشود و عمر آنرا به شدت کوتاه میکند. بسیاری از سیستم عاملهای مدرن به شما اجازه نمیدهند فلش درایو را یکپارچهسازی کنید.
- یکپارچهسازی ssd میتواند کاری که کنترلر انجام داده است را بر هم بزند. کنترلرهای دستگاههای حالت جامد در پسزمینه برای بهینهسازی ساختار منطقی دادهها کار میکنند تا در دفعات بعدی که قصد نوشتنهای دادهها را دارید با مشکلاتی مثل تشدید نوشتن و مسائل دیگر روبرو نشوید.
- دستگاههای حالت جامد مولفههای متحرک ندارند، بنابراین مشکلاتی مثل تأخیر مکانی یا افزایش زمان جستوجو در مورد آنها صادق نیست.
معیارهای اندازهگیری هزینهها
بهطور معمول شرکتها و کارشناسان شبکه از دو معیار هزینههای سرمایهای (cap-ex) و هزینههای عملیاتی (op-ex) برای این منظور استفاده میکنند. بهطور مثال، هنگامیکه میگوییم یک درایو با RPM بالاتر معمولاً گرانقیمتتر از یک درایو با RPM کمتر است، در حقیقت به هر دو معیار هزینهای cap-ex و op-ex اشاره میکنیم. در بخش cap-ex، درایوهای RPM بالاتر نسبت تومان/گیگابایت بالاتری دارند، به این معنی که شما هزینه بیشتری را برای هر گیگابایت پرداخت میکنید. در بخش op-ex، چرخش یک پلاتر با سرعت 10 یا 15K انرژی بیشتری نسبت به چرخشی با سرعت 4.5K مصرف میکند و درایو K15 نیز گرمای بسیار بیشتری نسبت به درایو K4.5 تولید میکند. هر دو این معیارها نقش مهم و تعیینکنندهای در هزینههای تمام شده یک مرکز داده بزرگ دارند.
علاوه بر این عوامل، فروشندگان آرایههای ذخیرهسازی برای درایوهایی با کارایی بالاتر، هزینههای نگهداری بیشتری از مصرفکنندگان درخواست میکنند. در نهایت اگر به دنبال عملکرد بالا هستید، چارهای ندارید جز اینکه هزینه بیشتری را پرداخت کنید.
نحوه محاسبه هزینه ذخیره سازی
در مورد هزینهها باید چندین نکته را در نظر گرفت. بهطور کلی دو نوع هزینه در مورد رسانههای حالت جامد و دیسک مکانیکی وجود دارد. هزینهای که برای خرید درایو متحمل میشوید که ملموس است و دوم هزینههای عملیاتی که برای استفاده از ذخیرهسازی در بلندمدت متحمل میشوید. برای محاسبه دقیق باید بدانید که چگونه هزینهها را اندازهگیری کنید.
- هزینههای کسب (Acquisition Costs)
رایجترین معیار هزینهای که هنگام خرید فضای ذخیرهسازی باید به آن دقت کنید، تومان به ازای هر ترابایت ($/TB) یا تومان به ازای هر گیگابایتی ($/GB) است که پرداخت میکنید. توجه به این نکته تنها به بخش کوچکی از هزینهها اشاره دارد.
معیار مهم دیگری که باید به آن دقت کنید عملکرد است. این معیار بهاندازهای ساده و قابل درک است که هنوز هم پرکاربردترین معیار محاسبه در هنگام خرید تجهیزات ذخیرهسازی است. بهطور مثال، فرض کنید قصد خرید یک ssd با ظرفیت 100 گیگابایت را دارید که قیمتی معادل 1000 دلار دارد. در اینجا شما برای دسترسی به هر گیگابایت 10 دلار هزینه میکنید. حال اگر همان درایو 100 گیگابایت 5000 دلار قیمت داشته باشد، هزینه آن به ازای هر گیگابایت 50 دلار در گیگابایت است. هزینه/ظرفیت (Cost/capacity): سادهتر از این نمیتواند، باشد.
رسانههای حالت جامد در مقایسه با هارددیسکها بر مبنای فرمول بالا قیمت تمام شده بیشتری دارند، اما فروشندگان از معیار دیگری استفاده میکنند که همه چیز را برعکس میکند.
فروشندگان حافظههای حالت جامد معیار دیگری را برای هزینه اکتساب اعمال میکنند: به این صورت که دلار در هر عملیات I/O را ملاک عمل قرار می دهند که برابر با دلار تقسیم بر عملیات I/O است. ($/I/O operation). این معیار اشاره به هزینه تمام شده به نسبت عملکرد دارد، در نتیجه همه چیز بهیکباره تغییر پیدا میکند و قیمت حافظههای حالت جامد چند برابر کمتر از هارددیسکها میشوند. خوب بهلحاظ مالی چند برابر بیشتر هزینه میکنید، اما در مقابل عملکرد سامانهتان چند برابر بهبود پیدا میکند.
این فرمول محاسبه عملکرد تقسیم بر عملیات ورودی و خروجی چندان مورد توجه قرار نمیگیرد، زیرا بهدرستی درک نمیشود. بهطور مثال، برای افراد غیر فنی مثل مدیر مالی درک و توضیح عملکرد تقسیم بر عملیات I/O به اندازه هزینه تقسیم بر ظرفیت ساده نیست.
- هزینههای عملیاتی (Operating Costs)
رسانههای حالت جامد نسبت به دیسکهای مکانیکی هزینه اجرا/عملیاتی کمتری دارند، زیرا هیچ قطعه متحرکی وجود ندارد. بنابراین نیازی به برق برای چرخاندن صفحات و حرکت هدها نیست و در نتیجه گرمای کمتری تولید میشود. در محیطهای بزرگ فناوری اطلاعات، برق، گرما و سرمایش میتواند به میزان قابل توجهی در هزینههای عملیاتی مرکز داده تاثیرگذار باشند. این بدان معنی است که استقرار رسانه جامد میتواند TCO کلی یک سرور، آرایه ذخیرهسازی یا مرکز داده را کاهش دهد.