این آموزش در مورد نصب ، راه اندازی و اجرای نرم افزار mdadm RAID در سیستم های لینوکس است. ما را همراهی کنید تا بتوانید این نرم افزار را در در لینوکس نصب کنید.
پیش نیاز ها:
- سرور اختصاصی با چندین درایو.
- دسترسی روت.
نصب نرم افزار RAID برای لینوکس:
مرحله 1 – مقدمات:
ابتدا باید به این فکر کنید که کدام سیستم RAID را می خواهید اجرا کنید. این بستگی به هدف و درایو ها در خود سرور دارد.
توجه: RAID نباید به عنوان یک نسخه پشتیبان از داده ها دیده شود زیرا در برابر از بین رفتن داده ها محافظت نمی کند. این فقط در دسترس بودن داده ها را افزایش می دهد.
مرحله 1-1 – انتخاب سطح RAID:
انتخاب سطح RAID مناسب آسان نیست و به چندین عامل بستگی دارد:
- سرور چند درایو دارد؟
- اهداف شما چه هستند؟ فضای ذخیره سازی بیشتر / در دسترس بودن کمتر یا در دسترس بودن بالاتر / فضای کمتری برای ذخیره سازی.
در اینجا لیستی از پرکاربردترین سطوح RAID آورده شده است:
RAID0:
اگر یک گروه از دو یا چند پارتیشن وجود داشته باشد، پارتیشن ها به طور منطقی با یک پارتیشن ترکیب می شوند. در اینجا دسترسی کاهش می یابد. اگر یکی از درایوها معیوب باشد، تمام داده ها از بین می روند.
Pro:
- فضای ذخیره سازی موجود را ترکیب می کند.
- عملکرد درایو را افزایش می دهد.
Contra:
- در صورت خرابی درایو، داده های همه درایوها از بین می روند.
RAID1:
اگر گروهی از دو یا چند پارتیشن وجود داشته باشد، داده ها روی هر پارتیشن به طور جداگانه و کپی شده ذخیره می شوند.
Pro:
- قابلیت اطمینان / دسترسی به داده ها را افزایش می دهد.
- سرعت خواندن داده ها را افزایش می دهد.
Contra:
- فضای ذخیره سازی موجود نصف شده است.
RAID5:
گروهی از سه یا چند بخش است که در آن داده ها به دو سه بخش تقسیم می شوند. به اصطلاح “برابری” در قسمت سوم ذخیره می شود که به کمک آن می توانید داده های مربوط به درایوهای معیوب را در RAID بازیابی کنید.
Pro:
- قابلیت اطمینان / دسترسی به داده ها افزایش یافته است.
- استفاده بهینه از ذخیره سازی.
- سرعت خواندن داده ها را افزایش می دهد.
Contra:
- عملکرد کمتر با دسترسی به نوشتن.
لیستی از سطوح RAID اضافی که کمتر استفاده می شود در زیر توضیح داده شده است:
- Linear: ادغام چند بخش.
- Multipath: بدون RAID، اما نقشه برداری از پرونده به دو مسیر مختلف در همان پارتیشن (کپی شده).
- Faulty: یک سیستم RAID معیوب را برای موارد آزمایش تقلید می کند.
- Level 4: مانند سطح 0 ، اما با یک وسیله اضافی برای بیت برابری (افزایش قابلیت اطمینان).
- Level 6: مانند سطح 5 اما با دو بیت برابری مستقل در هر بخش (افزایش قابلیت اطمینان).3
مرحله 1-2 – لیست درایوهای موجود در سیستم:
برای یک لیست کوتاه و واضح از کلیه دستگاه های موجود، می توانید از دستور 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 255 heads, 63 sectors/track, 9729 cylinders Units = cylinder of 16065 × 512 = 8225280 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
مرحله 2 – RAID نرم افزاری ایجاد کنید:
مرحله 2-1 – آماده سازی درایوها:
ابتدا درایوها باید بر این اساس قالب بندی شوند.
یک پارتیشن جدید و خالی را روی درایو ایجاد کنید:
برای درایو هایی با حجم بیشتر از 2TB و کامپیوتر هایی که با UEFI از دستور زیر استفاده کنید:
sudo parted /dev/sda mklabel gpt
برای درایو هایی با حجم کمتر از 2TB و کامپیوتر هایی که با BIOS از دستور زیر استفاده کنید:
sudo parted /dev/sda mklabel msdos
یک پارتیشن در درایو ایجاد کنید:
sudo parted -a optimal -- /dev/sda mkpart primary 2048s -8192s
اگر می خواهید از کل درایو استفاده کنید ، کافی است به جای “2048s -8192s” “0٪ 100٪” را وارد کنید.
نکته: 8192 بخش در انتهای درایو عمداً بلا استفاده باقی مانده اند تا برای خرابی ها آماده شوند. این امکان را به شما می دهد که بخاطر فضای خالی مانده، از درایوهایی استفاده کنید که دارای چند بخش کمتر از تعویض هستند.
پارتیشن تازه ایجاد شده را به عنوان یک بخش RAID علامت گذاری کنید:
sudo parted /dev/sda set 1 raid on
مرحله 2-2 – نرم افزار 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] 8384448 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
مرحله 3 – حذف 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
مرحله 4 – مدیریت RAID نرم افزاری:
مرحله 4-1 – وضعیت RAID را دریافت کنید:
با خروجی پرونده proc/mdstat/ می توانید یک لیست کوتاه از تمام RAID های موجود در سیستم بدست آورید.
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb1[1] sda1[0] 8380416 blocks super 1.2 [2/2] [UU] md2 : active raid1 sdb3[1] sda3[0] 536739840 blocks super 1.2 [2/2] [UU] bitmap: 3/4 pages [12KB], 65536KB chunk md1 : active raid1 sdb2[1] sda2[0] 1047552 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 0 8 3 0 active sync /dev/sda3 1 8 19 1 active sync /dev/sdb3
مرحله 4-2 – درایو معیوب را جایگزین کنید:
برای این کار ابتدا باید درایو معیوب از 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
مرحله 4-3 – گسترش RAID:
فقط RAID هایی با سطح 1، 5 و 6 قابل گسترش هستند.
پارتیشن جدید ابتدا باید به عنوان یک درایو یدکی یا 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
مرحله 4-4 – مانیتورهای RAID:
برای نظارت بر RAID، این ورودی می تواند به عنوان (sudo crontab -e) ذخیره شود:
0 0 * * * /usr/share/mdadm/checkarray --cron --all --quiet >/dev/null 2>&1 # Runs every day at 00:00 AM
امیدواریم از این مقاله بهره لازم را برده و برای شما مفید بوده باشد. نظرات خود را با ما به اشتراک بگذارید.
ما را در شتابان هاست دنبال کنید.
