نصب نرم افزار RAID برای لینوکس

نصب نرم افزار RAID برای لینوکس

مرتضی حبیبی

این آموزش در مورد نصب ، راه اندازی و اجرای نرم افزار mdadm RAID در سیستم های لینوکس است. ما را همراهی کنید تا بتوانید این نرم افزار را در در لینوکس نصب کنید.

پیش نیاز ها:

  1. سرور اختصاصی با چندین درایو.
  2. دسترسی روت.

نصب نرم افزار RAID برای لینوکس:

مرحله ۱ – مقدمات:

ابتدا باید به این فکر کنید که کدام سیستم RAID را می خواهید اجرا کنید. این بستگی به هدف و درایو ها در خود سرور دارد.

توجه: RAID نباید به عنوان یک نسخه پشتیبان از داده ها دیده شود زیرا در برابر از بین رفتن داده ها محافظت نمی کند. این فقط در دسترس بودن داده ها را افزایش می دهد.

مرحله ۱-۱ – انتخاب سطح RAID:

انتخاب سطح RAID مناسب آسان نیست و به چندین عامل بستگی دارد:

  1. سرور چند درایو دارد؟
  2. اهداف شما چه هستند؟ فضای ذخیره سازی بیشتر / در دسترس بودن کمتر یا در دسترس بودن بالاتر / فضای کمتری برای ذخیره سازی.

در اینجا لیستی از پرکاربردترین سطوح RAID آورده شده است:

RAID0:

اگر یک گروه از دو یا چند پارتیشن وجود داشته باشد، پارتیشن ها به طور منطقی با یک پارتیشن ترکیب می شوند. در اینجا دسترسی کاهش می یابد. اگر یکی از درایوها معیوب باشد، تمام داده ها از بین می روند.

Pro:

  • فضای ذخیره سازی موجود را ترکیب می کند.
  • عملکرد درایو را افزایش می دهد.

Contra:

  • در صورت خرابی درایو، داده های همه درایوها از بین می روند.

RAID1:

اگر گروهی از دو یا چند پارتیشن وجود داشته باشد، داده ها روی هر پارتیشن به طور جداگانه و کپی شده ذخیره می شوند.

Pro:

  • قابلیت اطمینان / دسترسی به داده ها را افزایش می دهد.
  • سرعت خواندن داده ها را افزایش می دهد.

Contra:

  • فضای ذخیره سازی موجود نصف شده است.

RAID5:

گروهی از سه یا چند بخش است که در آن داده ها به دو سه بخش تقسیم می شوند. به اصطلاح “برابری” در قسمت سوم ذخیره می شود که به کمک آن می توانید داده های مربوط به درایوهای معیوب را در RAID بازیابی کنید.

Pro:

  • قابلیت اطمینان / دسترسی به داده ها افزایش یافته است.
  • استفاده بهینه از ذخیره سازی.
  • سرعت خواندن داده ها را افزایش می دهد.

Contra:

  • عملکرد کمتر با دسترسی به نوشتن.

لیستی از سطوح RAID اضافی که کمتر استفاده می شود در زیر توضیح داده شده است:

  • Linear: ادغام چند بخش.
  • Multipath: بدون RAID، اما نقشه برداری از پرونده به دو مسیر مختلف در همان پارتیشن (کپی شده).
  • Faulty: یک سیستم RAID معیوب را برای موارد آزمایش تقلید می کند.
  • Level 4: مانند سطح ۰ ، اما با یک وسیله اضافی برای بیت برابری (افزایش قابلیت اطمینان).
  • Level 6: مانند سطح ۵ اما با دو بیت برابری مستقل در هر بخش (افزایش قابلیت اطمینان).۳

مرحله ۱-۲ – لیست درایوهای موجود در سیستم:

برای یک لیست کوتاه و واضح از کلیه دستگاه های موجود، می توانید از دستور lsblk استفاده کنید. در اینجا یک نمونه خروجی وجود دارد:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 232.9G 0 disk 
├─sda1 8:1 0 10G 0 part /
├─sda2 8:2 0 208.1G 0 part /home/han/data
<font color=#38B0DE>-=─sda3=- Proudly Presents 
sr0 11:0 1 1024M 0 Rome

برای لیستی با اطلاعات دقیق تر، از fdisk -l می توان استفاده کرد. در اینجا یک نمونه خروجی وجود دارد:

Disk /dev/sda: 80.0 GByte, 80026361856 Byte
۲۵۵ heads, 63 sectors/track, 9729 cylinders
Units = cylinder of 16065 × ۵۱۲ = ۸۲۲۵۲۸۰ bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x92669266

   Device boot.     Start End Blocks Id System
/dev/sda1 * 1 1305 10482381 83 Linux
/dev/sda2 1306 3977 21462840 83 Linux
/dev/sda3 4508 9729 41945715 83 Linux
/dev/sda4 3978 4507 4257225 82 Linux Swap / Solaris

 

مرحله ۲ – RAID نرم افزاری ایجاد کنید:

مرحله ۲-۱ – آماده سازی درایوها:

ابتدا درایوها باید بر این اساس قالب بندی شوند.

یک پارتیشن جدید و خالی را روی درایو ایجاد کنید:

برای درایو هایی با حجم بیشتر از ۲TB و کامپیوتر هایی که با UEFI از دستور زیر استفاده کنید:

sudo parted /dev/sda mklabel gpt 

برای درایو هایی با حجم کمتر از ۲TB و کامپیوتر هایی که با BIOS از دستور زیر استفاده کنید:

sudo parted /dev/sda mklabel msdos

یک پارتیشن در درایو ایجاد کنید:

sudo parted -a optimal -- /dev/sda mkpart primary 2048s -8192s 

اگر می خواهید از کل درایو استفاده کنید ، کافی است به جای “۲۰۴۸s -8192s” “0٪ ۱۰۰٪” را وارد کنید.

نکته: ۸۱۹۲ بخش در انتهای درایو عمداً بلا استفاده باقی مانده اند تا برای خرابی ها آماده شوند. این امکان را به شما می دهد که بخاطر فضای خالی مانده، از درایوهایی استفاده کنید که دارای چند بخش کمتر از تعویض هستند.

پارتیشن تازه ایجاد شده را به عنوان یک بخش RAID علامت گذاری کنید:

sudo parted /dev/sda set 1 raid on

مرحله ۲-۲ – نرم افزار RAID را ایجاد کنید:

برای لینوکس، mdadm ابزار اصلی است. این رابط کاربری RAID هسته است.

برای ایجاد یک RAID 1 دستور زیر کافی است:

sudo mdadm --create /dev/md0 --auto md --level=1 --raid-devices=2 /dev/sda1 /dev/sdb2

دستور زیر برای ایجاد RAID 5 کافی است:

sudo mdadm --create /dev/md0 --auto md --level=5 --raid-devices=4 /dev/sda1 /dev/sdb2 /dev/sdc3 /dev/sdd4 

دستگاه بلاک شده mdX تازه ایجاد شده می تواند بلافاصله مورد استفاده قرار گیرد و سیستم نیز در این مدت می تواند خاموش یا مجدداً راه اندازی شود. وضعیت فعلی ایجاد RAID با دستور زیر قابل درخواست است:

watch cat /proc/mdstat

یک نسخه نمونه:

Personalities : [raid0] [raid1]
mdX : active raid1 sda1[1] sdb1[0]
      ۸۳۸۴۴۴۸ blocks super 1.2 [2/2] [UU]
      [==============>.......] check = 74.7% (6267520/8384448) finish=0.1min speed=202178K/sec

RAID تازه ایجاد شده:

sudo mkfs.ext4 /dev/md0

ادغام RAID:

sudo mount /dev/mdX /mnt/md0

ادغام خودکار RAID:

در اینجا خط مربوطه باید در پرونده etc/fstab/ وارد شود:

/dev/mdX /mnt/md0 xt4 defaults 0 2

(اختیاری) درایوهای Hotspare: درایوهای Hotspare / پارتیشن ها مواردی هستند که بطور معمول مورد استفاده قرار نمی گیرند. اینها در صورتی استفاده می شوند که یکی از درایوها / پارتیشن های فعال سیستم RAID خطایی داشته باشد یا ناقص باشد. اگر در هجوم نرم افزار هیچگونه درایو گرم تعریف نشده باشد، بازسازی RAID معیوب باید بصورت دستی آغاز شود. اگر یک درایو یدکی وجود داشته باشد ، بازسازی به صورت خودکار آغاز می شود. درایو یدکی را می توان با دستور زیر اضافه کرد:

mdadm --add /dev/md/X /dev/sdX

مرحله ۳ – حذف RAID نرم افزاری:

برای حذف نرم افزار RAID ، مراحل زیر باید انجام شود:

  • RAID را متوقف کنید:
sudo umount /dev/md0
sudo mdadm --stop /dev/md0
  • ورودی های mount خودکار را حذف کنید (e.g. /etc/fstab).
  • ورودی های RAID را در mdadm.conf حذف کنید.
  • قسمت فوقانی پارتیشن های استفاده شده را حذف کنید:
sudo mdadm --zero-superblock /dev/sda1 /dev/sdb1 
  • غیرفعال کردن RAID flag.
sudo parted /dev/sda set 1 raid off

مرحله ۴ – مدیریت RAID نرم افزاری:

مرحله ۴-۱ – وضعیت RAID را دریافت کنید:

با خروجی پرونده proc/mdstat/ می توانید یک لیست کوتاه از تمام RAID های موجود در سیستم بدست آورید.

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdb1[1] sda1[0]
      ۸۳۸۰۴۱۶ blocks super 1.2 [2/2] [UU]
      
md2 : active raid1 sdb3[1] sda3[0]
      ۵۳۶۷۳۹۸۴۰ blocks super 1.2 [2/2] [UU]
      bitmap: 3/4 pages [12KB], 65536KB chunk

md1 : active raid1 sdb2[1] sda2[0]
      ۱۰۴۷۵۵۲ blocks super 1.2 [2/2] [UU]
      
unused devices: <none>

یک خروجی دقیق تر با استفاده از دستور زیر نمایش داده می شود:

sudo mdadm --detail /dev/md/2

در اینجا مثالی نشان داده می شود:

/dev/md/2:
           Version : 1.2
     Creation Time : Fri Feb 22 17:19:37 2019
        Raid Level : raid1
        Array Size : 536739840 (511.88 GiB 549.62 GB)
     Used Dev Size : 536739840 (511.88 GiB 549.62 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Sun May 26 13:49:02 2019
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

              Name : rescue:2
              UUID : c76e5446:f3c41fbc:0b62ca86:803a7e88
            Events : 2170

    Number   Major   Minor   RaidDevice State
       ۰       ۸        ۳        ۰      active sync   /dev/sda3
       ۱       ۸       ۱۹        ۱      active sync   /dev/sdb3

مرحله ۴-۲ – درایو معیوب را جایگزین کنید:

برای این کار ابتدا باید درایو معیوب از RAID حذف شود:

sudo mdadm --manage /dev/md/0 -r /dev/sda1

اگر هیچ درایو یدکی اضافی در دسترس نباشد، باید یک درایو جدید ایجاد شود. مهم است که درایو جدید دارای پارتیشن بندی مشابه درایو معیوب باشد!

برای پارتیشن بندی درایو جدید، کپی کردن جدول پارتیشن از درایو موجود کافی است.

درایوهای تقسیم شده MBR:

sfdisk --dump /dev/sda > sda_parttable_mbr.bak # Backs up partition table
sfdisk -d /dev/sda | sfdisk /dev/sdb # Copy partition table from sda to sdb

درایوهای پارتیشن بندی شده GPT:

sgdisk --backup=sda_parttable_gpt.bak /dev/sda # Create a backup of the partition table
sgdisk --load-backup=sda_parttable_gpt.bak /dev/sdb # Copy the created backup of the partition table to sdb

اگر درایو جدید به درستی تقسیم شده باشد، می تواند دوباره به سیستم RAID اضافه شود:

sudo mdadm --manage /dev/md/0 -a /dev/sda1

برای شروع روند بازیابی، باید درایو تازه اضافه شده وضعیت معیوب را داشته باشد:

sudo mdadm --manage --set-faulty /dev/md/0 /dev/sda1

پیشرفت را می توان دوباره با دستور watch cat /proc/mdstat کنترل کرد.

پس از اتمام بازسازی RAID، پارتیشن باید از RAID برداشته شود و دوباره اضافه شود تا وضعیت “faulty” حذف شود. این با دستورات زیر انجام می شود:

sudo mdadm --manage /dev/md/0 -r /dev/sda1 # To be removed
sudo mdadm --manage /dev/md/0 -a /dev/sda1 # To be added again

توجه: اگر سیستم در خود RAID است، لازم است bootloader را روی درایو مناسب نصب کنید. این کار با دستور زیر انجام می شود:

update grub && grub-install /dev/sda

مرحله ۴-۳ – گسترش RAID:

فقط RAID هایی با سطح ۱، ۵ و ۶ قابل گسترش هستند.

پارتیشن جدید ابتدا باید به عنوان یک درایو یدکی یا hot spare اضافه شود:

sudo mdadm /dev/md0 --add /dev/sda1 

اکنون RAID با درایو جدید قابل افزایش است:

sudo mdadm --grow --raid-devices=5 /dev/md0 --backup-file=/root/md0.bak 

توجه: در پرونده مشخص شده توسط backup-file مناطق مهم (به طور معمول چند MiB) ذخیره می شوند. اگر سیستم در طول گسترش خراب شود، گسترش با استفاده از دستور زیر می تواند بعداً ادامه یابد:

sudo mdadm /dev/md0 --continue --backup-file=/tmp/md0.bak

فایل پشتیبان نباید در RAID قرار بگیرد تا اضافه شود! استفاده از backup-file اجباری نیست، اما به شدت توصیه می شود.

file system باید همچنان گسترش یابد تا بتوان از فضای ذخیره سازی تازه ایجاد شده استفاده کرد. برنامه افزودنی با دستورات زیر انجام می شود:

sudo umount /dev/md0 /mnt    # Unmount the file system
sudo fsck.ext4 -f /dev/md0   # Force the check, even if it has recently been checked
sudo resize2fs /dev/md0      # Extend file system to maximum size
sudo mount /dev/md0 /mnt     # Mount the file system again 

مرحله ۴-۴ – مانیتورهای RAID:

برای نظارت بر RAID، این ورودی می تواند به عنوان (sudo crontab -e) ذخیره شود:

۰ ۰ * * * /usr/share/mdadm/checkarray --cron --all --quiet >/dev/null 2>&1 # Runs every day at 00:00 AM

امیدواریم از این مقاله بهره لازم را برده و برای شما مفید بوده باشد. نظرات خود را با ما به اشتراک بگذارید.

ما را در شتابان هاست دنبال کنید.

برچسب ها: RAID آموزش لینوکس

ارسال دیدگاه جدید