بله، قیمت تجهیزات ذخیرهسازی سرسامآور شده است. وقتی قیمت SSD تنها در یک سال تا سه برابر بالا میرود، آدم بهراحتی وسوسه میشود دنبال… «فرصت خرید» بگردد. منظورم از فرصت خرید، قیمتی است که روزهای خوش گذشته را به یاد میآورد؛ مثلاً همین پارسال.
من هم در همین دام افتادم. برای ایستگاه کاریام یک SSD یکترابایتی NVMe تازه میخواستم. کاری که کردم ساده بود: به صفحهٔ فروشگاه رفتم، محصولات را بر پایهٔ NVMe یکترابایتی پالایش کردم، آنها را بر اساس قیمت مرتب کردم و ارزانترین گزینه را خریدم. به همین سادگی.
سرانجام به Lexar NQ780 یکترابایتی رسیدم. قیمتش از SSDهای سامسونگی که به آنها عادت داشتم بهتر بود. خوب هم کار میکرد؛ البته تا وقتی که دیگر نکرد.
ارزانترین SSD یکترابایتی را که پیدا کردم خریدم
مشخصات روی کاغذ عالی بود؛ همیشه هم عالی است

این SSD را برای سرور خانگیام گرفتم. دستگاه یک HP Z6 G4 است که از نظر فنی ایستگاه کاری به شمار میرود، اما من از آن بهعنوان سرور استفاده میکنم. پس از بارگیری چند مدل زبانی بزرگ با وزنهای باز، فضای ذخیرهسازی خیلی زود رو به پرشدن رفت و من فضای بیشتری میخواستم.
خلاصه هرچه بود گذشت و Lexar را خریدم. دستگاه Z6 G4 من کمی قدیمی است؛ بنابراین شکافهای M.۲ آن از PCIe ۳.۰ استفاده میکنند. اگر قرار بود گلوگاهی وجود داشته باشد، مادربردم عامل آن بود، چون Lexar یک درایو PCIe ۴.۰ است.
روی کاغذ، Lexar از سامسونگی که جایش را میگرفت سریعتر بود: سرعت خواندن ۶,۰۰۰ MB/s و نوشتن ۲,۵۰۰ MB/s، در برابر سرعتهای ۳,۱۰۰ و ۱,۴۰۰ در Samsung SM961 قدیمی من. سرعت PCIe ۳.۰ در عمل نهایتاً به حدود ۳.۵ GB/s میرسد؛ پس هرگز سرعت کامل خواندن را نمیدیدم، اما سرعت نوشتن بهراحتی در این محدوده جا میگرفت. ارزانتر و سریعتر؛ چه ایرادی میتوانست داشته باشد؟ اینگونه خودم را برای خریدش قانع کردم. البته قیمت مضحک تجهیزات ذخیرهسازی در این روزها هم بیتأثیر نبود؛ بهتر است اصلاً وارد آن بحث نشوم.
| سامسونگ SM961 با ظرفیت 256GB | لکسر NQ780 با ظرفیت 1TB | |
|---|---|---|
| رابط اتصال | رابط PCIe ۳.۰ x4 | رابط PCIe ۴.۰ x4 |
| کنترلگر | سامسونگ پولاریس | اینوگریت IG5236 |
| حافظهٔ NAND | حافظهٔ V-NAND از نوع MLC دوبیتی | حافظهٔ QLC با ۱۴۴ لایه |
| حافظهٔ DRAM | دارد، از نوع LPDDR3 | ندارد |
| سرعت اسمی خواندن / نوشتن | سرعت ۳,۱۰۰ / ۱,۴۰۰ MB/s | سرعت حدودی ~۶,۰۰۰–۶,۵۰۰ / ۲,۵۰۰ MB/s |
انصافاً Lexar خوب کار میکرد. تقریباً اصلاً متوجه حضورش نمیشدم؛ تا اینکه بالاخره خودش را نشان داد. داشتم یک ماشین مجازی Proxmox را از درایوی به درایو دیگر منتقل میکردم. حجم دیسک حدود ۱۴۵ گیگابایت بود و انتقال از یک درایو NVMe به درایو NVMe دیگری انجام میشد. مگر سرعت یک درایو NVMe چقدر است؟ حتماً از ۱ GB/s کمتر نیست، نه؟ در این صورت باید کمتر از سه دقیقه منتظر میماندم.
اما کار طبق برنامه پیش نرفت. چند ثانیهٔ نخست سریع بود، سپس سرعت SSD تا حدی افت کرد که دیگر هیچ شباهتی به سرعت یک SSD نداشت. نمیتوانستم عملیات را لغو کنم؛ چون اگر لغوش میکردم، بعدش چه باید میکردم؟
| نماگرفت امیر بهلولی برای MUO |
|---|
| ~ این انتقال بسیار بیشتر از ۳ دقیقه طول کشید. |
اوضاع از این هم بدتر بود، چون از راه یک نشست SSH و با اتصالی بیثبات و نامطمئن کار میکردم. از Zellij هم استفاده نمیکردم. اگر ارتباطم قطع میشد، کار نیز بهشکل ناخوشایندی متوقف میشد. Proxmox دیسک مبدأ را تنها پس از پایان انتقال پاک میکند؛ بنابراین ماشین مجازی را از دست نمیدادم، اما باید انبوهی از دادههای نیمهکارهٔ کپیشده را جمعوجور میکردم.
SSD فقط ظرفیت و سرعت نیست
از DRAM، حافظهٔ NAND و نهانگاه SLC بگوییم





ظرفیت و سرعتهای خواندن و نوشتنی که روی جعبه درج میشوند، همهچیز را دربارهٔ یک SSD نمیگویند. برای کارهای سبک، هر SSD با فضای ذخیرهسازی کافی پاسخگوست؛ اما وقتی آن را زیر فشار میگذارید، جزئیات فنی پنهان درونش اهمیت پیدا میکنند.
حافظهٔ DRAM
پیش از هر چیز، تکلیف DRAM را روشن کنیم. DRAM تراشهٔ کوچک و جداگانهای از نوع RAM است که روی خود SSD قرار دارد. درایو نقشهٔ محل فیزیکی تکتک دادهها را در آن نگه میدارد. SSDهای خوب معمولاً چنین تراشهای دارند، اما وجودش ضروری نیست. SSD من از Lexar فاقد DRAM است و در عوض، برای همین کار بخش کوچکی (~64MB) از RAM اصلی سامانهٔ میزبان را قرض میگیرد؛ قابلیتی که «بافر حافظهٔ میزبان» (HMB) نام دارد.
در استفادهٔ روزمره، عملکرد درایوهای HMB به درایوهای مجهز به DRAM نزدیک است. تفاوت هنگامی آشکار میشود که خواندن و نوشتن تصادفی در سراسر درایو انجام گیرد یا با بارهای کاری ترکیبی، مانند اجرای همزمان چند ماشین مجازی، روبهرو باشیم. این تفاوت ارتباط چندانی با انتقالهای ترتیبی و حجیم، مانند کاری که من انجام میدادم، ندارد. بنابراین مقصر این ماجرا نبود؛ هرچند وجود DRAM در میزبان Proxmox همچنان ارزشمند است.
حافظهٔ NAND؛ از SLC و MLC تا TLC و QLC
موضوع بعدی خود حافظهٔ NAND است؛ همان سلولهایی که دادهها واقعاً در آنها نگهداری میشوند. هر سلول داده را در قالب یک سطح ولتاژ ذخیره میکند. در حافظهٔ NAND کلاسیک از نوع SLC (سلول تکسطحی)، هر سلول فقط دو سطح ولتاژ دارد: یا این حالت یا آن حالت، یعنی یک بیت. به همین دلیل خواندن و نوشتن آن آسان است، زیرا درایو تنها باید میان دو گزینه یکی را برگزیند.
| امیر بهلولی / MUO |
|---|
| تا امروز ۳ SSD از نوع NVMe و ساخت Samsung خریدهام، اما این یکی را که در همان دستگاه نصب کردهام، در واقع «نخریده بودم». آن را از یک رایانهٔ ازپیشاسمبلشده بیرون کشیدم؛ درایو واقعاً خوبی است. |
سازندگان برای گنجاندن دادههای بیشتر در همان فضا، ذخیرهسازی چند بیت در هر سلول را آغاز کردند: MLC (چندسطحی، ۲ بیت)، TLC (سهسطحی، ۳ بیت) و QLC (چهارسطحی، ۴ بیت). هر بیت اضافه، شمار حالتهای ولتاژی را که سلول باید از یکدیگر تشخیص دهد دو برابر میکند. MLC به ۴ حالت، TLC به ۸ حالت و QLC به ۱۶ حالت نیاز دارد. اگر بخواهیم ساده بگوییم، هر سلول QLC مانند چهار سلول SLC است که در یک سلول فشرده شدهاند.
مزایا و معایب این فناوری مستقیماً از معماری آن سرچشمه میگیرند. از همان تعداد سلول، فضای ذخیرهسازی بیشتری به دست میآید و در نتیجه هزینهٔ هر گیگابایت کاهش مییابد. در مقابل، وقتی ۱۶ حالت در یک بازهٔ ولتاژی یکسان گنجانده شوند، فاصلهٔ میان آنها بسیار ناچیز میشود. نوشتن نیز بیشتر طول میکشد، زیرا درایو باید بار الکتریکی را با دقت فراوان تنظیم کند. سلولها همچنین زودتر فرسوده میشوند؛ بنابراین QLC در مقایسه با TLC بازنویسیهای بسیار کمتری را تاب میآورد و دوام TLC نیز از MLC کمتر است.
درایو Lexar من از نوع QLC است، اما Samsung SM961 قدیمیام از MLC بهره میبرد.
حافظهٔ نهان SLC
در این میان، مهندسی جالبی هم به کار رفته است. سلولها بخش سختافزاریاند، اما این میانافزار است که تعیین میکند هر سلول چند بیت را ذخیره کند. به همین دلیل، تقریباً همهٔ درایوهای TLC و QLC از حافظهٔ نهان SLC بهره میبرند: درایو سلولهای آزاد را موقتاً در حالت تکبیتی SLC به کار میگیرد.
در یک درایو خالی 1TB از نوع QLC، تقریباً تا یکچهارم فضای آزاد میتواند نقش حافظهٔ نهان SLC را ایفا کند؛ یعنی حداکثر حدود 250GB. هرچه مینویسید، ابتدا با بیشترین سرعت در این بخش جای میگیرد؛ همان سرعتی که روی جعبه میبینید. سپس وقتی درایو بیکار است، دادهها را در قالب QLC فشرده میکند تا حافظهٔ نهان دوباره آزاد شود.
فضای حافظهٔ نهان از بخش آزاد درایو تأمین میشود؛ بنابراین هرچه درایو پُرتر شود، این فضا کوچکتر خواهد شد. وقتی حجم دادههای نوشتهشده از گنجایش حافظهٔ نهان فراتر برود، درایو ناچار است دادهها را مستقیماً روی QLC بنویسد و همزمان در پسزمینه حافظهٔ نهان را نیز تخلیه کند. در مدل 1TB من، این وضعیت در بهترین حالت به سرعتی در حد چند صد MB/s میانجامد.
حالا دیگر میدانید چه بر سر من آمد.
Samsung قدیمی من همین جابهجایی را از آغاز تا پایان با سرعت ثابت ۱.۲ تا ۱.۴ GB/s انجام میداد. چون از نوع MLC است، اساساً به حافظهٔ نهان SLC نیازی ندارد. درایوی که روی کاغذ کُندتر بود، کار را در حدود دو دقیقه به پایان میرساند.
SSD «ارزان» وجود ندارد
بهای واقعی را برای سلولها میپردازید
خلاصه اینکه مهمترین نتیجهای که گرفتم این است: چیزی به نام SSD «ارزانتر» وجود ندارد. ظرفیت و سرعت درجشده روی جعبه فقط نشان میدهند درایو در بهترین لحظات خود چه عملکردی دارد.
این حرف به معنای بد بودن درایو Lexar نیست؛ برعکس، دقیقاً همانگونه کار کرد که برایش طراحی شده بود. برای کتابخانهای از وزنهای LLM که یک بار نوشته و بارها خوانده میشوند، QLC کاملاً مناسب است و درایو من نیز همانجا خواهد ماند. این تجربه فقط مرا غافلگیر کرد؛ حالا که آن را با شما در میان گذاشتهام، امیدوارم شما غافلگیر نشوید.
منبع: این مطلب ترجمه و بومیسازی مقالهای از MakeUseOf به قلم Amir Bohlooli است. مشاهده مقاله اصلی