رفتن به محتوای اصلی
Koohestun
توضیح کوهستانStorage TechExplainer· 5 دقیقه مطالعه· در فناوری

کالبدشکافی حافظه‌های SSD: درایو شما واقعاً چگونه مرگ خود را به تعویق می‌اندازد؟

حافظه‌های فلش دارای یک محدودیت فیزیکی بی‌رحمانه هستند: سلول‌های آن‌ها پس از چند هزار بار نوشتن از بین می‌روند. درایوهای SSD برای جلوگیری از مرگ زودهنگام، از مجموعه‌ای از الگوریتم‌های پنهان مانند سایش متوازن (Wear Leveling) و جمع‌آوری زباله استفاده می‌کنند تا داده‌ها را دائماً جابه‌جا کرده و عمر خود را طولانی‌تر کنند.

به قلم کیان راد

تولیدکنندگان سخت‌افزار 40%متخصصان بازیابی و تعمیر 30%معماران زیرساخت سازمانی 30%
تولیدکنندگان سخت‌افزار
تمرکز بر افزایش ظرفیت و کاهش قیمت به قیمت کاهش چرخه‌های نوشتن فیزیکی.
متخصصان بازیابی و تعمیر
نگاه انتقادی به پیچیدگی الگوریتم‌ها که بازیابی داده‌ها را غیرممکن می‌کند.
معماران زیرساخت سازمانی
اولویت دادن به پایداری عملکرد و طول عمر قابل پیش‌بینی بر ظرفیت خام.

دیدگاه‌هایی که این گزارش پوشش نداده

  • توسعه‌دهندگان سیستم‌عامل

اصطلاحات کلیدی

سایش متوازن (Wear Leveling)
الگوریتمی در کنترلر SSD که داده‌ها را طوری جابه‌جا می‌کند که تمام بلوک‌های حافظه به طور مساوی فرسوده شوند.
جمع‌آوری زباله (Garbage Collection)
فرآیندی در پس‌زمینه که داده‌های معتبر را در بلوک‌های جدید تجمیع کرده و بلوک‌های حاوی داده‌های نامعتبر را برای استفاده مجدد پاک می‌کند.
دستور TRIM
دستوری از طرف سیستم‌عامل که به SSD اطلاع می‌دهد کدام فایل‌ها پاک شده‌اند تا درایو آن‌ها را در فرآیندهای داخلی خود جابه‌جا نکند و بلوک‌ها را آزاد کند.
تقویت نوشتن (Write Amplification)
پدیده‌ای که در آن مقدار داده‌ای که به طور فیزیکی روی تراشه‌های فلش نوشته می‌شود، بیشتر از مقدار داده‌ای است که سیستم‌عامل درخواست کرده است.
سلول‌های NAND
واحدهای فیزیکی ذخیره‌سازی در حافظه‌های فلش که الکترون‌ها را برای حفظ داده‌ها در خود نگه می‌دارند و عمر محدودی دارند.

نکات کلیدی

  • سلول‌های حافظه فلش دارای محدودیت فیزیکی هستند و پس از چند صد تا چند هزار بار نوشتن از بین می‌روند.
  • الگوریتم «سایش متوازن» با توزیع مساوی داده‌ها در تمام بلوک‌ها، از مرگ زودهنگام درایو جلوگیری می‌کند.
  • فرآیند «جمع‌آوری زباله» در پس‌زمینه، بلوک‌های حاوی داده‌های نامعتبر را پاکسازی و مرتب می‌کند.
  • دستور TRIM به درایو می‌گوید کدام داده‌ها پاک شده‌اند تا از جابه‌جایی بی‌مورد آن‌ها جلوگیری شود.
  • پر کردن کامل ظرفیت SSD، فضای لازم برای عملکرد این الگوریتم‌ها را از بین برده و عمر درایو را به شدت کاهش می‌دهد.

در قلب هر درایو حالت جامد (SSD) مدرن، یک محدودیت فیزیکی بی‌رحمانه و غیرقابل تغییر وجود دارد: سلول‌های حافظه فلش NAND با هر بار پاک شدن و نوشتن مجدد، کمی تخریب می‌شوند. لایه اکسید تونلی که الکترون‌ها را در خود نگه می‌دارد، به مرور زمان فرسوده می‌شود. برای سلول‌های تک‌سطحی (SLC) این محدودیت حدود ۵۰,۰۰۰ تا ۱۰۰,۰۰۰ چرخه است، اما در درایوهای ارزان‌قیمت QLC که امروزه بازار را قبضه کرده‌اند، این عدد به ۲۰۰ تا ۱۰۰۰ چرخه کاهش یافته است. اگر یک SSD داده‌ها را دقیقاً مانند یک هارد دیسک مکانیکی قدیمی (HDD) در همان مکان‌های ثابت بازنویسی می‌کرد، بلوک‌هایی که میزبان فایل‌های موقت سیستم‌عامل هستند، در عرض چند ماه می‌سوختند و کل درایو از کار می‌افتاد.[4][3]

برای دور زدن این محدودیت فیزیکی، مهندسان مفهومی به نام «سایش متوازن» (Wear Leveling) را ابداع کردند. این فناوری یک لایه ترجمه پنهان است که توسط کنترلر درایو مدیریت می‌شود و آدرس‌های منطقی که سیستم‌عامل می‌بیند را از آدرس‌های فیزیکی واقعی روی تراشه جدا می‌کند. هدف این الگوریتم این است که مطمئن شود تمام بلوک‌های حافظه به طور مساوی فرسوده می‌شوند. وقتی شما فایلی را ذخیره می‌کنید، درایو آن را در بلوکی که کمترین میزان استفاده را داشته است می‌نویسد، نه لزوماً در همان جایی که سیستم‌عامل درخواست کرده است.[1][4]

اما همه الگوریتم‌های سایش متوازن یکسان خلق نشده‌اند. بازاریابی شرکت‌ها اغلب فقط به وجود این ویژگی اشاره می‌کند، اما تفاوت در نحوه اجرای آن است. «سایش متوازن پویا» (Dynamic Wear Leveling) فقط داده‌های جدید را به بلوک‌های خالی هدایت می‌کند. این روش ساده است، اما یک مشکل بزرگ دارد: اگر نیمی از درایو شما پر از عکس‌های قدیمی و سیستم‌عامل باشد که هرگز تغییر نمی‌کنند، آن بلوک‌ها دست‌نخورده باقی می‌مانند و تمام فشار نوشتن روی نیمه خالی درایو می‌افتد.[2]

به گفته متخصصان بازیابی اطلاعات مانند لویی راسمن (Louis Rossmann)، «اگر درایوی ۱۰۰ بلوک داشته باشد و ۵۰ بلوک آن با داده‌های ثابت اشغال شده باشد، سایش متوازن پویا فقط روی ۵۰ بلوک دیگر کار می‌کند و آن‌ها با سرعت دو برابر فرسوده می‌شوند». برای حل این مشکل، درایوهای پیشرفته‌تر از «سایش متوازن ایستا» (Static Wear Leveling) استفاده می‌کنند. در این روش، کنترلر درایو در پس‌زمینه، حتی داده‌های قدیمی و بدون تغییر را از بلوک‌های سالم برمی‌دارد و به بلوک‌های فرسوده‌تر منتقل می‌کند تا بلوک‌های تازه نفس برای نوشتن‌های جدید آزاد شوند.[2]

این جابه‌جایی مداوم داده‌ها، پدیده‌ای به نام «تقویت نوشتن» (Write Amplification) را ایجاد می‌کند. این یعنی درایو برای مرتب کردن خودش، بیشتر از آنچه شما دستور داده‌اید، داده می‌نویسد. نسبت داده‌های فیزیکی نوشته شده به داده‌های منطقی درخواست شده می‌تواند در بدترین حالت به اعداد بالایی برسد، به این معنی که درایو چرخه‌های ارزشمند خود را صرف عملیات نگهداری داخلی می‌کند.[2]

این جابه‌جایی مداوم داده‌ها، پدیده‌ای به نام «تقویت نوشتن» (Write Amplification) را ایجاد می‌کند.

در کنار سایش متوازن، مکانیزم دیگری به نام «جمع‌آوری زباله» (Garbage Collection) وجود دارد. در حافظه‌های فلش، شما می‌توانید داده‌ها را در سطح «صفحه» (Page) بخوانید و بنویسید، اما برای پاک کردن، باید کل یک «بلوک» (Block) را که شامل ده‌ها صفحه است، با ولتاژ بالا پاک کنید. وقتی فایلی را تغییر می‌دهید، درایو نمی‌تواند فقط همان صفحه را پاک کند؛ بلکه نسخه جدید را در یک صفحه خالی می‌نویسد و نسخه قدیمی را به عنوان «نامعتبر» علامت‌گذاری می‌کند.[1][3]

وقتی بلوک‌های خالی کم می‌شوند، جمع‌آوری زباله وارد عمل می‌شود: صفحات معتبر را به یک بلوک جدید می‌برد و کل بلوک قدیمی را یکجا پاک می‌کند. اینجاست که دستور TRIM اهمیت پیدا می‌کند. در گذشته، وقتی فایلی را در سیستم‌عامل پاک می‌کردید، سیستم فقط آدرس آن را حذف می‌کرد اما داده‌ها روی درایو باقی می‌ماندند. درایو SSD نمی‌دانست که این داده‌ها دیگر نیازی نیستند و آن‌ها را در فرآیند جمع‌آوری زباله مدام جابه‌جا می‌کرد که باعث فرسودگی بی‌دلیل می‌شد.[3][1]

دستور TRIM که از سال ۲۰۱۳ در سیستم‌عامل‌هایی مانند اندروید و ویندوز استاندارد شد، به درایو می‌گوید: «این فایل پاک شده است، دیگر آن را جابه‌جا نکن و بلوک آن را آزاد کن». ترکیب TRIM و سایش متوازن، یک پیامد ناخواسته اما قطعی دارد: بازیابی اطلاعات پاک شده از SSDها تقریباً غیرممکن است. برخلاف هارد دیسک‌های قدیمی که داده‌ها تا زمان بازنویسی فیزیکی روی دیسک باقی می‌ماندند، در SSDها دستور TRIM بلافاصله بلوک‌ها را برای پاک شدن علامت‌گذاری می‌کند و الگوریتم‌های پس‌زمینه به سرعت آن‌ها را محو می‌کنند.[3][1]

شرکت‌های سازنده اغلب طول عمر درایوها را با معیاری به نام TBW (ترابایت قابل نوشتن) تبلیغ می‌کنند. اما این عدد یک فرض پنهان دارد: اینکه الگوریتم‌های سایش متوازن به بی‌نقص‌ترین شکل ممکن کار کنند. در واقعیت، اگر درایو خود را تا ۹۹ درصد پر کنید، کنترلر فضای خالی کافی برای جابه‌جایی بلوک‌ها و اجرای سایش متوازن نخواهد داشت. به همین دلیل است که درایوهای پر شده، نه تنها به شدت کند می‌شوند، بلکه با سرعت بسیار بیشتری به سمت مرگ فیزیکی حرکت می‌کنند.[4][3]

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

پرسش‌های متداول

آیا دیفرگ (Defrag) کردن SSD عمر آن را کم می‌کند؟

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

چرا بازیابی فایل‌های پاک شده از SSD سخت‌تر از هارد دیسک است؟

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

آیا پر کردن کامل ظرفیت SSD خطرناک است؟

بله. کنترلر درایو برای جابه‌جایی داده‌ها و اجرای سایش متوازن به فضای خالی نیاز دارد. پر کردن بیش از ۸۰ تا ۹۰ درصد ظرفیت، این فرآیندها را مختل کرده و باعث کندی شدید و مرگ زودرس درایو می‌شود.

چرا مهم است

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

منابع

پوشش منابع

5 منبع

3 دیدگاه شناسایی‌شده

تولیدکنندگان سخت‌افزار 40%متخصصان بازیابی و تعمیر 30%معماران زیرساخت سازمانی 30%
  1. [1]Data Recoveryمتخصصان بازیابی و تعمیر

    SSD Wear Leveling Explained

    مطالعه در Data Recovery
  2. [2]Rossmann Groupمتخصصان بازیابی و تعمیر

    How SSD Wear Leveling Works

    مطالعه در Rossmann Group
  3. [3]TechTargetتولیدکنندگان سخت‌افزار

    What is wear leveling?

    مطالعه در TechTarget
  4. [4]OSCOOتولیدکنندگان سخت‌افزار

    Wear Leveling: The Core Technology for Extending Flash Storage Lifespan

    مطالعه در OSCOO
  5. [5]تیم سردبیری کوهستان

    تحلیل تیم سردبیری کوهستان

    مطالعه در تیم سردبیری کوهستان

نظرات

همیشه در جریان باشید

هر زاویه. هر روز.

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