آموزش رایگان Data Storage Networking؛ معرفی ssdها و مزایای آنها
رسانههای حالت جامد – ssdها و حتی حافظههای فلش بیش از یک دهه است که وجود دارند، اما به دلیل ظرفیت، قابلیت اطمینان و مسائل مربوط به هزینه، نرخ پذیرش کمتری نسبت به هارددیسکها دارند. هر چند که این اواخر، بحث ظرفیت و قیمت این رسانهها در مقایسه با سالهای دورتر بهتر شده است، بهطوری که حتی کاربران خانگی میتوانند ترکیبی از حافظههای حالت جامد را همراه با هارددیسکها استفاده کنند. در ادامه مقالات آموزش data storage networking با ssdها بیشتر آشنا میشویم. با فالنیک همراه باشید.
- معرفی انواع درایوهای ssd
- مزایای هاردها و رسانههای ssd
- فلش مموری (Flash Memory) چیست؟
- نوشتن روی فلش مموری
- فرآیند پاک کردن دادهها چگونه انجام میشود؟
- آناتومی و انواع NAND Flash
- سلول تک سطحی (SLC)
معرفی انواع درایوهای ssd
ssdها در اشکال و اندازههای مختلفی به بازار عرضه شدهاند. با اینحال، دو موردی که اشاره میکنیم بیشتر مورد توجه سازمانها و کاربران قرار دارند.
- درایو حالت جامد یا ssd سرنام Solid State Drive است، تقریبا همهمنظوره است و شبیه یک هارددیسک به نظر میرسد و در همان شکل و ابعاد در دسترس کاربران قرار دارد. پس ssdها در فرم فاکتورهای آشنای 2.5 و 3.5 اینچی عرضه میشوند و از همان رابطها و پروتکلهای sas و sata و fc استفاده میکنند. شما میتوانید آنها را در هر سیستم امروزی که از دیسک درایوها پشتیبانی میکند نصب کنید و از سرعت بالای آنها لذت ببرید. نوع دیگر این حافظهها قابلیت نصب روی مادربورد را دارند، البته به شرطی که مادربورد شکاف مربوط به میزبانی آنها را داشته باشد.
- کارت PCIe/ کارت حالت جامد یا ssc سرنام PCIe Card/Solid-State Card است. این رسانه حالت جامد به شکل کارت توسعه PCI است و میتوان آن را به هر اسلات PCIe در هر سرور یا آرایه ذخیرهسازی وصل کرد. امروزه این کارتها یکی از ملزومات عادی سرورهایی هستند که باید جوابگوی حجم بالایی از درخواستها باشند و مهمتر آنکه کمترین زمان تاخیر را داشته باشند. آنها بهطور فزایندهای در آرایههای ذخیرهساز سطح بالا و به عنوان حافظه پنهان سطح 2، لایهبندی و array cache استفاده میشوند.
شکل زیر هارد و ssd و pcie ssd را در کنار هم نشان میدهد. همانگونه که در تصویر زیر مشاهده میکنید هارددیسکها و حافظههای حالت جامد از نظر ظاهری شبیه به هم هستند.
امروزه انواع مختلفی از رسانههای حالت جامد وجود دارد که از مهمترین آنها عبارتند از:
- حافظه فلش
- حافظه با قابلیت تغییر فاز (PCM) سرنام Phase-Change Memory
- ممریستور
- حافظه فروالکتریک (FRAM) سرنام ferroelectric RAM
در اینجا تمرکز ما روی حافظههای فلش است که به شکل گسترده در صنعت از آنها استفاده میشود. در مقالات آتی هنگامی که در مورد آینده ذخیرهسازها صحبت میکنیم، سایر فناوریها را بررسی میکنیم.
مزایای هاردها و رسانههای ssd
برخلاف دیسک درایو مکانیکی، رسانه حالت جامد هیچ بخش مکانیکی ندارد. مانند هر رسانه دیگری در محاسبات، تجهیزات حالت جامد مبتنی بر سیلیکون/نیمه هادی هستند. همین مسئله باعث شده تا ssd ها ویژگیها و الگوهای رفتاری بسیار متفاوتی نسبت به دیسک درایوهای چرخان داشته باشند.
ssd ها RPM یا زمان جستجوی زیاد ندارد یعنی مفهوم زمان تاخیر مکانی که نقش مهمی در دنیای هارددیسکها دارد، در اینجا چندان مورد توجه نیست. بدیهی است که هیچ تأخیر چرخشی وجود ندارد، زیرا هیچ صفحه (پلاتر) چرخشی وجود ندارد، و به همین ترتیب زمان جستجو وجود ندارد، زیرا اساسا هدهای خواندن/نوشتنی در کار نیست که باعث کندی دسترسی به اطلاعات شوند. بههمین دلیل، رسانههای حالت جامد در هنگام بارهای کاری تصادفی، در یک چشم برهم زدن اطلاعات درخواستی را ارائه میکنند. این موضوع بهویژه در ارتباط با فرآیند خواندن تصادفی صدق میکند، جایی که عملکرد حالت جامد بهجای آنکه به spinning Disk نزدیک باشد به dram نزدیکتر است.
از تفاوتهای مهم آنها به موارد زیر باید اشاره کرد:
حافظههای حالت جامد در ارتباط با بارهای کاری تصادفی رقیب ندارند، بهویژه هنگامی که صحبت از خواندن به روش تصادفی به میان آید.
رسانههای حالت جامد، به دلیل آنکه در ارتباط با مباحثی همچون مکان و زمان جستجو کمترین میزان تاخیر را داشته و عملکرد آنها قابل پیشبینی است، سرعتی چند برابر بیشتر از هارددیسکها دارند.
رسانههای حالت جامد نسبت به دیسکهای مکانیکی به انرژی کمتری نیاز داشته و گرمای کمتری تولید میکنند.
هنگامی که صحبت از هزینه به ازای هر ترابایت میشود اختلاف قیمت رسانههای حالت جامد با دیسکهای مکانیکی قابل توجه است.
رسانههای حالت جامد معمولاً یک حافظه پنهان dram کوچک دارند که به عنوان بافر شتابدهنده و برای ذخیره ابردادههایی مانند فهرست راهنمای بلوک و اطلاعات مربوط به رسانه استفاده میشود.
فلش مموری (Flash Memory) چیست؟
حافظه فلش نوعی ذخیرهساز حالت جامد است. منظور این است که مبتنی بر نیمه هادی است و هیچ بخش متحرکی ندارد و یک مکانیزم ذخیرهسازی دائمی را فراهم میکند. نوع خاصی از فلش مموری که ما استفاده میکنیم، فلش NAND نامیده میشود و دارای چند ویژگی مهم است که باید از آنها آگاه باشید که در ادامه به آنها اشاره میشود. شکل دیگری از فلش مموری، فلش NOR است، اما معمولاً در فناوری ذخیرهسازی و سازمانی استفاده نمیشود.
نوشتن روی فلش مموری
نوشتن روی حافظه فلش nand مبتنی بر یک مکانیزم عجیب است و باید به عنوان یک کارشناس ذخیرهسازی در این مورد اطلاع داشته باشید. فلش مموری از سلولهای فلش تشکیل شده که در قالب صفحات (Pages) گروهبندی میشوند. صفحات معمولا اندازههایی مثل 4K و 8K یا 16k دارند. در ادامه این صفحات به بلوکهایی که بزرگتر هستند، مثل 128K و 256K یا 512K گروهبندی میشوند. شکل زیر این موضوع را نشان میدهد.
این روش عجیب برنامهریزی/نوشتن روی فلش اشاره به چند نکته مهم دارد:
- اولین باری که روی یک درایو فلش مینویسید، عملکرد نوشتن فوقالعاده سریع است. هر سلول در بلوک روی 1 از پیش تنظیم شده قرار دارد و میتوان آنرا به صورت جداگانه روی 0 برنامهریزی کرد. با توجه به اینکه هیچگونه اطلاعاتی وجود دارد، فرآیند نوشتن سریع است، هرچند به سرعت خواندن نیست.
- اگر روی بخشی از یک بلوک فلش مموری قبلاً اطلاعاتی نوشته شده باشد، فرآیندهای بعدی نوشتن باید در بخشهای دیگری از آن بلوک انجام شود که مستلزم انجام عملیات پیچیدهتر و زمانبر است.
این فرآیندها خواندن/پاک کردن/برنامهریزی نام دارند. اصولاً کنترلر محتویات فعلی بلوک را در حافظه پنهان نگه میدارد، کل بلوک را پاک میکند و محتویات جدید را در کل بلوک مینویسد. بدیهی است که این فرآیند بسیار کندتر از زمانی است که در حال نوشتن در یک بلوک خالی هستید. خوشبختانه، این مشکل به ندرت اتفاق میافتد. در حالت کارکرد عادی، فلش درایوها دارای بلوکهای پنهانی هستند که در شرایط از پیش پاکشده هستند که فرآیند نوشتن را به این بلوکهای از پیش پاک شده هدایت میکنند. تنها زمانی که این بلوکهای از پیش پاک شده روی فلش درایو تمام میشوند، چرخه کامل خواندن/پاک کردن/برنامهریزی اجرا میشود. این وضعیت write cliff نامیده میشود.
عملیات خواندن سریعترین عملیاتی است که فلش مموری میتواند انجام دهد. یک عملیات پاک کردن تقریباً 10 برابر کندتر از خواندن است و یک عملیات برنامهریزی برای نوشتن نزدیک به 100 برابر به زمان بیشتری نسبت به خواندن نیاز دارد. بههمین دلیل است که انجام چرخه خواندن/پاک کردن/برنامهریزی عملکرد حافظه فلش را پایین میآورد.
چرا این اتفاق میافتد؟ به دلیل هزینه. در اینجا از ترانزیستورهای کمتری استفاده میشود تا هزینه ساخت به میزان قابل توجهی کاهش یابد. اولین باری که در یک بلوک حافظه فلش اطلاعاتی را مینویسید، میتوانید در یک سلول یا صفحه جداگانه بنویسید و این اتفاق سریع انجام میشود. هنگامی که یک سلول واحد را در یک بلوک تغییر دادید، هر بهروزرسانی بعدی به هر سلول در آن بلوک بسیار کندتر خواهد بود، زیرا به عملیات خواندن/پاک کردن/برنامهریزی نیاز دارد.
فرآیند پاک کردن دادهها چگونه انجام میشود؟
هر زمان تعداد کافی صفحه خالی در هر بلوکی در دسترس باشد، حافظه حالت جامد همه اطلاعات آن بلوک را به حافظه اصلی انتقال داده و دوباره اطلاعات را از حافظه اصلی واکشی کرده و به بلوک وارد میکند و صفحاتی که استفاده نشدهاند را به شکل خالی برچسبزنی میکند. دقت کنید که فرآیند حذف اطلاعات از درایو حالت جامد به معنای آن نیست که اطلاعات برای همیشه حذف خواهند شد، بلکه آدرس آنها پاک میشود، درست به همان شکلی که وقتی اطلاعات را به شکل عادی از روی هارددیسک پاک میکنید، امکان بازیابی اطلاعات آنها هنوز وجود دارد. به همین دلیل است که در گذر زمان حافظههای حالت جامد کند میشوند. زمانیکه حافظه حالت جامد جدیدی را خریداری میکنید، همه بلوکهای حافظه جدید شامل صفحات خالی هستند.
در این حالت هر زمان تصمیم میگیرید داده جدیدی را بنویسید، حافظه در یک چشم بر هم زمان این فرآیند را انجام میدهد و به مرور زمان، اطلاعات بیشتری روی حافظه نوشته میشوند و صفحات خالی بیشتری پر میشوند که این مسئله باعث بروز مشکل صفحات پراکندهای میشود که در سراسر بلوکها قرار دارند. به دلیل اینکه حافظههای حالت جامد بر عکس هاردیسکهای سنتی امکان بازنویسی دوباره دادههای موجود در یک صفحه را ندارند، در نتیجه هر زمان بخواهید داده جدیدی به آن انتقال دهید حافظه حالت جامد در اولین گام به دنبال بلوکی خواهد بود که صفحات استفاده نشده کافی داشته باشد.
در مرحله بعد صفحات موردنیاز بلوک را شناسایی و ثبت میکند. در مرحله سوم همه صفحات بلوک را خالی کرده و صفحات موردنیاز را بازنویسی میکند، در مرحله آخر صفحات باقیمانده را با دادههای جدید پر میکند. در فرآیند مذکور پس از آنکه همه صفحات خالی یک حافظه حالت جامد پر شدند، حافظه برای نوشتن دادههای جدید مراحلی که اشاره شد را تکرار میکند. بیشتر حافظههای حالت جامد بر مبنای این تکنیک کار میکنند. در حالی که این فرآیندها زمانبر به نظر میرسند، اما همه چیز به سرعت انجام میشود.
آناتومی و انواع NAND Flash
بیایید به موضوع سلولها، صفحات و بلوکها بازگردیم. عملکرد این مولفهها به وضوح با سیلندرها، هدها و بخشهای یک دیسک درایو متفاوت هستند. خوشبختانه، مکانیزم کاری فلش و سایر کنترلرهای جامد تا حدودی با مبحث آدرسدهی بلوک منطقی LBA سرنام Logical Block Addressing قرابت دارد. در اینجا، سرپرستان شبکه نیازی نیست درباره تفاوت اسمی و واقعی حافظههای فلش نگران باشند و دغدغه این را داشته باشند که سیستمعامل مقدار متفاوتی از حجم واقعی را نشان میدهد. بهعنوان یک کارشناس شبکه باید در مورد چهار نوع اصلی فلش NAND زیر اطلاعات کافی داشته باشید:
- سلول تک سطحی (SLC) سرنام Single-level cell
- سلول چند سطحی (MLC) سرنام Multi-level cell
- سلول چند سطحی سازمانی Enterprise MLC (eMLC)
- سلول سه سطحی (TLC) سرنام Triple-level cell
همانگونه که مشاهده خواهید کرد هر یک از این حافظهها مزایا و معایب خاص خود را دارند.
سلول تک سطحی (SLC)
در ابتدا درایوهای حالت جامد، مبتنی بر سلول تک سطحی (SLC) بودند. در دنیای SLC، یک سلول فلش میتواند 1 بیت داده را ذخیره کند. بار الکتریکی اعمال شده به سلول توصیفکننده وضعیت روشن یا خاموش است که معادل مقدار باینری 0 یا 1 است. شکل زیر یک سلول فلش SLC را نشان میدهد.
از بین انواع nand فلش، slc بالاترین عملکرد و طول عمر را دارد، قیمت بالایی دارد و کمترین چگالی/ظرفیت را ارائه میکند. عملکرد بالا و بهکارگیری مکانیزم دقیق و هوشمندانه در مورد بارهای کاری نوشتنی، باعث شده تا این مدل حافظهها گزینه مناسبی برای برنامههای محاسباتی سطح بالا باشند. در دنیای تجارت، مفهوم محاسبات پیشرفته اهمیت زیادی ندارند و بهگونهای نیست که سازندگان بتوانند سود زیادی دریافت کنند. تقریبا شرکتهای بزرگ به بازارهای مصرفی پر سود اهمیت میدهند. در نتیجه فلاش slc روزبهروز در حال به حاشیه رفتن است. با توجه به اینکه بالاترین حجمی که این حافظهها ارائه میکنند در ظرفیت گیگابایت است، اما هزینه تولید و فروش آنها بالا است، شاید آنقدر هم بد نباشد که نمونههای بهتر جایگزین آنها شوند. به این نکته نیز دقت کنید که slc کمترین مصرف انرژی را در بین گزینههای دیگر دارد، اما کمتر شرکتی به آن اهمیت میدهد.
نکته: معمولا طول عمر حافظههای فلاش NAND بر حسب چرخههای نوشتن/برنامهریزی /پاک کردن آنها محاسبه میشود. SLC معمولاً دارای چرخه عمر 100000 PE (Program/Erase) هستند. این اصطلاح اشاره به این نکته دارد که تا 100000 هزار مرتبه میتوان فلش را پاک کرد، بدون آنکه قابلیت اطمینان آن زیر سوال برود. مقداری که بهعنوان طول عمر حافظههای فلش ارائه میشود به این نکته اشاره دارد که فلش به تدریج که فرآیند برنامهریزی و پاک کردن محتویات سلول را انجام میدهد عمر فیزیکی آن کاهش پیدا میکند.
هنگامی که یک فلش جدید خریداری میکنید همه سلولهای آن روی مقدار 1 تنظیم شدهاند. سلولهای فلش فقط از 1 تا 0 قابل برنامهریزی هستند. اگر میخواهید مقدار یک سلول را به صفر تغییر وضعیت دهید، باید این فرآیند را از طریق یک عملیات پاک کردن بلوک (Block-Erase) انجام دهید. پاک کردن حافظه فلش فقط در سطح بلوک قابل انجام است و همانطور که اشاره کردیم، بلوکها میتوانند اندازه بزرگی داشته باشند. اگر قصد دارید به دنیای حافظههای فلش وارد شوید توصیه میکنم دو مقاله آتی را دوباره مطالعه کنید تا با کموکیف کار آشنا شوید.
این روش پاک کردن بلوک به این صورت است که یک ولتاژ سطح بالا به یک بلوک کامل اعمال میشود و باعث میشود تا کل محتویات بلوک به 1s بازنشانی شوند. این کار همان اصطلاح معروفی است که تعمیرکاران ایرانی در محصولاتی مثل گوشیهای هوشمند از آن استفاده میکنند و به شما میگویند دستگاه را باید فلش کنید.
اینکار در مورد حافظههای EEPROM قدیمیتر نیز استفاده میشود که حافظه خواندنی قابل برنامهریزی با قابلیت پاک کردن الکترونیکی هستند. در اینجا از نور uv برای پاک کردن اطلاعات استفاده میشود.