منبع اصلی نوشتار زیر در این لینک قرار دارد

پیاده سازی RAID1 بر روی لینوکس

RAID1 که به Mirroring نیز شناخته می شود دارای صد در صد Redundancy است به ایم معنی که داده ها بر روی دیسک های مختلف تکرار می شود و برای پیاده سازی حداقل دو دیسک نیاز است. اگر دو دیسک Disk 1 و Disk 2 را داشته باشیم داده ها عینا بر روی هر دو و به صورت تکراری نوشته می شود. همچنین RAID1 دارای تحمل خطا است به این صورت که حتی با از کار افتادن یک دیسک هنوز می توان از روی دیسک دیگر نیز به داده ها دسترسی داشت. می توانید از مطب “RAID های صفر، یک و پنج و RAID01 و RAID10” با ساختار RAID1 آشنا شوید.از یک ماشین مجازی که بر روی آن دستور mdadm نصب شده و همچنین شامل دو دیسک به اندازه 5 گیابایت استفاده کرده ایم.

fdisk -l

configureraid0onlinux1

دو دیسک به نام های sdc و sdd داریم که برای پیاده سازی RAID1 از آنها استفاده می کنیم. لازم است نخست بر روی آنها پارتیشن ایجاد کنیم. برای پارتیشن بندی نیز به صورت زیر عمل می کنیم

fdisk /dev/sdc

Press n ->Press p -> Press Entet -> Press Enter -> Write +5000M  create partition size=5GB ->Press t -> Press w

برای ایجاد یک پارتیشن 5 گیابایتی بر روی دیسک sdc نخست دستور fdisk /dev/sdc را اجرا کنید. سپس برای ایجاد یک پارتیشن حرف n را نوشته و Enter کنید. سپس حرف p برای ایجاد Primary Partition نوشته و Enter کنید. در خط بالا دو Press Enter پیاپی برای قبول کردن default است. سپس 5000M+ را برای ایجاد یک پارتیشن 5 گیابایتی بر روی آن نوشته و Enter کرده. حرف t را برای تغییر نوع پارتیشن استفاده کنید. هملنطور که در شکل بالا می بینید پس از t و Enter کردن، جلوی Hex Code کلمه fd که معرف Linux Riad است را وارد کنید و در نهایت w را برای write شدن تغییرات نوشته و Enter کنید. همین کار را برای dev/sdd/ نیز انجام دهید تا دو پارتیشین dev/sdc1/ و dev/sdd1/ ایجاد شوند.

fdisk /dev/sdc

حال با کمک از دستور partprobe جدول پارتیشن را بروزرسانی می کنیم

partprobe

سپس دستور fdisk -l را اجرا کنید و خواهید دید که پارتیشن ها ایجاد شده اند.

fdisk -l

حال دستور زیر را اجرا کنید تا دیوایس های آماده شده به دیوایس dev/md0/ برای پیاده سازی RAID بر روی md0 اختصاص داده شود. شرح سوییچ های دستور زیر در مطلب مرتبط با دستور mdamd بیان شده است.

mdadm –create /dev/md1 –level=1 –raid-devices=2 /dev/sdc1 /dev/sdd1

با استفاده از دستور زیر می توانید جزییاتی از RAID و دیوایس را ببینید

mdadm –detail /dev/md1

پس از انجام تمامی گام های بالا یک دیوایس به نام md0 ایجاد شده است که به آن دو دیسک به نام های sdc1 و sdc2 اختصاص داده شده است. md0 یک virtual disk است که برای استفاده از آن باید بر روی آن سیستم فایل (مثلا ext3 یا ext4) ایجاد کرده و سپس آنرا بر روی یک دایرکتوری mount کرد.

mkfs.ext3 /dev/md1

OR

mkfs.ext4 /dev/md1

در نهایت نوبت به متصل کردن آن بر روی یک دایرکتوری، مانند دایرکتوری raid1/ می رسد :

mkdir /raid1

mount /dev/md1 /raid1

از فایل mdstat زیر دایرکتوری proc/ می توانید وضعیت دیوایس را مشاهده کنید

cat /proc/mdstat

همانطور که گفته شد RAID1 شامل تحمل خطاست و در صورتی که یک دیسک از دو دیسک از کار بی افتد بازهم می توان به اطلاعات دسترسی داشت. دایرکتوری raid1/ که دیوایس dev/md1/ را بر روی آن mount کردیم دو دیسک sdc1 و sdd1 را در غالب یک دیسک و آنهم dm1 می بیند و داده هایی که در آن ایجاد می کنیم (مانند فایل ها و غیره) در هر دو دیسک عینا کپی می شوند، حال اگر دیسک sdc1 از کار بی افتد بازهم به اطلاعات دایرکتوری raid1/ از طریق دیسک sdd1 قابل دسترسی است. نخست با دستور های زیر تعدادی فایل در زیر دایرکتوری raid1/ بسازید

cd /raid1

{touch {a..z

ls

و با دستور زیر دیسک sdc1 را از مجموعه ی RAID1 خارج می کنیم (به نوعی آنرا fail می کنیم)

mdadm /dev/md1 –fail /dev/sdc1

اما باز هم اطلاعات دایرکتوری raid1/ قابل دسترسی است (یعنی دایرکتوری در دسترس است)

ls -l /raid1



برچسب ها : , , , , ,