چهار روش بهبود عملکرد SSD در دیتا سنتر

از آنجایی که بیشتر شرکت‌ها به استفاده از حافظه‌های SSD روی آورده اند، در این نوشتار به 4 راه‌حل برای بهبود عملکرد SSD در دیتا سنتر می پردازیم. یادگیری روش‌هایی مانند غیرفعال کردن دیفرگمنت و استفاده از کش نوشتن، می‌تواند موثر باشد.

حافظه‌ SSD به خاطر سرعت و اطمینان بیشتری که برای مهمترین برنامه‌ها فراهم می‌کنند، توجه بیشتری را به خود جلب کرده‌اند. اما استفاده‌ی روزافزون از درایوهای SSD، برای متخصصان IT یک معضل در تعمیر و نگه‌داری ایجاد کرده است. اگرچه حافظه‌های SSD و هارد دیسک‌ها (HDD) کاربردی کاملا یکسان دارند، اما از تکنولوژی‌های مختلفی استفاده می‌کنند. در اینجا برخی از مهمترین روش‌ها را برای بهبود عملکرد SSD و افزایش  طول عمر آن ارائه می‌کنیم.

بهبود عملکرد SSD

غیر فعال کردن دیفرگمنت، ایندکس‌گذاری و هایبرنیشن

دیفرگ کردن

اگرچه دیفرگ کردن روشی محبوب در بهبود عملکرد هارد دیسک است، اما بهتر است برای بهبود عملکرد SSD غیرفعال شود. یک فایل سیستمی در سیستم‌عامل، ظرفیت ذخیره‌سازی دیسک را به واحدهای کوچک به نام خوشه (کلاستر) یا واحدهای تخصیص تقسیم می‌کند. دیسک‌هایی تا ظرفیت 16 ترابایت، از خوشه‌های 4 کیلوبایتی استفاده می‌کنند. بنابراین یک فایل کوچک، فقط از یک خوشه استفاده می‌کند. با این حال، اکثر فایل‌ها در چندین خوشه ذخیره می‌شوند و ممکن است فایل‌های بزرگ، خوشه‌های زیادی را شامل شوند. سیستم‌عامل، کلاسترها را به حد نیاز اختصاص می‌دهد.

وقتی که فایل‌های بیشتری به دیسک اضافه می‌کنید و حجم آن فایل‌ها، کوچک و بزرگ می‌شود، خوشه‌های درگیر در این فایل‌ها به تدریج در دیسک پراکنده می‌شوند. اگرچه این موضوع به طور مستقیم به دیسک آسیب نمی‌زند، اما فرایند فرگمنت بخش‌های مکانیکی هارد دیسک را مجبور می‌کند که برای مشخص کردن مسیرها و محل‌های هر خوشه، سخت‌تر کار کنند. در نتیجه، عملکرد هارد دیسک ضعیف‌تر می‌شود و طول عمر آن را کاهش می‌دهد. ابزار دیفرگ کردنِ سیستم‌عامل، خوشه‌های فایل را دوباره مرتب می‌کند به طوری که خوشه‌های هر فایل در کنار یکدیگر قرار می‌گیرد. این کار باعث می‌شود که تاخیرهای مکانیکی برای جست‌وجوی خوشه‌های پراکنده، به حداقل برسد و عملکرد درایو بهبود پیدا کند و فرایندهای مکانیکی غیرضروری کاهش یابد.

فایل‌های سیستمی در سیستم‌عامل، حافظه‌های SSD را برای استفاده از خوشه‌ها، به شیوه‌ای مشابه با هارد دیسک فرمت می‌کنند؛ اما درایوهای SSD بخش‌های مکانیکی ندارند. بنابراین، فرگمنت عملا هیچ تاثیری در عملکرد خواندن/نوشتن SSD ندارد. این به این معناست که دیفرگ کردن، هیچ سودی برای بهبود عملکرد SSD ندارد. علاوه بر این، یک حافظه SSD از حافظه غیرفرار (NVM) استفاده می‌کند. دستگاه‌های NVM تنها تعداد محدودی از چرخه‌های پاک کردن/نوشتن را ارائه می‌دهند؛ بنابراین دیفرگ کردن، تعداد نوشتن‌های غیرضروری NVM را افزایش می‌دهد تاثیری در بهینه کردن عملکرد SSD ندراد.

ایندکس‌گذاری یا فهرست نویسی

ایندکس‌گذاری یکی از ویژگی‌های ویندوز است که یک پایگاه داده از فایل‌هایی که اغلب استفاده می‌شوند، نگه‌داری می‌کند تا عملکرد جست‌وجوی ویندوز را تسریع کند. ایندکس‌گذاری، نوشتن‌های کوچکی را انجام می‌دهد تا فهرست فایل‌ها را تهیه کند. هر زمان که فایلی را ایجاد کنید، تغییر دهید یا حذف نمایید، سیستم فعالیت‌های نوشتن مضاعفی را برای ایندکس‌گذاری انجام می‌دهد. حافظه‌های SSD از ایندکس‌گذاری فایل‌ها نیز همانند دیفرگ کردن، سودی نمی‌برند و چه بسا آن نوشتن‌های اضافی، می‌تواند طول عمر SSD را کم کند. در نتیجه برای برای بهینه‌سازی عملکرد SSD در دیتا سنتر میتوان این ویژگی را غیرفعال کرد.

هایبرنیشن

در نهایت، هایبرنیشن (hibernation) یا همان خواب عمیق، یک حالت ذخیره برق است که تصویری از حالت کامپیوتر می‌گیرد و آن را به عنوان یک فایل دیسکی (disk file) ذخیره می‌کند. این ویژگی، به سیستم اجازه می‌دهد که به طور کامل خاموش شود، در عین حال که ری‌استارت و بازگشت به حالت قبلی، به سرعت انجام می‌گیرد. چالشی که در مواجهه با هایبرنیشن وجود دارد، عملکرد یا طول عمر نیست، بلکه بهینه‌سازی ظرفیت است. به عنوان مثال، چندین دلیل کاربردی وجود دارد که یک سرور را هایبرنیت کنیم. سرورها معمولا به طور مداوم کار می‌کنند و به حالت ذخیره‌ی برق نمی‌روند. از آنجایی که حافظه‌های SSD معمولا ظرفیت کمتری نسبت به هارد دیسک‌ها دارند، بهتر است که هایبرنیشن را غیرفعال کنید.

بیشتر بخوانید : سه راه برای حفاظت و افزایش عمر مفید SSD

SSD برای چه نوع داده هایی مناسب است؟

حافظه‌های SSD در فرایند خواندن، فوق‌العاده خوب عمل می‌کنند. جایی که هارد دیسک‌ها از تاخیرهای مکانیکی رنج می‌برند، حافظه‌های SSD چنین تاخیری ندارند و می‌توانند از هرجایی به داده‌ها در محل NVM دسترسی پیدا کنند. یک حافظه SSD مدرن، می‌تواند فرایند خواندنِ تصادفی را حدود 100 برابر سریعتر از یک هارد دیسک معمولی انجام دهد و عمل خواندن ترتیبی را در مقایسه با هارد دیسک‌های مشابه، دو برابر سریعتر به انجام می‌رساند. علاوه بر این، عمل خواندن، سلول‌های NVM را همانند عمل نوشتن، تحت فشار قرار نمی‌دهد؛ بنابراین یک حافظه SSD می‌تواند به صورت نامحدود عمل خواندن را انجام دهد.

این ویژگی باعث می‌شود که حافظه‌های SSD یک انتخاب فوق‌العاده برای داده‌هایی باشند که به طور مداوم خوانده و به ندرت نوشته می‌شوند. نمونه‌هایی از این مورد، شامل برنامه‌های کاربردی و فایل‌های ماشین مجازی می‌شود و همچنین داده‌هایی که به ندرت تغییر می‌کنند، مانند تصاویر، فایل‌های PDF و دیگر فایل‌های تصویریِ ثابت و بدون تغییر.

در عین حال که حافظه‌های SSD در خواندن بسیار عالی عمل می‌کنند، به طور بالقوه با مشکلاتی در نوشتن دست به گریبانند. برای نمونه، حافظه‌های SSD هنگامی که با حجم زیادی از نوشتن مواجه می‌شوند، تاخیرهایی را تجربه می‌کنند. نتیجه این است که برخی از دستوراتی که به نوشتن‌های زیاد و پرحجم وابسته هستند، ممکن است به خوبی در SSD اجرا نشوند.

برای بهبود عملکرد SSD باید بدانید چه زمانی از cache استفاده کنید

استفاده از کش، یکی از ویژگی‌های معمول در هارد دیسک‌ها (HDD) و حافظه‌های SSD است. درایوهای ذخیره سازی اغلب نمی‌تواند هماهنگی را با نرخ انتقال داده در رابط درایو حفظ کند. بنابراین یک سرور می‌تواند انتظار برای دستگاه ذخیره‌سازی را به پایان برساند تا در هنگام نوشتن و حتی خواندن، به نرخ لازم برسد، مخصوصا در عملیاتی که حافظه به شدت درگیر می‌شود. در نتیجه، عملیات خواندن و نوشتن در حافظه که توسط برنامه‌ها انجام می‌شود، شاهد تاخیرهایی خواهد بود.

برای کاهش تاخیرها و بهینه‌سازی عملکرد SSD، برخی از مموری‌های پرسرعت را به دستگاه اضافه می‌کنند. یک رَم دینامیک (DRAM) به عنوان بافر در بین رابط درایو (drive interface) و رسانه درایو (drive media) قرار می‌دهند. DRAM فرار است، به این معنی که اگر برق دستگاه قطع شود، محتویات آن از بین می‌رود. بنابراین کش نوشتن (write cache)، از ترکیبی از تکنیک‌ها مانند پر و خالی کردن کش (cache flushing) و صف‌بندی دستورات محلی (Native Command Queuing) استفاده می‌کند تا ساماندهی را به طور هوشمندانه انجام دهد و داده‌ی کش را در رسانه تثبیت کند.

ممکن است غیرفعال کردن یک تکنولوژیِ بهبود عملکرد، عجیب به نظر برسد، اما نمونه‌هایی وجود دارد که غیرفعال کردن کش نوشتن، برای آن‌ها مناسب است. به عنوان مثال، وقتی که یکپارچگی دستوراتِ نوشتن مهمتر از کارایی درایو در نوشتن محض است، ممکن است ادمین‌ها به سراغ غیرفعال کردن کش نوشتن بروند.

ارزیابی TRIM برای بهبود عملکرد SSD

هنگامی که یک فایل را از روی هارد دیسک حذف می‌کنید، در حقیقت سیستم خوشه‌های تشکیل‌دهنده‌ی آن را پاک نمی‌کند، بلکه آن‌ها را «آزاد» می‌نماید. سپس رسانه‌ی مغناطیسی هارد دیسک می‌تواند این خوشه‌ها را به عنوان داده‌ی جدیدی که در آن ذخیره شده، بازنویسی کند.

بیشتر بخوانید :SSD TRIM چیست ؟

حافظه SSD به این شکل کار نمی‌کند. در عوض، داده‌ها را در سلول‌هایی از دستگاه‌های NVM ذخیره می‌کند. سلول‌های NVM به گروه‌هایی به نام «صفحات» (pages) با حجم 4 کیلوبایت تا 16 کیلوبایت تقسیم می‌شوند و این صفحات به عنوان «بلوک‌های» (blocks) 128 تا 512 صفحه‌ای دسته‌بندی می‌شوند. وقتی سلول‌های NVM خالی هستند، نوشتن در آن‌ها به سرعت انجام می‌گیرد، بنابراین کارایی نوشتن بسیار خوب خواهد بود. اما هنگامی که سیستم یک‌بار در سلول‌ها نوشت، برای آنکه بتواند هر صفحه از آن فضا را بازنویسی کند، باید کل بلوک را پاک کند. زمان لازم برای پاک کردن کل بلوک می‌تواند عملیات نوشتن بعدی را در یک حافظه SSD آهسته‌ کند. این رفتار آزاردهنده در SSD با نام «تشدید نوشتن» (write amplification) شناخته می‌شود.

برای کاستن از مشکل تشدید نوشتن(write amplification) ، یک ویژگی پیشگیرانه به نام TRIM وجود دارد که در مجموعه فرمان ATA است و ویژگی UNMAP که در مجموعه فرمان SCSI است. ایده‌ی این ویژگی این است که یک سیستم‌عامل مانند ویندوز می‌تواند تشخیص دهد که کدام بلوک‌ها در حال حاضر استفاده نمی‌شوند. در این صورت از دستور TRIM بهره می‌برد تا به حافظه SSD اجازه دهد که بلوک‌هایی که مورد استفاده نیستند را پیش از آنکه سیستم‌عامل تلاش کند که داده‌ی جدیدی در آن‌ها بنویسد، پاک نماید. زمانی که سیستم سعی می‌کند دوباره داده‌هایی را در آن بلوک ذخیره کند، آن بلوک، پیش از این در پس‌زمینه پاک شده است و نیازی به پاک کردن ندارد. این ویژگی می‌تواند عملکرد حافظه SSD در نوشتن را بهبود بخشد.