این آموزش در مورد نصب ، راه اندازی و اجرای نرم افزار mdadm RAID در سیستم های لینوکس است. ما را همراهی کنید تا بتوانید این نرم افزار را در در لینوکس نصب کنید.
ابتدا باید به این فکر کنید که کدام سیستم RAID را می خواهید اجرا کنید. این بستگی به هدف و درایو ها در خود سرور دارد.
توجه: RAID نباید به عنوان یک نسخه پشتیبان از داده ها دیده شود زیرا در برابر از بین رفتن داده ها محافظت نمی کند. این فقط در دسترس بودن داده ها را افزایش می دهد.
انتخاب سطح RAID مناسب آسان نیست و به چندین عامل بستگی دارد:
RAID0:
اگر یک گروه از دو یا چند پارتیشن وجود داشته باشد، پارتیشن ها به طور منطقی با یک پارتیشن ترکیب می شوند. در اینجا دسترسی کاهش می یابد. اگر یکی از درایوها معیوب باشد، تمام داده ها از بین می روند.
Pro:
Contra:
RAID1:
اگر گروهی از دو یا چند پارتیشن وجود داشته باشد، داده ها روی هر پارتیشن به طور جداگانه و کپی شده ذخیره می شوند.
Pro:
Contra:
RAID5:
گروهی از سه یا چند بخش است که در آن داده ها به دو سه بخش تقسیم می شوند. به اصطلاح “برابری” در قسمت سوم ذخیره می شود که به کمک آن می توانید داده های مربوط به درایوهای معیوب را در RAID بازیابی کنید.
Pro:
Contra:
لیستی از سطوح RAID اضافی که کمتر استفاده می شود در زیر توضیح داده شده است:
برای یک لیست کوتاه و واضح از کلیه دستگاه های موجود، می توانید از دستور 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
ابتدا درایوها باید بر این اساس قالب بندی شوند.
یک پارتیشن جدید و خالی را روی درایو ایجاد کنید:
برای درایو هایی با حجم بیشتر از ۲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
برای لینوکس، 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 ، مراحل زیر باید انجام شود:
sudo umount /dev/md0 sudo mdadm --stop /dev/md0
sudo mdadm --zero-superblock /dev/sda1 /dev/sdb1
sudo parted /dev/sda set 1 raid off
با خروجی پرونده 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 هایی با سطح ۱، ۵ و ۶ قابل گسترش هستند.
پارتیشن جدید ابتدا باید به عنوان یک درایو یدکی یا 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، این ورودی می تواند به عنوان (sudo crontab -e
) ذخیره شود:
۰ ۰ * * * /usr/share/mdadm/checkarray --cron --all --quiet >/dev/null 2>&1 # Runs every day at 00:00 AM
امیدواریم از این مقاله بهره لازم را برده و برای شما مفید بوده باشد. نظرات خود را با ما به اشتراک بگذارید.
ما را در شتابان هاست دنبال کنید.