آشنایی با اجزاء هارد HDD و نحوه کارکرد آنها
بیش از 50 سال است که از هارد دیسک ها برای ذخیره سازی اطلاعات استفاده می شود. با افزایش نیازهای ذخیره سازی و مخصوصا نیاز به سرعت بالاتر در ذخیره سازی اطلاعات، محدودیت ها برای استفاده از هارد دیسک ها در حال افزایش است. با وجود این محدودیت ها، و با توجه به مزایای این نوع درایوها به نظر می رسد که سالها از آنها استفاده خواهیم کرد. در این مقاله سعی داریم با فناوری ساخت و اجزاء هاردهای HDD آشنا شویم.
بیش از 50 سال است که در هارد دیسک ها برای ذخیره سازی اطلاعات از یک روش استفاده می شود؛ به طوریکه در طول این سالها با پیشرفت تکنولوژی، تغییر اصلی در سرعت ذخیره سازی، حجم فیزیکی و فضای ذخیره سازی آنها بوده است. برای مثال در سال 1956، هارد دیسک IBM 350 RAMAC رونمایی شد که با ارائه 4MB فضای ذخیره سازی، وزن آن حدود یک تن و حجم فیزیکی آن تقریبا هم اندازه دو یخچال معمولی در کنارهم بود به طوریکه جابجایی آن تنها با دستگاه لیفت تراک امکان پذیر بود. این درحالی است که هارد دیسک های امروزی 4TB فضای ذخیره سازی را در حجمی اندازه جیب شما ارائه می کنند. دقت کنید که 4TB یک میلیون بار بیشتر از 4MB است.
ساختار هارد دیسک ها
آخرین قطعه ی مکانیکی باقی مانده در سرورها، لپتاپ ها و PCها، دیسک درایو می باشد. وجود قطعات مکانیکی در هارد دیسک باعث می شود تا نسبت به باقی اجزاء سرور صدها و گاهی تا هزار برابر کندتر باشد. هارد دیسک ها از دو بخش HDA1 و Logic board تشکیل شده اند. بخش HDA که اطلاعات در آن نگهداری می شود، برای محافظت در برابر گرد و خاک مهر و موم شده است.
قطعات مکانیکی بخش HDA هارد دیسک شامل موارد زیر می شود:
- Platter
- Read/Write head
- Actuator assembly
- Spindle motor
Platter
پلتر قطعه ای است که اطلاعات در آن ذخیره می شود. پلتر شمایلی گرد دارد و در عین حال که نازک است، بسیار سفت و محکم هم می باشد به طوری که خم نمی شود؛ سطح آن به طور باورنکردنی صاف و صیقلی می باشد و با سرعت بالایی می چرخد. اطلاعات توسط R/W head بر روی پلتر نوشته و از روی آن خوانده می شود، و R/W head هم توسط Actuator assembly کنترل می شود. در ادامه در مورد این موارد بیشتر توضیح خواهیم داد.
پلترها معمولا از لایه ای از شیشه و یا آلومینیوم تشکیل شده اند که توسط لایه ای مغناطیسی پوشانده شده است. هر دو سطح پلتر، پشت و رو، برای ذخیره سازی استفاده می شوند.
دیسک درایوها از تمام ظرفیت خود استفاده می کنند و هیچ فضایی را هدر نمی دهند. اکثر دیسک درایوها چندین پلتر دارند که روی هم استک شده اند. این پلتر ها به یک موتور مرکزی (spindle) متصل شده اند و به صورت همرمان می چرخند، این بدین معنا است که تمام حرکت ها و ایستادن ها و سرعت در آنها برابر است.
سطح صاف و صیقلی و سفت پودن پلتر بسیار مهم است. کوچک ترین برآمدگی بر روی پلتر می تواند منجر به برخورد head با پلتر و از دست رفتن اطلاعات شود.
Read/Write head
Read/Write head که از آنها با نام های R/W head و یا head هم یاد می شود، اجزائی هستند که روی پلتر حرکت می کنند و می چرخند بدون آنکه با آن تماسی داشته باشند، و بر روی آن اطلاعات را می نویسند و یا از روی آنها اطلاعات را می خوانند. آنها بر روی بازوی actuator قرار می گیرند و توسط firmware موجود بر روی conttroler دیسک درایو کنترل می شوند. این بدان معناست که ردهای بالاتر سیستم ها مانند سیستم عامل، volume manager ها و file system ها تسلطی بر روی head ندارند، و یا بهتر است بگوییم که از وجود آن خبر ندارند.
Track و sector
سطح هر پلتری به بخش های میکروسکوپیکی به نام track و sector تقسیم می شود.
سطح پلتر از تعداد زیادی track تشکیل شده، دایره هایی با شعاع های متفاوتی که مرکز آنها یک نقطه مشترک است. هر track به بخش های کوچکتری به نام سکتور تقسیم می شود.
هر سکتور کوچک ترین واحد قابل آدرس دهی در دیسک درایوها می باشد که معمولا 512 بایت ظرفیت دارد. برای مثال اگر برای ذخیره سازی 1024 بایت اطلاعات، به دو سکتور نیاز خواهید داشت. این موضوع را هم در نظر بگیرید که هر سکتور به یک داده اختصاص دارد و برای ذخیره کردن 256 بایت، یک سکتور کامل استفاده می شود و 256 بایت دیگر آن تلف می شود. در واقع نمی توان نیمی از سکتور را برای ذخیره سازی بخشی از داده اول و نیمه ی دوم را برای بخشی از داده دوم اختصاص داد. البته در مقیاس کلی و در محیط واقعی، این فضاهای پرتی به اندازه ای نیستند که بخواهید نگران آن باشید.
دیسک درایوهایی که از پروتکل SATA استفاده می کنند، سایز سکتور مشخصی دارند که قابل تغییر نیستند. این درحالی است که سایز سکتور را می توان در دیسک درایوهایی که از پروتکل SAS استفاده می کنند، تغییر داد. متفاوت بودن سایز سکتور در مواردی که از تکنولوژی هایی مانند EDP استفاده می شود کاربرد دارد. در این تکنولوژی سایز سکتور 520 بایت می شود. 8 بایت اضافه شده در این تکنولوژی برای نگهداری اطلاعات اضافه ای برای بررسی صحت اطلاعات استفاده می شود که مبادا اطلاعات در جابجایی ها دچار آسیب شده باشند.
همانطور که در تصویر زیر مشخص شده است، سایز فیزیکی سکتورهایی که به مرکز پلتر نزدیک هستند از سکتور هایی که در لبه بیرونی پلتر هستند کوچک تر است. از آنجایی که هرسکتور مقدار مشخصی از اطلاعات را نگهداری می کند، سکتورهای بیرونی فضای تلف شده زیادی خواهند داشت. برای برطرف کردن این مشکل و استفاده حداکثری از فضای در دسترس، دیسک درایوهای مدرن از سیستمی به نام ZDR2 استفاده می کنند. در این سیستم تعداد سکتورهای موجود در ترک های بیرونی بیشتر از ترک های درونی است. در واقع پلتر به zoneهای مختلفی تقسیم می شود که ترک های موجود در هر زون، تعداد سکتور یکسانی دارند. برای مثال تصویر زیر دو زون دارد. ترک های زون بیرونی 16 سکتور و ترک های زون درونی 8 سکتور دارند. در این تصویر هر زون سه ترک دارد. در تصویر زیر 72 سکتور وجود دارد که در نبود ZDR تعداد آنها به دو سوم این مقدار یعنی 48 سکتور کاهش می یابد.
Flying height
Head در ارتفاع بسیار کمی نسبت به پلتر پرواز می کند که به آن Flying height می گویند. این ارتفاع با معیار نانومتر سنجیده می شود. اگر ناچیز بودن نانومتر برای شما ملموس نیست، این ارتفاع از ضخامت ذره ی گرد و خاک و یا ارتفاع برآمدگی اثر انگشت شما هم کمتر است. تصویر زیر این موضوع را نمایش می دهد. این فاصله نانومتری پیچیدگی و سطح بالای تکنولوژی موجود در این هارد دیسک ها را نمایش می دهد. فاصله هد از پلتر به اندازه ای نزدیک است که Read/Write head با پلتر برخورد نکند و از طرفی به اندازه ای دور است که Read/Write head مشکلی در نوشتن و خواندن نداشته باشد.
در میان اجزاء هارد دیسک ها، تنها Flying height نیست که بسیار دقیق و جزئی است، جایگیری head بر روی sector صحیح هم یک فرایند بسیار دقیق و حساسی است. در صورتی که head در سکتورهای اشتباهی عملیات خواندن و نوشتن را انجام دهد، corruption اتفاق میوفتد.
Head crash
این موضوع بسیار مهم است که head به هیچ وجه با پلتر برخورد نکند، در صورت برخورد این دو، head crash اتفاق میوفتد. این موضوع منجر می شود که اطلاعات بخش های آسیب دیده در دیسک درایو از دسترس خارج شوند.
نوشتن بر روی platter و خواندن از روی آن
head در حین اینکه بر روی سطح پلتر حرکت می کند، قابلیت تشخیص و تغییر بار مغناطیسی sectorهایی که از روی آنها عبور می کند را دارد.
در زمان نوشتن اطلاعات بر روی پلتر، هنگامیکه head روی سکتور مورد نظر می رسد، بار مغناطیسی آن سکتور را تغییر می دهد. بار مغناطیسی به گونه ای تغییر می کند که نمایانگر صفر و یک های باینری باشد. در زمان خواندن اطلاعات، head بار مغناطیسی سکتوری که زیر آن قرار دارد را تشخیص می دهد و مشخص می کند که بار آنها نمایانگر کدام عدد باینری است. نکته ای که باید به آن توجه کرد این است که محدودیتی در تعداد دفعات نوشتن بر روی یک سکتور و خواندن از روی آن وجود ندارد.
Actuator Assembly
یک واحد از Actuator Assembly یا بازوی محرک در هر دیسک درایو وجود دارد که توسط firmware موجود در کنترلر، کنترل می شود. وظیفه ی این بازو جابجا کردن head ها می باشد. درواقع بازوی محرک head ها را در جهت شعاع پلتر جابجا می کنند تا آنها را بر روی ترک صحیح قرار دهند. این بازوها با سرعت و دقت خیره کننده ای حرکت می کنند. از آنجایی که هر دیسک درایو تنها یک Actuator Assembly دارد، تمام head ها (هر سطح پلتر یک Read/Write head دارد) در کنار هم و با هم حرکت می کنند.
موتورSpindle
تمامی پلترهای یک هارد دیسک به موتور spindle آن متصل هستند. موتور spindle پلترها را می چرخاند. همانطور که اشاره کردیم بازوی محرک، head ها را در جهت شعاع پلتر جابجا می کنند و آنها را بر روی ترک صحیح قرار می دهند. بعد از قرار گرفتن head بر روی ترک صحیح، موتور spindle با چرخاندن پلتر ها، head ها را بر روی سکتور صحیح قرار می دهند. موتور spindle همانند بازوی محرک، به طور خیره کننده ای سریع و دقیق است.
مرکز هر پلتر به موتور spindle متصل است و با چرخش spindle پلترها هم می چرخند. از این رو تمام پلترها با هم حرکت می کنند، درواقع با سرعت برابری حرکت می کنند و می ایستند. لازم به ذکر است واحد چرخش پلتر ها RPM3 می باشد.
Controller
هر هارد دیسکی، کنترلر خودش را دارد. کنترلر در واقع یک کامپیوتر کوچک است که پردازنده و مموری دارد و تنها برای کنترل هارد دیسک طراحی شده است. Firmware که یکی از مهمترین اجزای هارد دیسک ها می باشد بر روی کنترلر قرار دارد.
کنترلر پیچیدگی های عملکردهای فیزیکی هارد دیسک ها را پوشش می دهد و چیدمان اطلاعات بر روی هارد دیسک را به صورت مفهومی ساده (LBA4) برای سیستم های رده بالاتر مانند BIOS و سیستم عامل خلاصه می کند. سیستم های سطح بالاتر مانند سیستم عامل توانایی اعمال دستورهای ساده ای مانند read و write به کنترلر را دارند، که کنترلر آنها را به دستورهای پیچیده ای برای اجزایش تبدیل می کند. از وضایف دیگر کنترلر می توان به پایش وضعیت سلامت هارد دیسک، گزارش مشکلات و نگهداری bad block map اشاره کرد.
bad block map مجموعه ای از سکتورهایی است که نمی توان روی آنها نوشت و توسط کنترلر نادیده گرفته می شوند. کنترلر معمولا مجموعه ی دیگری از سکتورها که در ابتدا برای این موضوع کنار گذاشته شده اند را جایگزین این سکتورها می کند که اصطلاحا به آن remap می گویند.