با استفاده از قابلیتهای RAID نرمافزار لینوکس، میتوان از ابزار mdadm برای ایجاد و مدیریت آرایههای ذخیرهسازی استفاده کرد. ادمینها از انعطافپذیری بالایی در هماهنگ کردن دستگاههای ذخیرهسازی خود و ایجاد دستگاههای ذخیرهسازی منطقی (Logical) که دارای عملکرد یا ویژگیهای افزونگی بیشتری هستند برخوردارند. در این راهنما، متوجه میشوید که RAID چیست و پیکربندی RAID در لینوکس در حالتهای مختلف را که در یک سرور مجازی لینوکس اوبونتو قابلاستفاده است انجام خواهید داد. همچنین بهمنظور دستیابی به عملکرد بهتر توصیه میشود پیکربندی RAID در لینوکس را بر روی سرور اختصاصی انجام دهید.
پیشنیازها
برای انجام مراحل این راهنما، به این موارد نیاز دارید:
- یک کاربر غیر روت با امتیازات sudo در سرور اوبونتو.
درک اولیه از اصطلاحات و مفاهیم پیکربندی RAID در لینوکس
چندین دستگاه ذخیرهسازی خام (RAW) در سرور شما موجود است. مثالهایی که در این آموزش آمده است نحوه پیکربندی انواع مختلف آرایهها را در سرور نشان میدهد. بهاینترتیب، برای پیکربندی به چند درایو نیاز خواهید داشت.
بسته به نوع آرایه، به دو تا چهار دستگاه ذخیرهسازی نیاز دارید. قبل از دنبال کردن این راهنما، نیازی نیست این درایوها را فرمت کنید.
ریست کردن دستگاههای RAID موجود (اختیاری)
اگر هنوز هیچ آرایهای را تنظیم نکردهاید، میتوانید فعلا این بخش را نادیده بگیرید. این راهنما چند مورد از سطوح مختلف RAID را معرفی میکند. اگر میخواهید هر سطح RAID را برای دستگاههای خود دنبال کرده و تکمیل کنید، احتمالا میخواهید بعد از انجام مراحل هر بخش، از دستگاههای ذخیرهسازی خود مجددا استفاده کنید. از این بخش (ریست کردن دستگاههای RAID) میتوانید بهعنوان یک مرجع برای امتحان کردن هر سطح جدید از پیکربندی RAID در لینوکس استفاده کنید.
هشدار: این فرایند، آرایه و هر دادهای که روی آن نوشته شدهاست را بهطور کامل از بین میبرد. مطمئن شوید که روی آرایه صحیح کار میکنید و هر دادهای را که باید قبل از حذفشدن آرایه حفظ کنید، کپی کردهاید.
با پیدا کردن آرایههای فعال در فایل /proc/mdstat کارتان را شروع کنید:
اکنون آرایه را از فایل سیستم unmount کنید:
اکنون آرایه را متوقف و حذف کنید:
دستگاههایی را که برای ساخت آرایه استفاده شدهاند را با دستور زیر پیدا کنید:
هشدار: بهخاطر داشته باشید که نام /dev/sd* میتواند هر زمان که ریست میکنید تغییر کند. هربار آنها را بررسی کنید تا مطمئن شوید که روی دستگاههای درستی کار میکنید.
پس از کشف دستگاههایی که برای ایجاد آرایه استفاده میشوند، سوپربلاک آنهایی که متادیتا را برای پیکربندی RAID در لینوکس نگه میدارد صفر کنید. صفر کردن این سوپربلاک، متادیتای RAID را حذف کرده و آنها را به حالت عادی ریست میکند:
همچنین توصیه میشود هرگونه ارجاع دائمی به آرایه را حذف کنید. فایل /etc/fstab را ویرایش کنید و ارجاع به آرایه خود را به حالت کامنت تبدیل کرده یا حذف کنید. میتوانید با قرار دادن نماد هشتگ (#) در ابتدای خط، با استفاده از nano یا ویرایشگر متن دلخواه خود، ارجاع دادن را به کامنت تبدیل کنید:
همچنین، از طریق فایل /etc/mdadm/mdadm.conf، تعریف آرایه را به کامنت تبدیل کرده یا حذف کنید.
در نهایت، مجددا initramfs را بهروز کنید تا فرایند بوت اولیه تلاش نکند یک آرایه ناموجود را اجرا کند:
از این لحظه، شما باید برای استفاده از دستگاههای ذخیرهسازی به صورت مستقل یا به عنوان جزئی از یک آرایه متفاوت آماده باشید.
ایجاد یک آرایه RAID 0
در پیکربندی RAID برای لینوکس، آرایه RAID 0 با تقسیم کردن دادهها به قطعات و جدا کردن آن در دیسکهای موجود، پیکربندی RAID را انجام میدهد. این یعنی هر دیسک حاوی بخشی از دادهها است و هنگام بازیابی اطلاعات به چندین دیسک ارجاع داده میشود.
- شرایط مورد نیاز: حداقل دو دستگاه ذخیرهسازی.
- مزیت اصلی: عملکرد از نظر خواندن/نوشتن و ظرفیت.
- مواردی که باید درنظر داشته باشید: مطمئن شوید که پشتیبانگیری شما کارآمد است. یک خرابی کوچک در یکی از دستگاههای ذخیرهسازی میتواند تمام دادههای آرایه را از بین ببرد.
شناسایی دستگاههای جزو آرایه
برای شروع کار، شناسههای مربوط به دیسکهای خامی را که استفاده میکنید پیدا کنید:
در این مثال، شما دو دیسک بدون فایل سیستم دارید که هر کدام 100 گیگابایت ظرفیت دارد. در این Session به این دستگاهها شناسههای /dev/sda و /dev/sdb داده شدهاست و هر دو دستگاه اجزای خام مورداستفاده برای ساخت آرایه خواهند بود.
ایجاد آرایه
برای ایجاد یک آرایه RAID 0 با این اجزا، آنها را به دستور mdadm –create منتقل کنید. شما باید نام دستگاهی را که میخواهید ایجاد کنید، سطح RAID و تعداد دستگاهها را مشخص کنید. در این مثال دستوری، نام دستگاه را /dev/md0 میگذارید و دو دیسکی را که آرایه را میسازند در نظر میگیرید:
با بررسی فایل /proc/mdstat مطمئن شوید که RAID با موفقیت ایجاد شدهاست:
این خروجی نشان میدهد که دستگاه /dev/md0 بااستفاده از دستگاههای /dev/sda و /dev/sdb و در پیکربندی RAID 0 ساخته شدهاست.
ایجاد و mount کردن فایل سیستم
اکنون باید بر روی آرایه یک فایل سیستم در توزیع لینوکس اوبونتو بسازید:
سپس، یک mount پوینت (Mount Point) برای اتصال به فایل سیستم جدید ایجاد کنید:
شما میتوانید با دستور زیر، فایل سیستم جدید را mount کنید:
بعد از این، باید چک کنید که آیا فضای جدید در دسترس قرار گرفته است یا خیر:
فایل سیستم جدید حالا mount شده و در دسترس قرار دارد.
ذخیرهسازی چیدمان آرایه
برای اینکه مطمئن شوید آرایه بهطور خودکار در هنگام بوت مجددا اسمبل میشود، باید فایل /etc/mdadm/mdadm.conf را تنظیم کنید. شما میتوانید بهطور خودکار آرایه فعال را اسکن کرده و موارد زیر را به فایل اضافه کنید:
پس از آن میتوانید initramfs یا فایل سیستم RAM اولیه را بهروزرسانی کنید تا آرایه در طول فرایند بوت اولیه در دسترس باشد:
برای mount شدن خودکار در هنگام بوت، گزینههای mount فایل سیستم جدید را به فایل /etc/fstab اضافه کنید:
آرایه RAID 0 شما اکنون بهطور خودکار در هر بوت اسمبل و mount میشود.
اکنون پیکربندی RAID در لینوکس به پایان رسیده است. اگر میخواهید یک RAID دیگر را امتحان کنید، دستورالعملهای ریست کردن در ابتدای این آموزش را دنبال کنید تا با ایجاد یک نوع آرایه RAID جدید کار خود را ادامه دهید.
ایجاد یک آرایه RAID 1
آرایه RAID 1 با Mirroring یا همانندسازی دادهها در تمام دیسکهای موجود پیادهسازی میشود. هر دیسک در یک آرایه RAID 1 یک کپی کامل از دادهها را دریافت میکند و درصورت خرابی یکی از دستگاهها، ویژگی افزونگی را ارائه میدهد.
- شرایط موردنیاز: حداقل دو دستگاه ذخیرهسازی.
- مزیت اصلی: افزونگی بین دو دستگاه ذخیرهسازی.
- مواردی که باید درنظر داشته باشید: از آنجاییکه دادهها در دو نسخه نگهداری میشود، فقط نیمی از فضای دیسک قابلاستفاده خواهد بود.
شناسایی دستگاههای جزو آرایه
برای شروع، شناسههای مربوط به دیسکهای خامی را که استفاده میکنید پیدا کنید:
در این مثال، شما دو دیسک بدون فایل سیستم دارید که هر کدام 100 گیگابایت ظرفیت دارد. برای این سشن، به این دستگاهها شناسههای /dev/sda و /dev/sdb داده شدهاست و اجزای خامی هستند که برای ساخت آرایه استفاده میکنید.
ایجاد آرایه
برای ایجاد یک آرایه RAID 1 با این اجزا، آنها را به دستور mdadm –create منتقل کنید. شما باید نام دستگاهی را که میخواهید ایجاد کنید، سطح RAID و تعداد دستگاهها را مشخص کنید. در این مثال دستوری، نام دستگاه را /dev/md0 میگذارید و دیسکهایی که آرایه را میسازند درنظر میگیرید:
اگر دستگاههای ذخیرهسازی جزو آرایه از پارتیشنهایی با فلگ Boot برخوردار نباشند، احتمالا هشدار زیر را دریافت خواهید کرد. معمولا میتوانید این هشدار را نادیده بگیرید و با تایپ کردن y کار خود را ادامه دهید:
ابزار mdadm همانندسازی دادهها را شروع میکند. این فرایند ممکن است کمی طول بکشد، اما در این مدت نیز میتوان از آرایه استفاده کرد. میتوانید با بررسی فایل /proc/mdstat، پیشرفت فرایند همانندسازی دادهها را کنترل کنید:
در اولین خط هایلایتشده، دستگاه /dev/md0 در پیکربندی RAID 1 با استفاده از دستگاههای /dev/sda و /dev/sdb ایجاد شد. دومین خط هایلایتشده، میزان پیشرفت فرایند همانندسازی را نشان میدهد. در حالی که این فرایند در حال انجام است، میتوانید به مرحله بعدی بروید.
ایجاد و mount کردن فایل سیستم
در این مرحله باید روی آرایه یک فایل سیستم جدید ایجاد کنید:
سپس یک mount پوینت برای اتصال به فایل سیستم جدید ایجاد کنید:
شما میتوانید با دستور زیر فایل سیستم جدید را mount کنید:
با دستور زیر بررسی کنید آیا فضای جدید در دسترس قرار دارد یا خیر:
فایل سیستم جدید اکنون mount شده و در دسترس قرار گرفته است.
ذخیرهسازی چیدمان آرایه
برای اطمینان از اینکه آرایه بهطور خودکار در هنگام بوت اسمبل میشود، باید فایل /etc/mdadm/mdadm.conf را تنظیم کنید. شما میتوانید بهطور خودکار آرایه فعال را اسکن کرده و موارد زیر را به فایل اضافه کنید:
پس از آن، میتوانید initramfs یا فایل سیستم اولیه RAM را بهروز کنید تا آرایه در طول فرایند بوت اولیه در دسترس باشد:
برای mount شدن خودکار در هنگام بوت، گزینههای mount فایل سیستم جدید را به فایل /etc/fstab اضافه کنید:
آرایه RAID 1 شما اکنون بهطور خودکار در هر بوت اسمبل و mount میشود.
اکنون پیکربندی رید در لینوکس به پایان رسید. اگر میخواهید یک RAID دیگر را امتحان کنید، دستورالعملهای بازنشانی در ابتدای این آموزش را دنبال کنید تا یک نوع آرایه RAID جدید را امتحان کنید.
ایجاد یک آرایه RAID 5
آرایه RAID 5 با استرایپ کردن (Striping) دادهها در دستگاههای ذخیرهسازی موجود پیادهسازی میشود. یک جزء از هر استرایپ یک بلوک پریتی (Parity) محاسبهشده است. اگر دستگاهی از کار بیفتد، بلوک parity و بلوکهای باقیمانده میتوانند برای محاسبه دادههای ازدسترفته استفاده شوند. دستگاهی که بلوک parity را دریافت میکند بهگونهای میچرخد که هر دستگاه دارای مقدار متعادلی از اطلاعات باشد.
- شرایط موردنیاز: حداقل سه دستگاه ذخیرهسازی.
- مزیت اصلی: افزونگی با ظرفیت قابلاستفاده بیشتر
- مواردی که باید درنظر داشته باشید: درحالیکه اطلاعات parity توزیع میشود، از ظرفیت یک دیسک برای parity استفاده میشود. RAID 5 میتواند در شرایط Degraded State یا خرابی یکی از دستگاههای ذخیرهساز ممکن است عملکرد بسیار ضعیفی داشته باشد.
شناسایی دستگاههای جزو آرایه
برای شروع، شناسههای مربوط به دیسکهای خامی را که استفاده میکنید پیدا کنید:
شما سه دیسک بدون فایل سیستم دارید که هر کدام 100 گیگابایت ظرفیت دارد. برای سشن فعلی، به این دستگاهها شناسههای /dev/sda، /dev/sdb و /dev/sdc اختصاص داده شدهاست و اجزای خامی هستند که برای ساخت آرایه از آنها استفاده میکنید.
ایجاد آرایه
برای ایجاد یک آرایه RAID 5 با این اجزا، آنها را به دستور mdadm –create منتقل کنید. شما باید نام دستگاهی را که میخواهید ایجاد کنید، سطح RAID و تعداد دستگاهها را مشخص کنید. در این مثال دستوری، نام دستگاه را /dev/md0 میگذارید و دیسکهایی را که آرایه را ایجاد میکنند درنظر میگیرید:
ابزار mdadm فرایند پیکربندی RAID در لینوکس را آغاز میکند. بهدلیل عملکرد بهتر، این ابزار از فرایند بازیابی برای ساخت آرایه استفاده میکند. این فرایند ممکن است کمی طول بکشد، اما آرایه در این مدت نیز قابلاستفاده است. میتوانید با بررسی فایل /proc/mdstat میزان پیشرفت فرایند همانندسازی را کنترل کنید:
هشدار: باتوجه به روشی که mdadm آرایههای RAID 5 را میسازد، درحالیکه آرایه هنوز در حال ساخت است، تعداد قطعات موجود در آرایه بهصورت نادرست گزارش میشود. این یعنی قبل از بهروزرسانی فایل /etc/mdadm/mdadm.conf باید منتظر بمانید تا آرایه اسمبل شود. اگر فایل پیکربندی را درحالیکه آرایه هنوز درحال ساخت است بهروز کنید، سیستم اطلاعات نادرستی در مورد وضعیت آرایه خواهد داشت و نمیتواند آن را بهطور خودکار در هنگام بوت با نام صحیح اسمبل کند.
میتوانید تا زمان کامل شدن این فرایند، مراحل راهنما را ادامه دهید.
ایجاد و mount کردن فایل سیستم
در این مرحله، بر روی آرایه یک فایل سیستم جدید ایجاد میکنید:
برای اتصال به فایل سیستم جدید یک mount point بسازید:
شما میتوانید با دستور زیر فایل سیستم را mount کنید:
با دستور زیر بررسی کنید که آیا فضای جدید در دسترس قرار گرفته است یا خیر:
فایل سیستم جدید mount شده و در دسترس قرار دارد.
ذخیرهسازی چیدمان آرایه
برای اطمینان از اینکه آرایه در هنگام بوت بهطور خودکار اسمبل میشود، باید فایل /etc/mdadm/mdadm.conf را تنظیم کنید.
هشدار: همانطور که قبلا ذکر شد، قبل از اینکه پیکربندی را تنظیم کنید، مجددا بررسی کنید تا مطمئن شوید که آرایه اسمبل شده باشد. انجام مراحل زیر قبل از ساختهشدن آرایه از اسمبل صحیح آرایه سیستم در ریبوت جلوگیری میکند.
میتوانید با بررسی فایل /proc/mdstat میزان پیشرفت فرایند همانندسازی را کنترل کنید:
این خروجی نشان میدهد که بازسازی کامل شدهاست. اکنون میتوانید بهطور خودکار آرایه فعال را اسکن کرده و موارد زیر را به فایل اضافه کنید:
پس از این، میتوانید initramfs یا فایل سیستم RAM اولیه را بهروزرسانی کنید تا آرایه در طول فرایند بوت اولیه دردسترس باشد:
برای mount کردن خودکار آرایه در هنگام بوت، گزینههای mount فایل سیستم جدید را به فایل /etc/fstab اضافه کنید:
آرایه RAID 5 شما اکنون بهطور خودکار در هر بوت اسمبل و mount میشود.
اکنون راهاندازی RAID 5 به پایان رسیدهاست. اگر میخواهید یک RAID دیگر را امتحان کنید، دستورالعملهای ریست کردن در ابتدای این آموزش را دنبال کنید تا نحوه ایجاد یک نوع جدید از آرایه RAID را آزمایش کنید.
ایجاد یک آرایه RAID 6
آرایه RAID 6 با استرایپینگ دادهها در دستگاههای موجود پیادهسازی میشود. دو جزء از هر نوار بلوکهای parity محاسبهشده است. اگر یک یا دو دستگاه از کار بیفتد، بلوکهای parity و بلوکهای باقیمانده میتوانند برای محاسبه دادههای ازدسترفته استفاده شوند. دستگاههایی که بلوکهای parity را دریافت میکنند بهگونهای میچرخند که هر دستگاه دارای مقدار متعادلی از اطلاعات parity باشد. این شیوه توزیع داده مشابه آرایه RAID 5 است، اما امکان خرابی هر دو درایو وجود دارد.
- شرایط موردنیاز: حداقل چهار دستگاه ذخیرهسازی.
- مزیت اصلی: افزونگی مضاعف با ظرفیت قابلاستفاده بیشتر.
- مواردی که باید درنظر داشته باشید: درحالیکه اطلاعات parity توزیع میشود، ظرفیت دو دیسک برای parity استفاده میشود. RAID 6 نیز مشابه RAID 5 در شرایط Degraded State یا خرابی یکی از دستگاههای ذخیرهساز از عملکرد بسیار ضعیفی رنج میبرد.
شناسایی دستگاههای جزء آرایه
ابتدا باید شناسههای مربوط به دیسکهای خامی که قرار است آرایه RAID 6 را با آنها بسازید پیدا کنید:
در این مثال، شما چهار دیسک بدون فایل سیستم دارید که هر کدام 100 گیگابایت ظرفیت دارند. در سشن فعلی، به این دستگاهها شناسههای /dev/sda، /dev/sdb، /dev/sdc و /dev/sdd اختصاص داده شدهاست. این چهار دستگاه اجزای خام مورداستفاده برای ساخت آرایه RAID 6 خواهند بود.
ایجاد آرایه
برای ایجاد یک آرایه RAID 6 با استفاده از این اجزا، آنها را به دستور mdadm –create منتقل کنید. شما باید نام دستگاهی که میخواهید ایجاد کنید، سطح RAID و تعداد دستگاهها را مشخص کنید. در این مثال دستوری، نام دستگاه را /dev/md0 میگذارید و دیسکهایی را که قرار است آرایه را بسازند در نظر میگیرید:
ابزار mdadm پیکربندی RAID در لینوکس را آغاز میکند. بهمنظور بهبود عملکرد، این ابزار برای ساخت آرایه از فرایند بازیابی استفاده میکند. این فرایند ممکن است کمی طول بکشد، اما در حین ساخت آرایه نیز میتوان از آن استفاده کرد. میتوانید با بررسی فایل /proc/mdstat میزان پیشرفت فرایند همانندسازی را کنترل کنید:
در اولین خط هایلایتشده، دستگاههای /dev/sda، /dev/sdb، /dev/sdc و /dev/sdd ایجاد شدهاست. دومین خط هایلایتشده میزان پیشرفت فرایند ساخت آرایه را نشان میدهد. میتوانید تا زمان تکمیل این فرایند، مراحل دیگر راهنما را ادامه دهید.
ایجاد و mount کردن فایل سیستم
در مرحله بعدی، باید یک فایل سیستم بر روی آرایه بسازید:
برای اتصال به فایل سیستم جدید یک mount point بسازید:
شما میتوانید با دستور زیر فایل سیستم جدید را mount کنید:
به کمک دستور زیر بررسی کنید که آیا فضای جدید در دسترس قرار گرفته است یا خیر:
اکنون فایل سیستم جدید mount شده و دردسترس است.
ذخیرهسازی چیدمان آرایه
برای اطمینان از اینکه آرایه بهطور خودکار در هنگام بوت اسمبل میشود، باید فایل /etc/mdadm/mdadm.conf را تنظیم کنید. شما میتوانید بهطور خودکار آرایه فعال را اسکن کرده و موارد زیر را به فایل اضافه کنید:
پس از آن، میتوانید initramfs یا فایل سیستم اولیه RAM را بهروزرسانی کنید تا آرایه در طول فرایند بوت اولیه دردسترس باشد:
برای mount شدن خودکار هنگام بوت، گزینههای مانت فایل سیستم جدید را به فایل /etc/fstab اضافه کنید:
پیکربندی RAID در لینوکس از نوع RAID 6 به پایان رسید. اگر میخواهید یک آرایه رید دیگر را امتحان کنید، دستورالعملهای ریست کردن که در ابتدای آموزش به آن اشاره شده است را دنبال کنید.
ایجاد یک آرایه پیچیده RAID 10
آرایه RAID 10 بهطور معمول با ایجاد یک آرایه استرایپشده RAID 0 متشکل از مجموعهای از آرایههای RAID 1 پیادهسازی میشود. این نوع آرایه تودرتو، هم افزونگی و هم کارایی بالا را ارائه میدهد اما فضای زیادی از دیسک را هم اشغال میکند. ابزار mdadm آرایه RAID 10 مخصوص خود را دارد که با افزایش انعطافپذیری، مزایای مشابهی را ارائه میکند.
ابزار mdadm این نوع آرایه رید را بااستفاده از آرایههای تودرتو ایجاد نمیکند، اما بسیاری از ویژگیها و تضمینهای مشابه را دارد. در این بخش از آموزش از mdadm RAID 10 استفاده خواهید کرد.
- شرایط موردنیاز: حداقل سه دستگاه ذخیرهسازی.
- مزیت اصلی: عملکرد و افزونگی.
- مواردی که باید درنظر داشته باشید: میزان کاهش ظرفیت برای آرایه با تعداد کپیهای دادهای که برای نگهداری انتخاب میکنید تعریف میشود. تعداد کپیهایی که با RAID 10 به سبک mdadm ذخیره میشوند قابلتنظیم است.
بهطور پیشفرض، دو نسخه از هر بلوک داده در چیزی به نام لیاوت نزدیک (Near Layout) ذخیره میشود. لیاوتهای امکانپذیر که نحوه ذخیره هر بلوک داده را دیکته میکند به شرح زیر است:
- Near: ترتیب پیشفرض؛ کپیهای هر تکه بهطور متوالی هنگام استرایپینگ نوشته میشوند، بهاینمعنی که کپیهای بلوکهای داده در اطراف یک قسمت مشخص در چندین دیسک نوشته میشوند.
- Far: کپیهای اول و بعدی در قسمتهای مختلف دستگاههای ذخیرهسازی آرایه نوشته میشوند. بهعنوان مثال، تکه اول ممکن است در نزدیکی ابتدای یک دیسک نوشته شود، درحالیکه تکه دوم در نیمهراه روی دیسک دیگری نوشته شود. این میتواند باعث افزایش عملکرد خواندن برای هارددیسکهای سنتی شود اما روی عملکرد نوشتن تاثیر منفی میگذارد.
- Offset: هر استرایپ کپی شده و توسط یک درایو Offset میشود. این یعنی کپیها از یکدیگر Offset هستند، اما همچنان روی دیسک بههم نزدیک هستند. این ویژگی کمک میکند تا جستوجوی بیشازحد در طول برخی از بارهای کارهای به حداقل برسد.
با بررسی بخش RAID10 در این صفحه man میتوانید اطلاعات بیشتری را در مورد این لیاوتها به دست آورید:
همچنین از طریق این لینک میتوانید به صورت آنلاین به صفحه man دسترسی داشته باشید.
شناسایی دستگاههای جزو آرایه
برای شروع کار، شناسههای مربوط به دیسکهای خامی را که استفاده میکنید پیدا کنید:
در این مثال، شما چهار دیسک بدون فایل سیستم دارید که هر کدام 100 گیگابایت ظرفیت دارند. برای سشن فعلی، به این دستگاهها شناسههای /dev/sda، /dev/sdb، /dev/sdc و /dev/sdd داده شدهاست و اجزای خام مورداستفاده برای ساخت آرایه همین چهار دیسک خواهند بود.
ایجاد آرایه
برای ایجاد یک آرایه RAID 10 با این اجزا، آنها را به دستور mdadm –create منتقل کنید. در این مرحله باید نام دستگاهی که قرار است ایجاد کنید، تعداد دستگاهها و همینطور سطح RAID را مشخص کنید. در این مثال دستوری، نام دستگاه را /dev/md0 تعیین میکند و دیسکهایی را که آرایه را میسازند درنظر میگیرید.
شما میتوانید با استفاده از لیاوت Near و با تعیین نکردن شماره لیاوت و کپی، دو کپی را تنظیم کنید:
اگر میخواهید از لیاوت متفاوتی استفاده کنید یا تعداد کپیها را تغییر دهید، باید از گزینه -layout= استفاده کنید که شناسه لیاوت و کپی را میگیرد. لیاوتها با شناسه n برای Near، f برای Far و o برای Offset مشخص میشوند. تعداد کپیهای ذخیرهشده پس از آن اضافه میشود.
بهعنوان مثال، برای ایجاد یک آرایه که دارای سه کپی در لیاوت Offset باشد، دستور زیر استفاده میشود:
ابزار mdadm پیکربندی آرایه RAID در لینوکس را شروع میکند. برای دستیابی به عملکرد بهتر، این ابزار از فرایند بازیابی برای ساخت آرایه استفاده میکند. این فرایند ممکن است کمی طول بکشد، اما در طول فرایند نیز میتوان از آرایه استفاده کرد. میتوانید با بررسی فایل /proc/mdstat، میزان پیشرفت همانندسازی را کنترل کنید:
در اولین خط هایلایتشده، دستگاه /dev/md0 در پیکربندی RAID 10 با استفاده از چهار دستگاه /dev/sda، /dev/sdb، /dev/sdc و /dev/sdd ایجاد شدهاست. دومین ناحیه هایلایتشده، لیاوت مورداستفاده برای این مثال را نشان میدهد (دو کپی در پیکربندی Near).
سومین ناحیه هایلایتشده میزان پیشرفت فرایند ساخت آرایه را نشان میدهد. میتوانید تا زمانی که این فرایند کامل میشود، راهنما را ادامه دهید.
ساختن و مانت کردن فایل سیستم
در این مرحله یک فایل سیستم جدید بر روی آرایه بسازید:
یک mount point برای اتصال به فایل سیستم جدید ایجاد کنید:
با دستور زیر میتوانید فایل سیستم جدید را مانت کنید:
با دستور زیر چک کنید آیا فضای جدید دردسترس قرار گرفته است یا خیر:
فایل سیستم جدید اکنون باید mount شده و در دسترس باشد.
ذخیرهسازی لیاوت آرایه
برای اطمینان از اینکه آرایه بهطور خودکار در هنگام بوت اسمبل میشود، باید فایل /etc/mdadm/mdadm.conf را تنظیم کنید. شما میتوانید بهطور خودکار آرایه فعال را اسکن کرده و موارد زیر را به فایل اضافه کنید:
در این مرحله میتوانید initramfs یا فایل سیستم اولیه RAM را بهروزرسانی کنید تا آرایه در طول فرایند بوت اولیه دردسترس باشد:
برای mount شدن خودکار در هنگام بوت، گزینههای mount فایل سیستم جدید را به فایل /etc/fstab اضافه کنید:
اکنون آرایه RAID 10 شما با هر بار بوت بهصورت خودکار اسمبل و mount میشود.
نحوه مدیریت آرایههای RAID با ابزار mdadm در اوبونتو 22.04
اکنون که نحوه ساخت آرایههای RAID در لینوکس با ابزار mdadm را یاد گرفتهاید، در این بخش میخواهیم نحوه مدیریت کردن آرایههای RAID را در توزیع اوبونتو 22.04 با استفاده از این ابزار توضیح دهیم.
کوئری برای دریافت اطلاعات در مورد دستگاههای RAID
یکی از ضروریترین الزامات برای مدیریت صحیح، توانایی یافتن اطلاعات در مورد ساختار، دستگاههای جزو آرایه و وضعیت فعلی آرایه است.
برای دریافت اطلاعات دقیق در مورد دستگاه RAID، دستگاه RAID را با گزینه -D یا –detail به ابزار mdadm منتقل کنید:
اطلاعات مهم در مورد آرایه به شکل زیر نمایش داده میشود:
خروجی سطح RAID، اندازه آرایه، سلامت تکتک قطعات، UUID آرایه و دستگاههای جزو ارایه و نقش آنها را نشان میدهد.
برای جزئیات کوتاهشده یک آرایه که مناسب افزودن به فایل /dev/mdadm/mdadm.conf است، میتوانید از فلگهای –brief یا -b استفاده کنید:
برای دریافت یک خلاصه از یک دستگاه RAID که برای انسان قابل خواندن باشد، از گزینه -q استفاده کنید:
با این کار میتوانید به اطلاعات کلیدی درخصوص یک دستگاه RAID دسترسی داشته باشید.
دریافت اطلاعات در مورد دستگاههای جزو آرایه
شما همچنین میتوانید از ابزار mdadm برای کوئری از دستگاههای جزو آرایه استفاده کنید.
گزینه -Q هنگامی که برای یک دستگاه جزو آرایه استفاده میشود، آرایهای که دستگاه جزئی از آن است و نقش آن را به شما میگوید:
با استفاده از گزینههای -E یا –examine میتوانید به اطلاعاتی با جزئیات بیشتر دست پیدا کنید:
این اطلاعات مشابه اطلاعاتی است که هنگام استفاده از گزینه -D با دستگاه آرایه نمایش داده میشود، اما بر رابطه بین دستگاه با یک آرایه متمرکز است.
خواندن اطلاعات /proc/mdstat
برای دریافت اطلاعات دقیق درمورد هر یک از آرایههای اسمبل شده در سرور، فایل /proc/mdstat را بررسی کنید. این کار معمولا بهترین راه برای پیدا کردن وضعیت فعلی آرایههای فعال در سیستم شما است:
تراکم بالای خروجی به این علت است که در فضایی کم حجم زیادی از اطلاعات را ارائه دهد:
خط Personalities سطوح مختلف RAID و پیکربندیهایی را که کرنل در حال حاضر پشتیبانی میکند توصیف میکند.
خطی که با md0 شروع میشود، ابتدای توضیحات دستگاه RAID را توصیف میکند. خطهای بعدی که تورفتگی دارند دستگاه را توصیف میکنند:
خط اول بیان میکند که آرایه فعال است، معیوب نیست و بهعنوان RAID 10 پیکربندی شدهاست. اعداد داخل پرانتز نقش فعلی دستگاه را در آرایه توصیف میکنند:
خط دوم نمایش دادهشده در این مثال تعداد بلوکهای دستگاههای مجازی ارائهشده، نسخه متادیتا (در این مثال 1.2) و اندازه قطعه آرایه را نشان میدهد. از آنجاییکه این یک آرایه RAID 10 است، اطلاعات درمورد لیاوت آرایه را هم ارائه میدهد. در این مثال، آرایه بهگونهای پیکربندی شدهاست تا دو نسخه از هر قطعه داده را در لیاوت Near ذخیره کند.
آخرین آیتمها در براکتهای مربعی دستگاههای موجود فعلی در یک مجموعه سالم را نشان میدهند. عدد اول در براکتهای عددی اندازه یک آرایه سالم را نشان میدهد، درحالیکه عدد دوم نشاندهنده تعداد دستگاههای موجود در حال حاضر است. سایر براکتها نشانهای بصری از سلامت آرایه هستند که در آن U نشاندهنده دستگاههای سالم و _ نشاندهنده دستگاههای معیوب است.
اگر آرایه شما در حال حاضر در حال اسمبل شدن یا بازیابی است، ممکن است خط دیگری وجود داشته باشد که میزان پیشرفت فرایند را نشان میدهد:
این عملیات اعمال شده و پیشرفت فعلی را به روشهای مختلف توصیف میکند. همچنین، سرعت فعلی و زمان تخمینی تا تکمیل فرایند را ارائه میدهد.
پس از اینکه در مورد آرایههایی که در حال حاضر روی سیستم شما در حال اجرا هستند درک مناسبی پیدا کردید، چند اقدام دیگر وجود دارد که میتوانید انجام دهید.
توقف یک آرایه
برای متوقف کردن یک آرایه، اولین قدم این است که آن را جدا (Unmount) کنید.
با دستور ~ cd از دایرکتوری mount شده خارج شوید:
سپس دستگاه را جدا کنید:
شما میتوانید با دستور زیر تمامی آرایههای فعال را متوقف کنید:
اگر میخواهید یک آرایه خاص را متوقف کنید، آن را به دستور mdadm –stop منتقل کنید:
این دستور آرایه را متوقف میکند. برای دسترسی مجدد به آرایه باید آن را مجددا اسمبل کنید.
اجرای یک آرایه
برای اجرای تمام آرایههای تعریفشده در فایلهای پیکربندی /proc/mdstat دستور زیر را اجرا کنید:
برای اجرای یک آرایه خاص، میتوانید آن را به یک آرگومان mdadm –assemble منتقل کنید:
اگر آرایه در فایل پیکربندی تعریف شده باشد، این دستور به خوبی کار میکند.
اگر آرایه در فایل پیکربندی به درستی تعریف نشده باشد، آرایه با مشخص کردن دستگاههای جزو آرایه همچنان قابل اجرا است:
وقتی که آرایه اسمبل شد، میتوانید آن را به صورت معمول mount کنید:
اکنون آرایه از طریق mount point تعریفشده در دسترس خواهد بود.
افزودن یک دستگاه پشتیبان به یک آرایه
دستگاههای پشتیبان را میتوان به آرایههایی مانند که RAID 1، 5، 6 یا 10 که افزونگی را ارائه میدهند اضافه کرد. دستگاه پشتیبان بهطور فعال توسط آرایه استفاده نمیشود، مگر اینکه دستگاه فعال با مشکل مواجه شود. وقتی این اتفاق میافتد، آرایه دادهها را مجددا با درایو پشتیبان همگامسازی میکند تا آرایه را به سلامت کامل برساند. دستگاههای پشتیبان را نمیتوان به آرایههایی که افزونگی ارائه نمیدهند (مانند RAID 0) اضافه کرد، زیرا آرایه درصورت خرابی یکی از دستگاهها از بین میرود.
برای افزودن یک دستگاه پشتیبان، آرایه و دستگاه جدید را به دستور mdadm –add منتقل کنید:
اگر آرایه در وضعیت خرابی یا Degraded نباشد، دستگاه جدید بهعنوان پشتیبان اضافه خواهد شد. اگر دستگاه در حال حاضر خراب شده باشد، عملیات همگامسازی مجدد بلافاصله بااستفاده از دستگاه پشتیبان برای جایگزینی درایو معیوب آغاز میشود.
پس از افزودن یک دستگاه پشتیبان، فایل پیکربندی را بهروزرسانی کنید تا جهتگیری دستگاه جدید شما را منعکس کند:
خط فعلی را باتوجه به شیوه تعریف کردن آرایه خود حذف یا به کامنت تبدیل کنید:
پس از آن، پیکربندی فعلی خود را اضافه کنید:
ابزار mdadm از اطلاعات جدید برای اسمبل کردن آرایه استفاده خواهد کرد.
افزایش تعداد دستگاههای فعال در یک آرایه
رشد یک آرایه با افزایش تعداد دستگاههای فعال در مجموعه امکانپذیر است. روش دقیق انجام این کار تا حدودی به سطح RAID استفادهشده بستگی دارد.
افزایش با RAID 1 یا 10
همانطور که در بخش آخر نشان داده شد، با اضافه کردن دستگاه جدید بهعنوان یک دستگاه پشتیبان کار خود را شروع کنید:
تعداد فعلی دستگاههای RAID را در آرایه پیدا کنید:
در این مثال، آرایه برای استفاده فعال از دو دستگاه پیکربندی شدهاست. بااینحال، خروجی نشان میدهد که تعداد کل دستگاههای موجود در آرایه بهدلیل وجود یک دستگاه پشتیبان، سه عدد است.
اکنون آرایه را دوباره پیکربندی کنید تا یک دستگاه فعال پشتیبان داشته باشد. دستگاه پشتیبان برای برآوردن نیاز درایو اضافی استفاده خواهد شد. به یاد داشته باشید که در این دستور، تعداد دستگاههای موردنظر خود را جایگزین کنید. در اینجا ما یک RAID 1 با دو دستگاه را به سه دستگاه افزایش میدهیم. اگر در RAID 10 با چهار دستگاه هستید و درایو اضافی دارید، آن را به پنج افزایش دهید:
آرایه با یک دیسک فعال پشتیبانی شروع به پیکربندی مجدد خواهد کرد. برای مشاهده پیشرفت همگامسازی دادهها، دستور زیر را اجرا کنید:
شما میتوانید همزمان با تکمیل فرایند، استفاده از دستگاه را ادامه دهید.
با RAID 5 یا 6
مشابه با بخش قبلی، کار خود را با اضافه کردن یک دستگاه جدید بهعنوان دستگاه پشتیبان شروع کنید:
تعداد فعلی دستگاههای RAID شده در آرایه را با دستور زیر پیدا کنید:
در این مثال، آرایه بهگونهای پیکربندی شدهاست که بهطور فعال از سه دستگاه استفاده کند و تعداد کل دستگاههای موجود در آرایه به دلیل اضافهشدن دستگاه پشتیبان، چهار دستگاه است.
اکنون آرایه را دوباره پیکربندی کنید تا یک دستگاه فعال پشتیبان داشته باشد. دستگاه پشتیبان برای برآوردن نیاز درایو اضافی استفاده خواهد شد. هنگام افزایش یک آرایه RAID 5 یا RAID 6 مهم است که یک گزینه اضافی به نام backup-file– اضافه کنید. این گزینه به مکانی خارج از آرایه اشاره میکند که در آن یک فایل پشتیبان حاوی اطلاعات مهم ذخیره میشود:
نکته: فایل پشتیبان فقط برای مدتزمان بسیار کوتاه اما حیاتی درطول این فرایند استفاده میشود و پس از آن بهصورت خودکار حذف میشود. از آنجاییکه زمان موردنیاز کوتاه است، احتمالا هرگز فایل را روی دیسک نخواهید دید، اما درصورت بروز مشکل، میتوان از آن برای بازسازی آرایه استفاده کرد.
خروجی زیر نشان میدهد که از قطعه حیاتی نسخه پشتیبان تهیه خواهد شد:
آرایه با یک دیسک فعال پشتیبان شروع به پیکربندی مجدد میکند. برای مشاهده میزان پیشرفت فرایند همگامسازی داده، دستور زیر را اجرا کنید:
با تکمیل این فرایند میتوانید به استفاده از دستگاه ادامه دهید.
پس از تکمیل فرایند تغییر چیدمان، باید فایل سیستم را در آرایه گسترش دهید تا فضای اضافی در دسترس قرار بگیرد:
آرایه شما اکنون فایل سیستمی دارد که با ظرفیت آن مطابقت دارد.
با RAID 0
آرایههای RAID 0 نمیتوانند درایوهای پشتیبان داشته باشند، زیرا هیچ شانسی وجود ندارد که از درایو پشتیبان برای بازسازی آرایه RAID 0 آسیبدیده استفاده کرد. شما باید دستگاه جدید را همزمان با رشد آرایه اضافه کنید.
ابتدا تعداد دستگاههای RAID موجود در آرایه را پیدا کنید:
اکنون شما میتوانید با همان عملیاتی که درایو جدید را اضافه کردهاید، تعداد دستگاههای RAID را نیز افزایش دهید:
شما خروجی مشابه زیر را دریافت میکنید که در آن آرایه به RAID 4 تغییر کرده است:
این امر طبیعی و قابلانتظار است. هنگامی که دادهها در تمام دیسکهای موجود توزیع شد، آرایه به RAID 0 بازمیگردد.
میتوانید پیشرفت عملیات را با دستور زیر بررسی کنید:
وقتی همگامسازی به پایان رسید، میتوانید فایل سیستم را ریسایز کنید تا از فضای اضافی استفاده کند:
آرایه شما اکنون دارای یک فایل سیستم است که با ظرفیت آن مطابقت دارد.
حذف یک دستگاه از یک آرایه
حذف یک درایو از آرایه RAID گاهی اوقات در صورت وجود نقص یا در صورت نیاز به تعویض دیسک ضروری است.
برای حذف یک دستگاه، ابتدا باید در آرایه به عنوان «معیوب» علامتگذاری شود. با استفاده از mdadm –detail میتوانید بررسی کنید که آیا دستگاهی خراب شده است یا خیر:
خطوط هایلایتشده نشان میدهند که یک درایو دیگر کار نمیکند. بهعنوان مثال، /dev/sdc در این خروجی نشان میدهد که درایو معیوب است.
اگر نیاز دارید که درایو سالمی را حذف کنید، میتوانید با گزینه –fail بهصورت دستی آن را بهعنوان درایو معیوب علامتگذاری کنید:
اگر خروجی mdadm –detail را بررسی کنید، متوجه خواهید شد که دستگاه اکنون بهعنوان معیوب علامتگذاری شدهاست.
هنگامی که دستگاه از کار افتاد، میتوانید آن را با mdadm –remove از آرایه حذف کنید:
سپس میتوانید با دستور mdadm –add که برای اضافه کردن یک دستگاه پشتیبان از آن استفاده کردید، آن را با یک درایو جدید جایگزین کنید:
آرایه با کپی کردن داده به درایو جدید عملیات بازسازی را شروع میکند.
حذف یک آرایه
برای از بین بردن یک آرایه، از جمله تمام دادههای موجود در آن، با دنبال کردن فرایندی که برای توقف یک آرایه استفاده میشود، کار خود را شروع کنید.
با دستور زیر از دایرکتوری mount شده خارج شوید:
سپس فایل سیستم را جدا (Unmount) کنید:
اکنون آرایه را متوقف کنید:
سپس با استفاده از دستور remove– که دستگاه RAID موردنظر را هدف گرفته است، آرایه را بهطور کامل حذف کنید:
پس از حذف خود آرایه، از دستور mdadm –zero-superblock بر روی هر یک از دستگاههای جزو آرایه استفاده کنید. این کار md superblock (هدری که توسط mdadm برای جمعآوری و مدیریت دستگاههای جزو آرایه استفاده میشود) را پاک میکند. اگر هنوز هم md superblock را میبینید، ممکن است هنگام تلاش برای استفاده مجدد از دیسک برای مقاصد دیگر، مشکلاتی ایجاد کند.
برای تایید وجود سوپربلاک در آرایه، ستون FSTYPE را در خروجی lsblk –fs بررسی کنید:
در این مثال، /dev/sda، /dev/sdb و /dev/sdc همگی بخشی از آرایه بودند و همچنان بهاینصورت برچسبگذاری میشوند.
با استفاده از دستور زیر برچسبها را حذف کنید:
در مرحله بعد، مطمئن شوید که هرگونه ارجاع به آرایه در فایل /etc/fstab را حذف یا به کامنت تبدیل کردهاید. میتوانید این کار را با اضافه کردن علامت هشتگ در ابتدای خط انجام دهید:
پس از اتمام کار، فایل را ذخیره کرده و ببندید.
همچنین هرگونه ارجاع به آرایه را از فایل /etc/mdadm/mdadm.conf حذف یا به کامنت تبدیل کنید:
پس از اتمام کار فایل را ذخیره کرده و ببندید.
سپس initramfs را بهروز کنید:
جمعبندی
در این راهنما نحوه پیکربندی RAID در لینوکس در حالتهای مختلف را با استفاده از نرمافزار mdadm لینوکس یاد گرفتید. آرایههای RAID نسبت به استفاده از چندین دیسک بهصورت جداگانه، مزایایی مانند افزایش کارایی و افزونگی بهتر را ارائه میدهند.
در ادامه با نحوه مدیریت آرایههای RAID با استفاده از ابزار mdadm آشنا شدید. پس از ایجاد و مدیریت آرایههای RAID با mdadm مسیرهای مختلفی وجود دارد که میتوانید در پیش بگیرید. لایههای مدیریت حجم مانند LVM ادغامپذیری فوقالعادهای با RAID دارند و این امکان را به شما میدهند تا بهطور انعطافپذیر فضا را به حجمهای Logical تقسیم کنید.
بهطور مشابه، رمزگذاری LUKS و dm-crypt معمولا برای رمزگذاری دستگاههای RAID قبل از نوشتن فایل سیستم استفاده میشود. لینوکس به همهی این فناوریها اجازه میدهد تا در کنار هم قابلیتهای ذخیرهسازی شما را ارتقا دهند.
نوشته آموزش گام به گام پیکربندی RAID در لینوکس اولین بار در مجله آقای وب. پدیدار شد.