| MDADM(8) | دستورات مدیریت سیستم | MDADM(8) |
نام (NAME)
mdadm - مدیریت دستگاههای MD (آرایههای چندگانه دیسک / Software RAID)
خلاصه دستور (SYNOPSIS)
mdadm [حالت] <دستگاه_رِید> [گزینهها] <دستگاههای_عضو>
توضیحات (DESCRIPTION)
ابزار mdadm برای مدیریت، ایجاد، ساخت، پیکربندی، نظارت و بررسی آرایههای چندگانه دیسک لینوکس (Software RAID) به کار میرود.
دستگاههای RAID دستگاههای مجازی هستند که از دو یا چند دستگاه بلوکی واقعی ساخته میشوند. این کار امکان ترکیب چند دستگاه (معمولاً درایوهای دیسک یا پارتیشنهای آنها) را در یک دستگاه واحد برای نگهداری (برای نمونه) یک فایلسیستم منفرد فراهم میآورد. برخی از سطوح RAID شامل افزونگی (Redundancy) هستند و بنابراین میتوانند در برابر درجاتی از خرابی دیسکها دوام بیاورند.
دستگاههای Software RAID در لینوکس از طریق درایور دستگاه md (دستگاههای چندگانه - Multiple Devices) پیادهسازی میشوند.
در حال حاضر، لینوکس از دستگاههای md زیر پشتیبانی میکند: LINEAR, RAID0 (توزیع دادهها / Striping)، RAID1 (آینهای / Mirroring)، RAID4, RAID5, RAID6, RAID10, MULTIPATH, FAULTY و CONTAINER.
MULTIPATH یک سازوکار RAID نرمافزاری واقعی نیست، اما شامل چندین دستگاه میشود: هر دستگاه یک مسیر به یک دستگاه ذخیرهسازی فیزیکی مشترک است. در نصبهای جدید نباید از md/multipath استفاده شود، زیرا پشتیبانی ضعیفی دارد و توسعه فعالی روی آن انجام نمیشود؛ به جای آن از ابزارهای multipath بر پایه Device Mapper استفاده کنید. این قابلیت منسوخ شده و پشتیبانی از آن در آینده حذف خواهد شد.
FAULTY نیز یک RAID واقعی نیست و تنها شامل یک دستگاه میشود. این حالت لایهای روی یک دستگاه واقعی فراهم میکند که میتواند برای تزریق خطاها (Fault Injection) و شبیهسازی خرابی به کار رود. این قابلیت نیز منسوخ شده و پشتیبانی از آن در آینده حذف خواهد شد.
CONTAINER موضوعی متفاوت است. یک CONTAINER مجموعهای از دستگاهها است که به صورت یک کل واحد مدیریت میشوند؛ شبیه به مجموعهای از دیسکها که به یک کنترلر سختافزاری RAID متصل هستند. این مجموعه میتواند شامل چندین آرایه RAID مختلف باشد که هر کدام از بخشی (یا همه) بلوکهای موجود در دستگاههای مجموعه استفاده میکنند. برای نمونه، در یک مجموعه ۵ دیسکی، دو دیسک میتوانند یک آرایه RAID1 کامل تشکیل دهند، و سه دیسک باقیمانده میتوانند یک RAID5 روی نیمه نخست هر دیسک و یک RAID0 روی نیمه دوم داشته باشند.
با یک CONTAINER, یک مجموعه متادیتا وجود دارد که تمام آرایههای درون ظرف را توصیف میکند. بنابراین وقتی mdadm یک دستگاه CONTAINER ایجاد میکند، این دستگاه صرفاً نمایانگر متادیتا است و آرایههای معمولی دیگر (مانند RAID1 و غیره) را میتوان در داخل این ظرف ایجاد کرد.
حالتها (MODES)
ابزار mdadm چندین حالت کاری اصلی دارد:
- سرهمبندی (Assemble)
- سرهمبندی اجزای یک آرایه از پیش ایجادشده در یک آرایه فعال. اجزا میتوانند به صورت صریح مشخص شوند یا جستجو شوند. mdadm بررسی میکند که آیا اجزا تشکیل یک آرایه معتبر را میدهند یا خیر، و در صورت درخواست، میتواند اطلاعات ابربلوک (Superblock) را دستکاری کند تا یک آرایه معیوب نیز سرهمبندی شود.
- ساخت سریع (Build)
- ساخت آرایهای که متادیتای اختصاصی روی هر دیسک (ابربلوک) ندارد. برای این دست آرایهها، mdadm نمیتواند تفاوت میان ایجاد اولیه و سرهمبندی بعدی آرایه را تشخیص دهد. همچنین نمیتواند بررسی کند که آیا اجزای درستی درخواست شدهاند یا خیر. به همین دلیل، حالت Build تنها باید با آگاهی و درک کامل از آنچه انجام میدهید استفاده شود.
- ایجاد (Create)
- ایجاد یک آرایه جدید با متادیتای اختصاصی روی هر دیسک (ابربلوک). متادیتای مناسب روی هر دیسک نوشته میشود و سپس آرایه متشکل از آن دستگاهها فعال میگردد. یک فرایند «همگامسازی مجدد» (resync) آغاز میشود تا اطمینان حاصل شود که آرایه سازگار است (برای نمونه، هر دو سمت آینه حاوی دادههای یکسانی باشند)، اما محتوای دیسکها دستنخورده باقی میماند. آرایه به محض ایجاد قابل استفاده است و نیازی به صبر کردن برای پایان همگامسازی اولیه نیست.
- نظارت یا پیگیری (Follow or Monitor)
- نظارت بر یک یا چند دستگاه md و واکنش به تغییرات وضعیت آنها. این حالت تنها برای آرایههای RAID1، 4، 5، 6، 10 یا multipath معنیدار است، زیرا فقط این سطوح وضعیتهای قابل توجه دارند. آرایههای RAID0 یا Linear هرگز دیسکهای مفقود، یدکی (Spare) یا خراب ندارند، بنابراین چیزی برای نظارت در آنها وجود ندارد.
- گسترش (Grow)
- افزایش (یا کاهش) حجم یک آرایه، یا تغییر شکل ساختاری آن (Reshape). گزینههای پشتیبانیشده در حال حاضر شامل تغییر اندازه فعال دیسکهای عضو، تغییر تعداد دیسکهای فعال در سطوح Linear و RAID 0/1/4/5/6، تغییر سطح RAID میان 0، 1، 5 و 6، و میان 0 و 10، تغییر اندازه تکهها (Chunk size) و چیدمان برای RAID 0,4,5,6,10، و همچنین افزودن یا حذف بیتمپ قصد نوشتن (Write-intent bitmap) و تغییر خطمشی سازگاری آرایه است.
- سرهمبندی افزایشی (Incremental Assembly)
- افزودن یک
دستگاه
مجزا به
آرایه
مناسب. اگر
افزودن
دستگاه
باعث شود
آرایه قابل
اجرا شود،
آرایه
راهاندازی
خواهد شد.
این ویژگی
رابطی
مناسب برای
سیستمهای
اتصال گرم
(hot-plug) فراهم
میکند؛ با
شناسایی هر
دستگاه، mdadm
فرصت
مییابد در
صورت لزوم
آن را در
آرایه
مناسب جای
دهد. در
صورت
استفاده از
گزینه --fail, به
جای
افزودن،
دستگاه از
آرایه فعال
جدا میشود.
اگر یک CONTAINER در این حالت به mdadm داده شود، تمام آرایههای داخل آن ظرف سرهمبندی و راهاندازی خواهند شد.
- مدیریت (Manage)"
- برای انجام عملیات روی اجزای خاصی از آرایه مانند افزودن دیسکهای یدکی (Spare) جدید و حذف دیسکهای معیوب.
- متفرقه (Misc)"
- حالت «همه کارهای دیگر» که از عملیات روی آرایههای فعال، عملیات روی دیسکهای عضو مانند پاک کردن ابربلوکهای قدیمی، و عملیات جمعآوری اطلاعات پشتیبانی میکند.
- شناسایی خودکار (Auto-detect)
- این حالت روی دستگاه یا آرایه خاصی عمل نمیکند، بلکه از هسته لینوکس درخواست میکند تا هر آرایه شناساییشده خودکار را فعال سازد.
گزینهها (OPTIONS)
گزینههای انتخاب حالت (Options for selecting a mode are:)
- -A, --assemble
- سرهمبندی یک آرایه از پیش موجود.
- -B, --build
- ساخت یک آرایه قدیمی بدون ابربلوک.
- -C, --create
- ایجاد یک آرایه جدید.
- -F, --follow, --monitor
- انتخاب حالت نظارت (Monitor).
- -G, --grow
- تغییر اندازه یا شکل یک آرایه فعال.
- -I, --incremental
- افزودن/حذف یک دستگاه واحد به/از یک آرایه مناسب، و احتمالاً راهاندازی آرایه.
- --auto-detect
- درخواست از هسته لینوکس برای راهاندازی آرایههای شناساییشده خودکار. این گزینه تنها زمانی کار میکند که md درون هسته کامپایل شده باشد، نه به عنوان یک ماژول بارگذاریشونده. آرایهها زمانی توسط هسته به صورت خودکار شناسایی میشوند که تمام بخشهای آنها در پارتیشنهای اولیه MS-DOS با نوع پارتیشن FD قرار داشته و همگی از متادیتای نگارش 0.90 استفاده کنند. استفاده از شناسایی خودکار درون هسته برای نصبهای جدید توصیه نمیشود. استفاده از mdadm برای شناسایی و سرهمبندی آرایهها (احتمالاً در یک initrd) بسیار انعطافپذیرتر است و ترجیح داده میشود.
اگر پیش از هر گزینهای یک دستگاه مشخص شود، یا اگر نخستین گزینه یکی از موارد --add, --re-add, --add-spare, --fail, --remove, یا --replace باشد، حالت مدیریت (MANAGE) در نظر گرفته میشود. هر مورد دیگری باعث در نظر گرفتن حالت متفرقه (Misc) خواهد شد.
گزینههای عمومی و غیروابسته به حالت (Options that are not mode-specific are:)
- -h, --help
- نمایش پیام راهنمای عمومی، یا پس از انتخاب یکی از گزینههای بالا، نمایش راهنمای مربوط به آن حالت خاص.
- --help-options
- نمایش راهنمای دقیقتر درباره تجزیه خط فرمان و برخی گزینههای پرکاربرد.
- -V, --version
- چاپ اطلاعات نگارش mdadm.
- -v, --verbose
- ارائه توضیحات و گزارشهای با جزئیات بیشتر در مورد رویدادها. این گزینه را میتوان دو بار برای جزئیات حداکثری به کار برد. این پرگویی اضافی در حال حاضر تنها بر --detail --scan و --examine --scan تاثیر میگذارد.
- -q, --quiet
- جلوگیری از چاپ پیامهای صرفاً اطلاعرسانی. با این گزینه، mdadm ساکت خواهد بود مگر اینکه موضوع واقعاً مهمی برای گزارش وجود داشته باشد.
- -f, --force
- اعمال اجبار بیشتر بر روی برخی عملیاتها. برای معنای دقیق این گزینه در زمینههای مختلف، بخشهای مربوط به هر حالت را ببینید.
- -c, --config=
- مشخص کردن
فایل یا
دایرکتوری
پیکربندی.
در صورت عدم
تعیین، از
فایل
پیکربندی
پیشفرض و
دایرکتوری
پیشفرض conf.d
استفاده
خواهد شد.
برای
جزئیات
بیشتر به
mdadm.conf(5) مراجعه
کنید.
اگر فایل پیکربندی به عنوان partitions مشخص شود، هیچ فایلی خوانده نمیشود، اما mdadm طوری رفتار میکند که گویی فایل پیکربندی دقیقاً حاوی خط زیر است:
DEVICE partitions containers
و فایل /proc/partitions را برای یافتن فهرست دستگاهها جهت پویش، و /proc/mdstat را برای یافتن فهرست ظروف (Containers) بررسی میکند. اگر کلمه none داده شود، mdadm طوری رفتار میکند که گویی فایل پیکربندی خالی است.اگر نام دادهشده یک دایرکتوری باشد، mdadm تمامی فایلهای موجود در آن دایرکتوری که نام آنها با .conf خاتمه مییابد را جمعآوری کرده، بر اساس حروف الفبا مرتب میکند و همه را به عنوان فایلهای پیکربندی پردازش مینماید.
- -s, --scan
- پویش فایل پیکربندی یا /proc/mdstat برای یافتن اطلاعات مفقود. به طور کلی، این گزینه به mdadm اجازه میدهد تا هرگونه اطلاعات مفقود (مانند دستگاههای عضو، دستگاههای آرایه، هویت آرایه و مقصد هشدارها) را از فایل پیکربندی استخراج کند؛ یک استثنا در حالت MISC هنگام استفاده از --detail یا --stop است که در آن حالت --scan فهرست دستگاههای آرایه را از /proc/mdstat دریافت میکند.
- -e, --metadata=
- تعیین سبک
متادیتای RAID
(ابربلوک)
مورد
استفاده.
مقدار
پیشفرض
برای --create
برابر 1.2
است، و برای
سایر
عملیاتها
به صورت
حدسزدن
انجام
میشود. این
پیشفرض را
میتوان با
تنظیم
مقدار metadata
برای
کلیدواژه
CREATE در mdadm.conf
تغییر داد.
گزینهها عبارتند از:
- 0, 0.90
- استفاده از قالب اصلی ابربلوک 0.90. این قالب آرایهها را به ۲۸ دستگاه عضو محدود میکند و دستگاههای عضو در سطوح ۱ و بالاتر را به ۲ ترابایت محدود میسازد. همچنین ممکن است این ابهام پیش بیاید که آیا ابربلوک به کل دیسک اعمال میشود یا تنها به آخرین پارتیشن، به ویژه اگر آن پارتیشن روی مرز 64K شروع شود.
- 1, 1.0, 1.1, 1.2 پیشفرض
- استفاده از قالب جدید ابربلوک نسخه ۱. این نسخه محدودیتهای کمتری دارد، به راحتی میان سیستمهایی با ترتیب بایت متفاوت (Endianness) جابجا میشود، و عملیات بازیابی را میتوان نشانهگذاری (Checkpoint) کرده و از سر گرفت. زیرنسخههای مختلف، ابربلوک را در مکانهای متفاوتی از دستگاه ذخیره میکنند: در انتهای دیسک (برای 1.0)، در ابتدای دیسک (برای 1.1) یا ۴ کیلوبایت پس از شروع دیسک (برای 1.2). مقدار "1" معادل "1.2" (قالب رایج و ترجیح دادهشده 1.x) است و مقدار "default" نیز معادل "1.2" میباشد.
- ddf
- استفاده از استاندارد صنعتی DDF (Disk Data Format) تعریفشده توسط SNIA. قالب DDF منسوخ شده و توسعه فعالی روی آن انجام نمیشود. هنگام ایجاد یک آرایه DDF، یک CONTAINER ایجاد میشود و آرایههای معمولی را میتوان درون آن ظرف ایجاد کرد.
- imsm
- استفاده از قالب متادیتای Intel(R) Matrix Storage Manager. این گزینه یک CONTAINER ایجاد میکند که به شیوهای مشابه DDF مدیریت میشود و توسط Option-ROM در برخی پلتفرمها پشتیبانی میگردد:
- https://www.intel.com/content/www/us/en/support/products/122484
- --homehost=
- این گزینه
تنظیمات HOMEHOST
در فایل
پیکربندی
را نادیده
میگیرد و
هویت
میزبانی را
مشخص
میکند که
باید به
عنوان
میزبان
اصلی
آرایهها
در نظر
گرفته شود.
هنگام ایجاد یک آرایه، homehost در متادیتا ثبت میشود. برای ابربلوکهای نگارش ۱، این نام به عنوان پیشوند نام آرایه درج میشود. برای ابربلوکهای نگارش 0.90، بخشی از هش SHA1 نام میزبان در نیمه دوم UUID ذخیره میگردد.
هنگام گزارش اطلاعات یک آرایه، هر آرایهای که با این homehost برچسب خورده باشد به همین صورت گزارش میشود.
در هنگام سرهمبندی خودکار (Auto-Assemble)، تنها آرایههایی که برای این میزبان برچسب خوردهاند اجازه استفاده از نامهای محلی (یعنی نامهایی که به '_' و یک رشته عددی ختم نمیشوند) را خواهند داشت. بخش سرهمبندی خودکار در زیر را ببینید.
نام ویژه "any" میتواند به عنوان یک نویسه عمومی (Wildcard) استفاده شود. اگر آرایهای با --homehost=any ایجاد شود، نام "any" در آن ذخیره شده و میتواند بر روی هر میزبانی به همان شکل سرهمبندی شود. اگر آرایهای با این گزینه سرهمبندی شود، homehost ثبتشده روی آرایه نادیده گرفته خواهد شد.
- --prefer=
- هنگامی که mdadm نیاز به چاپ نام یک دستگاه دارد، معمولاً کوتاهترین نام ارجاعدهنده به آن دستگاه در /dev را انتخاب میکند. هنگامی که یک مؤلفه مسیر با --prefer مشخص شود، mdadm نام طولانیتری را ترجیح میدهد اگر شامل آن مؤلفه باشد. برای نمونه --prefer=by-uuid نامی را در زیرپوشه by-uuid در /dev ترجیح خواهد داد. این قابلیت در حال حاضر تنها توسط --detail و --monitor ارائه میشود.
- --home-cluster=
- نام کلاستر را برای دستگاه md مشخص میکند. دستگاه md تنها بر روی کلاستری که با نام مشخصشده مطابقت دارد قابل سرهمبندی است. اگر این گزینه ارائه نشود، mdadm تلاش میکند تا نام کلاستر را به صورت خودکار شناسایی کند.
برای حالتهای ایجاد، ساخت یا گسترش (For create, build, or grow:)
- -n, --raid-devices=
- تعیین
تعداد
دستگاههای
فعال در
آرایه. این
تعداد به
اضافه
تعداد
دستگاههای
یدکی (Spare) باید
برابر با
مجموع
دستگاههای_عضو
(شامل
دستگاههای
"missing") باشد
که در خط
فرمان برای
--create ذکر
شدهاند.
تنظیم
مقدار ۱
احتمالاً
یک اشتباه
است و
بنابراین
نیازمند آن
است که
ابتدا --force
مشخص شود؛
در این صورت
مقدار ۱
برای
حالتهای
linear، multipath، RAID0 و RAID1
مجاز خواهد
بود، اما
هرگز برای
RAID4، RAID5 یا RAID6
مجاز نیست.
این تعداد را تنها میتوان با استفاده از --grow برای آرایههای RAID1، RAID4، RAID5 و RAID6 تغییر داد. - -x, --spare-devices=
- تعیین تعداد دستگاههای یدکی (eXtra) در آرایه اولیه. دیسکهای یدکی را میتوان بعداً نیز اضافه یا حذف کرد. تعداد دستگاههای عضو فهرستشده در خط فرمان باید برابر با مجموع دیسکهای RAID به علاوه دیسکهای یدکی باشد.
- -z, --size=
- میزان فضای
مورد
استفاده (به
کیلوبایت)
از هر درایو
در سطوح
رِید 1/4/5/6/10 و
برای RAID 0 روی
متادیتای
خارجی. این
مقدار باید
مضربی از
اندازه تکه
(Chunk size) باشد و
حدود ۱۲۸
کیلوبایت
فضا در
انتهای
درایو برای
ابربلوک RAID
باقی
بگذارد.
هنگامی که
مقدار به
صورت ¸max¸
مشخص شود
(که بسیار
رایج است)،
کوچکترین
درایو (یا
پارتیشن)
تعیینکننده
اندازه
خواهد بود.
در این
حالت، اگر
اندازه
درایوها به
عنوان یک
گروه بیش از
یک درصد با
یکدیگر
تفاوت
داشته
باشد، یک
پیام هشدار
نمایش داده
خواهد شد.
پسوندهای 'K'، 'M'، 'G' یا 'T' میتوانند به ترتیب برای نشان دادن کیلوبایت، مگابایت، گیگابایت یا ترابایت استفاده شوند.
گاهی ممکن است درایو جایگزین اندکی کوچکتر از درایوهای اصلی باشد، هرچند استانداردهای IDEMA این اختلاف را به حداقل رساندهاند. چنین درایو جایگزینی توسط md رد خواهد شد. برای پیشگیری از این مشکل، مفید است که اندازه اولیه اندکی کوچکتر از کوچکتری دستگاه تنظیم شود تا همچنان بزرگتر از هر جایگزین احتمالی باشد.
این گزینه با --create برای تعیین اندازه اولیه آرایه به کار میرود. برای متادیتای خارجی، میتواند روی یک حجم (Volume) استفاده شود، اما روی خود کانتینر قابل استفاده نیست. تنظیم اندازه اولیه برای آرایه RAID 0 تنها در متادیتای خارجی معتبر است.
این مقدار را میتوان با --grow برای سطوح رِید 1/4/5/6/10 تغییر داد، هرچند ممکن است آرایههای DDF قادر به پشتیبانی از آن نباشند. اندازه آرایه RAID 0 قابل تغییر نیست. اگر آرایه با اندازهای کوچکتر از درایوهای فعال کنونی ایجاد شده باشد، فضای اضافی را میتوان با استفاده از --grow در دسترس قرار داد. اندازه را میتوان به عنوان max تعیین کرد که به معنای انتخاب بزرگترین اندازهای است که روی تمام درایوهای فعلی جا میشود.
پیش از کاهش اندازه آرایه (با --grow --size=) باید مطمئن شوید که فضا مورد نیاز نیست. اگر دستگاه حاوی فایلسیستم است، باید فایلسیستم را تغییر اندازه دهید تا فضای کمتری اشغال کند.
پس از کاهش اندازه آرایه، باید بررسی کنید که آیا دادههای ذخیرهشده هنوز در دسترس هستند یا خیر. اگر دستگاه حاوی فایلسیستم است، اجرای یک 'fsck' روی آن حداقل نیاز ضروری است. در صورت بروز مشکل، میتوان با دستور دیگری از --grow --size= آرایه را بدون اتلاف داده مجدداً بزرگ کرد.
- -Z, --array-size=
- این گزینه
تنها با --grow
معنیدار
است و اثر
آن ماندگار
نیست:
هنگامی که
آرایه
متوقف و
دوباره
راهاندازی
شود،
اندازه
پیشفرض
آرایه
بازیابی
خواهد شد.
تنظیم اندازه آرایه باعث میشود که آرایه برای برنامههایی که به دادهها دسترسی دارند کوچکتر به نظر برسد. این امر به ویژه پیش از تغییر شکل ساختاری (Reshape) آرایه برای کوچکتر شدن آن مورد نیاز است. از آنجا که تغییر ساختار غیرقابل بازگشت است، اما تنظیم اندازه با --array-size برگشتپذیر است، لازم است که اندازه آرایه پیش از کاهش تعداد دستگاهها کاهش داده شود.
قبل از کاهش اندازه آرایه مطمئن شوید که فضا مورد نیاز نیست. اگر دستگاه حاوی فایلسیستم است، باید فایلسیستم را کوچک کنید.
پس از کاهش اندازه آرایه بررسی کنید که دادهها سالم باشند (اجرای fsck). مقدار max اندازه ظاهری آرایه را به مقدار فضای واقعی موجود بازمیگرداند.
آرایههای خوشهای (Clustered) هنوز از این پارامتر پشتیبانی نمیکنند.
- -c, --chunk=
- تعیین
اندازه تکه
(Chunk size) به
کیلوبایت.
مقدار
پیشفرض
هنگام
ایجاد
آرایه ۵۱۲
کیلوبایت
است. برای
سازگاری با
نگارشهای
قدیمیتر،
پیشفرض
هنگام ساخت
آرایه بدون
متادیتای
ماندگار ۶۴
کیلوبایت
است. این
گزینه تنها
برای RAID0، RAID4، RAID5،
RAID6 و RAID10
معنیدار
است.
در سطوح RAID4، RAID5، RAID6 و RAID10، اندازه تکه باید توانی از ۲ و حداقل ۴ کیلوبایت باشد.
پسوندهای 'K'، 'M'، 'G' یا 'T' برای واحدهای کیلوبایت تا ترابایت قابل استفادهاند.
- --rounding=
- تعیین ضریب گرد کردن برای یک آرایه Linear. اندازه هر جزء به مضربی از این مقدار به سمت پایین گرد میشود. این یک مترادف برای --chunk است اما معنای متفاوت آن را در Linear در مقایسه با سایر سطوح برجسته میکند. مقدار پیشفرض 0K است (بدون گرد کردن).
- -l, --level=
- تنظیم سطح RAID.
هنگام
استفاده با
--create,
گزینهها
عبارتند از:
linear, raid0, 0, stripe, raid1, 1, mirror, raid4, 4, raid5, 5, raid6, 6,
raid10, 10, multipath, mp, faulty, container.
برخی از
اینها
مترادف
یکدیگرند.
هنگامی که قالب متادیتای CONTAINER درخواست میشود، تنها سطح container مجاز است و نیازی به ذکر صریح آن نیست.
هنگام استفاده با --build, تنها مقادیر linear, stripe, raid0, 0, raid1, multipath, mp و faulty معتبر هستند.
میتوان با --grow برای تغییر سطح RAID در برخی حالات استفاده کرد. بخش تغییرات سطح (LEVEL CHANGES) در ادامه را ببینید.
- -p, --layout=
- این گزینه
جزئیات
دقیق
چیدمان
دادهها را
برای
آرایههای
RAID5، RAID6 و RAID10
پیکربندی
میکند و
حالتهای
خرابی را
برای سطح faulty
کنترل
مینماید.
همچنین
میتواند
برای دور
زدن یک باگ
هسته در RAID0 به
کار رود،
هرچند
عموماً
نیازی به
تنظیم صریح
ندارد.
چیدمان بلوک توازن (Parity) در RAID5 میتواند یکی از موارد زیر باشد: left-asymmetric, left-symmetric, right-asymmetric, right-symmetric, la, ra, ls, rs. پیشفرض برابر با left-symmetric است.
همچنین میتوان با انتخاب parity-first یا parity-last کاری کرد که RAID5 از چیدمانی شبیه به RAID4 استفاده کند.
در نهایت برای RAID5 چیدمانهای سازگار با DDF شامل ddf-zero-restart, ddf-N-restart و ddf-N-continue وجود دارند.
همین چیدمانها برای RAID6 نیز در دسترس هستند. علاوه بر این، ۴ چیدمان وجود دارند که مرحلهای میانی برای تبدیل میان RAID5 و RAID6 فراهم میکنند؛ این چیدمانها روی N-1 دستگاه اول مشابه چیدمان RAID5 متناظر هستند و سندروم 'Q' (دومین بلوک توازن RAID6) را روی آخرین دستگاه قرار میدهند: left-symmetric-6, right-symmetric-6, left-asymmetric-6, right-asymmetric-6 و parity-first-6.
هنگام تنظیم حالت خرابی برای سطح faulty, گزینهها عبارتند از: write-transient, wt, read-transient, rt, write-persistent, wp, read-persistent, rp, write-all, read-fixable, rf, clear, flush, none.
هر حالت خرابی میتواند با یک عدد همراه باشد که به عنوان دوره تکرار تولید خطا به کار میرود. بدون عدد، خطا یکبار در اولین درخواست مربوطه تولید میشود. با درج عدد، خطا پس از آن تعداد درخواست ایجاد شده و پس از انقضای هر دوره ادامه مییابد.
با استفاده از گزینه --grow میتوان چندین حالت خرابی را به طور همزمان فعال داشت. عبارت "clear" یا "none" هرگونه حالت خطای معلق یا دورهای را پاک میکند و "flush" خطاهای ماندگار را برطرف میسازد.
گزینههای چیدمان برای RAID10 یکی از حروف 'n'، 'o' یا 'f' به همراه یک عدد کوچک نشاندهنده تعداد نسخههای هر بلوک داده است. پیشفرض 'n2' است. گزینههای پشتیبانیشده:
- 'n'
- نشاندهنده نسخههای نزدیک (Near): چند نسخه از یک بلوک داده در آفستهای مشابه در دیسکهای مختلف قرار دارند.
- 'o'
- نشاندهنده نسخههای جابجاشده (Offset): به جای تکرار تکهها درون یک نوار، کل نوارها کپی میشوند اما با چرخش یک دستگاهی، به طوری که بلوکهای تکراری روی دستگاههای متفاوتی قرار میگیرند.
- 'f'
- نشاندهنده
نسخههای
دور (Far):
نسخههای
متعدد
آفستهای
بسیار
متفاوتی
دارند. برای
جزئیات به md(4)
مراجعه
کنید.
تعداد معمول نسخهها ۲ و گاهی ۳ است. این مقدار حداکثر میتواند برابر تعداد دستگاهها باشد.
یک باگ معرفیشده در لینوکس 3.14 باعث شد آرایههای RAID0 با دستگاههایی با اندازههای متفاوت از چیدمان متفاوتی استفاده کنند که میتوانست به خرابی دادهها منجر شود. از لینوکس 5.4 به بعد هسته چنین آرایهای را نمیپذیرد مگر اینکه چیدمان صریحاً روی 'original' یا 'alternate' تنظیم شده باشد. هنگام ایجاد یک آرایه جدید، mdadm به صورت پیشفرض 'original' را انتخاب میکند. برای ایجاد آرایه روی هستههای قدیمیتر میتوان آن را روی 'dangerous' تنظیم کرد.
هنگام تبدیل آرایه میان RAID5 و RAID6 از یک چیدمان میانی استفاده میشود که بلوک توازن دوم (Q) همیشه روی آخرین دیسک است. برای تبدیل و باقی ماندن در این چیدمان از --layout=preserve استفاده کنید تا از بازسازی نوارها جلوگیری شود. برعکس آن، --layout=normalise چیدمان غیر استاندارد را به حالت عادی تغییر میدهد.
- --parity=
- مشابه با --layout (دلیل وجود حرف p در -p).
- -b, --bitmap=
- تعیین نحوه
ذخیرهسازی
بیتمپ قصد
نوشتن (Write-intent bitmap).
مقادیر زیر
پشتیبانی
میشوند:
internal - بیتمپ به همراه متادیتا روی آرایه ذخیره شده و روی تمام دستگاهها تکرار میشود.
clustered - آرایه برای محیط خوشهای ایجاد میشود. برای هر گره مشخصشده با پارامتر --nodes یک بیتمپ به صورت داخلی ایجاد و ذخیره میگردد.
none - ایجاد آرایه بدون بیتمپ یا حذف بیتمپ موجود (در حالت grow).
- --bitmap-chunk=
- تنظیم اندازه تکه بیتمپ. هر بیت متناظر با آن مقدار کیلوبایت از فضای ذخیرهسازی خواهد بود. برای بیتمپ داخلی (internal)، اندازه تکه پیشفرض 64Meg است، یا بزرگتر اگر برای جا شدن بیتمپ در فضای موجود لازم باشد.
- -W, --write-mostly
- دستگاههای بعدی که در خط فرمان ذکر میشوند با ویژگی 'write-mostly' علامتگذاری خواهند شد. این گزینه تنها برای RAID1 معتبر است و باعث میشود درایور 'md' تا حد امکان از خواندن از این دستگاهها خودداری کند مگر در مواقع ضروری. این گزینه برای پیوندهای شبکهای با سرعت پایین بسیار مفید است.
- --write-behind=
- فعالسازی نوشتن پسزمینه (Write-behind) برای دستگاههای علامتگذاریشده با write-mostly. این ویژگی اجازه میدهد درخواستهای نوشتن به دستگاههای کندتر به صورت ناهمگام انجام شوند. حداکثر تعداد درخواستهای نوشتن معلق را میتوان تعیین کرد (پیشفرض ۲۵۶).
- --failfast
- دستگاههای بعدی را با علامت 'failfast' مشخص میکند. این گزینه تنها برای RAID1 و RAID10 معتبر است و باعث میشود در صورت بروز خطای خواندن یا نوشتن، درایور به جای تلاشهای مکرر و طولانی، بلافاصله دستگاه را خطا اعلام کند تا از تاخیر جلوگیری شود. اگر آرایه تحلیل رود به طوری که دستگاه failfast تنها دستگاه قابل استفاده باشد، این فلگ نادیده گرفته میشود.
- --assume-clean
- به mdadm اعلام میکند که آرایه از پیش وجود داشته و کاملاً تمیز و همگام است. این گزینه برای بازیابی پس از خرابیهای عمده بسیار مفید است. همچنین میتوان هنگام ایجاد RAID1 یا RAID10 برای اجتناب از همگامسازی اولیه از آن استفاده کرد، اما این کار معمولاً توصیه نمیشود مگر اینکه دقیقاً بدانید چه میکنید. اگر دیسکها پیش از ایجاد با صفر پر شده باشند (مثلاً پس از badblocks)، میتوان از این گزینه استفاده کرد. هنگام افزایش اندازه آرایه با --grow --size=, فضای جدید معمولاً بازهمگامسازی میشود؛ با این گزینه میتوان از آن صرفنظر کرد.
- --write-zeroes
- هنگام ایجاد آرایه، درخواستهای نوشتن صفر به تمام دستگاههای بلوکی ارسال میشود. این کار ناحیه داده را صفر میکند تا همگامسازی اولیه لازم نباشد و در صورت موفقیت، مانند --assume-clean عمل خواهد کرد. این گزینه تنها با create-- معنیدار است.
- --backup-file=
- هنگامی نیاز است که از --grow برای افزایش تعداد دستگاهها در RAID5 یا RAID6 (در صورت عدم وجود دیسک یدکی) یا برای کوچکسازی، تغییر سطح یا چیدمان استفاده شود. این فایل باید روی دستگاهی مجزا ذخیره شود، نه روی خود آرایهای که در حال تغییر ساختار است.
- --data-offset=
- آرایههای دارای متادیتای 1.x میتوانند فاصلهای میان آغاز دستگاه و آغاز دادههای آرایه باقی بگذارند. این فاصله data-offset نامیده میشود. معمولاً به طور خودکار محاسبه میشود، اما تنظیم صریح آن در مواقع بازسازی آرایهای که با نگارش متفاوتی از mdadm ایجاد شده مفید است. این گزینه در --grow نیز برای تغییر آفست داده حین تغییر ساختار کاربرد دارد.
- --continue
- مکمل گزینه --freeze-reshape در سرهمبندی است. برای ادامه عملیات تغییر ساختاری که متوقف شده استفاده میشود. همراه با -G و دستگاه آرایه فراخوانی میشود و تمام پارامترها را از متادیتا میخواند.
- -N, --name=
- تنظیم نام برای آرایه. نام باید با POSIX PORTABLE NAME سازگار بوده و بیش از ۳۲ نویسه نباشد.
- -R, --run
- اجبار به راهاندازی آرایه حتی اگر به نظر برسد برخی از دستگاهها در آرایه یا فایلسیستم دیگری فعال هستند (حذف پرسشهای تاییدی).
- -f, --force
- اجبار به پذیرش پیکربندی هندسی و چیدمان مشخصشده بدون تردید.
- -o, --readonly
- راهاندازی آرایه در حالت فقطخواندنی به جای خواندن/نوشتن عادی.
- -a, --add
- این گزینه در حالت Grow در دو حالت به کار میرود: افزودن دستگاه به یک آرایه Linear، یا افزودن دستگاههای اضافی هنگام افزایش raid-disks در یک آرایه RAID0 که امکان دیسک یدکی ندارد.
- --nodes
- تعیین حداکثر تعداد گرههای کلاستر که به طور همزمان از این دستگاه استفاده خواهند کرد (پیشفرض ۴).
- --write-journal
- تعیین دستگاه ژورنال برای آرایه RAID-4/5/6 (باید ترجیحاً یک SSD با طول عمر مناسب باشد).
- -k, --consistency-policy=
- تعیین نحوه حفظ سازگاری آرایه در زمان خاموشی غیرمنتظره. گزینههای پشتیبانیشده:
- resync
- همگامسازی کامل پس از خاموشی نامناسب انجام میشود و تمام افزونگی بازتولید میگردد.
- bitmap
- همگامسازی به کمک بیتمپ قصد نوشتن. با انتخاب --bitmap به طور ضمنی فعال میشود.
- journal
- برای سطوح RAID 4/5/6، از دستگاه ژورنال برای ثبت تراکنشها و بازپخش آنها استفاده میشود. با --write-journal به طور ضمنی فعال میشود.
- ppl
- تنها برای RAID5، لاگ توازن جزئی (Partial Parity Log) برای بستن حفره نوشتن (Write Hole) و حذف بازهمگامسازی استفاده میشود. PPL در ناحیه متادیتای دیسکهای عضو ذخیره میشود و نیازی به درایو ژورنال اضافی ندارد.
برای حالت سرهمبندی (For assemble:)
- -u, --uuid=
- شناسه یکتای (UUID) آرایه برای سرهمبندی. دستگاههایی که فاقد این شناسه باشند مستثنی میشوند.
- -m, --super-minor=
- شماره فرعی (Minor number) دستگاهی که آرایه برای آن ایجاد شده بود. اگر آرایهای به عنوان /dev/md1 ایجاد شده باشد، تمام ابربلوکها حاوی شماره ۱ خواهند بود حتی اگر بعداً به عنوان /dev/md2 سرهمبندی شود. مقدار "dev" از شماره فرعی دستگاه در حال سرهمبندی استفاده میکند. این گزینه تنها برای متادیتای v0.90 مطرح است و استفاده از --uuid بسیار امنتر است.
- -N, --name=
- مشخص کردن نام آرایه برای سرهمبندی. باید با POSIX PORTABLE NAME سازگار بوده و حداکثر ۳۲ نویسه باشد.
- -f, --force
- سرهمبندی آرایه حتی اگر متادیتای برخی دستگاهها قدیمی به نظر برسد. اگر mdadm نتواند دستگاههای فعال کافی برای راهاندازی پیدا کند، دستگاههایی که به عنوان خراب ثبت شدهاند را به عنوان سالم علامتگذاری میکند تا آرایه راهاندازی شود. این گزینه باید با احتیاط استفاده شود چون ممکن است منجر به خرابی داده شود.
- -R, --run
- تلاش برای راهاندازی آرایه حتی اگر تعداد درایوهای کمتری نسبت به آخرین زمان فعال بودن یافت شده باشد.
- --no-degraded
- نقطه مقابل --run است؛ از راهاندازی آرایه جلوگیری میکند مگر اینکه تمام درایوهای مورد انتظار حاضر باشند.
- --backup-file=
- اگر هنگام تغییر ساختار یک آرایه از این فایل استفاده شده باشد و سیستم در طول بخش بحرانی از کار افتاده باشد، همان فایل باید به --assemble داده شود تا دادههای آسیبدیده بازیابی شوند و تغییر ساختار تکمیل گردد.
- --invalid-backup
- اگر فایل پشتیبان بالا در دسترس نباشد، میتوان با دادن یک فایل خالی به همراه این گزینه اعلام کرد که فایل نامعتبر است تا بقیه آرایه تا جای ممکن بازیابی شود.
- -U, --update=
- بهروزرسانی
ابربلوک
روی هر
دستگاه در
حین
سرهمبندی
آرایه.
آرگومان
میتواند
یکی از
موارد زیر
باشد: summaries, uuid,
name, nodes, homehost, home-cluster,
resync, byteorder, devicesize, no-bitmap,
bbl, no-bbl, ppl, no-ppl,
layout-original, layout-alternate,
layout-unspecified, metadata, یا
super-minor.
گزینه super-minor فیلد minor ترجیحی را در هر ابربلوک مطابق با شماره فرعی آرایه در حال سرهمبندی بهروزرسانی میکند.
گزینه uuid شناسه UUID آرایه را تغییر میدهد.
گزینه name نام آرایه ذخیرهشده در ابربلوک را تغییر میدهد (تنها برای نگارش ۱).
گزینه nodes تعداد گرههای آرایه را در ابربلوک بیتمپ تغییر میدهد (محیط خوشهای).
گزینه homehost نام homehost ثبتشده در ابربلوک را بهروز میکند.
گزینه home-cluster نام کلاستر ثبتشده را بهروزرسانی میکند.
گزینه resync باعث میشود آرایه به عنوان کثیف (dirty) علامتگذاری شود و یک دور همگامسازی کامل انجام شود تا تمام اطلاعات افزونگی بررسی و تصحیح شوند.
گزینه byteorder امکان جابجایی آرایههای با متادیتای 0.90 را میان معماریهایی با ترتیب بایت متفاوت (مانند big-endian به little-endian) فراهم میکند.
گزینه summaries خلاصهها و شمارندههای کل، سالم، فعال، خراب و یدکی را در ابربلوک اصلاح میکند.
گزینه devicesize برای متادیتای 1.1 و 1.2 هنگامی که اندازه فیزیکی دستگاه عضو بزرگتر شده است کاربرد دارد تا حداکثر فضای قابل استفاده را شناسایی کرده و فیلد متناظر در متادیتا را بهروز کند.
گزینه metadata آرایههای متادیتای v0.90 را به v1.0 تبدیل میکند (آرایه نباید کثیف باشد یا بیتمپ داشته باشد).
گزینه no-bitmap در صورتی که بیتمپ داخلی خراب شده و مانع سرهمبندی آرایه شود، آن را نادیده میگیرد.
گزینههای bbl و no-bbl برای تخصیص یا حذف فضای لیست بلوکهای خراب (Bad block list) به کار میروند.
گزینههای ppl و no-ppl برای فعال یا غیرفعال کردن Partial Parity Log در ابربلوک RAID5 استفاده میشوند.
گزینههای layout-original, layout-alternate و layout-unspecified برای تنظیم یا بازگرداندن چیدمان آرایههای RAID0 با دیسکهای ناهماندازه استفاده میشوند (سازگاری با هستههای قبل و بعد از لینوکس 5.4).
- --freeze-reshape
- این گزینه در اسکریپتهای راهاندازی فاز initrd استفاده میشود تا تغییر ساختار را پس از بازیابی بخش بحرانی متوقف کند و از تداخل با تغییر نقطه اتصال ریشه سیستمعامل (pivot) جلوگیری به عمل آورد.
برای حالت مدیریت (For Manage mode:)
- -t, --test
- خروج با وضعیت ۲ در صورتی که هیچ تغییری در آرایه ایجاد نشود و ۰ در صورت اعمال حداقل یک تغییر. هنگام استفاده از تعیینکنندههایی مانند missing، detached یا faulty مفید است.
- -a, --add
- اتصال گرم (hot-add) دستگاههای فهرستشده. اگر دستگاه قبلاً عضو آرایه بوده باشد، دوباره اضافه (re-add) میشود؛ در غیر این صورت به عنوان دیسک یدکی (hot-spare) اضافه خواهد شد.
- --re-add
- افزودن مجدد دستگاهی که قبلاً از آرایه حذف شده است. در صورت وجود بیتمپ، تنها بلوکهای تغییریافته بازسازی میشوند و نیازی به بازسازی کامل نیست. اگر نام دستگاه missing داده شود، تلاش میشود تمامی دستگاههای مفقود اضافه شوند. اگر faulty داده شود، دستگاههای معیوب حذف و بلافاصله تلاش میشود دوباره اضافه شوند.
- --add-spare
- افزودن مستقیم دستگاه به عنوان دیسک یدکی بدون بررسی برای re-add.
- -r, --remove
- حذف دستگاههای مشخصشده (باید غیرفعال، خراب یا یدکی باشند). کلمات failed, detached و نامهای مجموعهای مانند set-A نیز پذیرفته میشوند.
- -f, --fail
- علامتگذاری دستگاههای فهرستشده به عنوان معیوب (Faulty).
- --set-faulty
- مشابه با --fail.
- --replace
- علامتگذاری دستگاه برای جایگزینی. به محض در دسترس بودن دیسک یدکی، بازسازی روی آن آغاز میشود در حالی که درایو اصلی همچنان در خدمت باقی میماند تا پایداری در برابر خطاهای همزمان افزایش یابد.
- --with
- دستگاههای پس از این گزینه ترجیحاً برای جایگزینی دستگاههای مشخصشده با --replace استفاده خواهند شد.
- --write-mostly
- تنظیم ویژگی 'write-mostly' برای دستگاههای بعدی که اضافه یا اضافه مجدد میشوند (فقط RAID1).
- --readwrite
- پاک کردن ویژگی 'write-mostly' برای دستگاههای بعدی.
- --cluster-confirm
- تایید وجود دستگاه در محیطهای خوشهای در پاسخ به درخواست add-- از سوی یک گره دیگر.
- --add-journal
- افزودن یک دستگاه ژورنال به یک آرایه موجود، یا بازسازی ژورنال برای یک آرایه RAID-4/5/6 که دستگاه ژورنال خود را از دست داده است. برای جلوگیری از وقفه در عملیات نوشتن، این گزینه تنها در حالت فقطخواندنی کار میکند.
- --failfast
- تنظیم فلگ 'failfast' برای دستگاههای بعدی (تنها برای RAID1 و RAID10).
- --nofailfast
- افزودن مجدد دستگاهها بدون فلگ 'failfast'.
برای حالت متفرقه (For Misc mode:)
- -Q, --query
- بررسی یک دستگاه برای تشخیص اینکه: (۱) آیا یک دستگاه md است، و (۲) آیا عضوی از یک آرایه md میباشد یا خیر. اطلاعات کشفشده ارائه میشوند.
- -D, --detail
- چاپ جزئیات کامل یک یا چند دستگاه md فعال.
- --detail-platform
- چاپ جزئیات قابلیتهای RAID پلتفرم (میانافزار / همبندی سختافزاری) برای یک قالب متادیتای مشخص. در صورت عدم تعیین آرگومان، تمامی کنترلرها بررسی میشوند.
- -Y, --export
- هنگام استفاده با --detail, --detail-platform, --examine یا --incremental, خروجی به صورت جفتهای key=value قالببندی میشود تا وارد کردن آن به متغیرهای محیطی یا اسکریپتها آسان باشد.
- -E, --examine
- چاپ محتوای متادیتای ذخیرهشده روی دستگاههای نامبرده. تفاوت میان --examine و --detail در این است که examine روی دستگاههای عضو آرایه اجرا میشود در حالی که detail روی کل یک آرایه فعال اعمال میگردد.
- -X, --examine-bitmap
- گزارش اطلاعات مربوط به یک بیتمپ. آرگومان باید یک دستگاه عضو آرایه باشد (نه نام خود دستگاه آرایه مانند /dev/md0).
- --examine-badblocks
- فهرست کردن بلوکهای خراب ثبتشده برای دستگاه (در صورتی که لیست بلوکهای خراب پیکربندی شده باشد؛ متادیتای 1.x و IMSM).
- --dump=directory
- --restore=directory
- ذخیره متادیتا از دستگاههای فهرستشده در یک دایرکتوری، یا بازیابی متادیتا از فایلهای دایرکتوری به دستگاهها.
- -R, --run
- راهاندازی یک آرایه ناقص سرهمبندیشده. اگر --assemble دستگاه کافی برای راهاندازی کامل پیدا نکند، میتوان با --run آن را در حالت تخریبشده (Degraded) بالا آورد.
- -S, --stop
- غیرفعال کردن آرایه و آزادسازی تمام منابع اختصاصیافته به آن.
- -o, --readonly
- علامتگذاری آرایه به عنوان فقطخواندنی.
- -w, --readwrite
- تغییر وضعیت یک آرایه فقطخواندنی به حالت خواندن/نوشتن.
- --zero-superblock
- اگر دستگاه حاوی یک ابربلوک معتبر md باشد، آن بلوک با صفر بازنویسی و پاک میشود. همراه با --force حتی در صورت نامعتبر به نظر رسیدن ابربلوک نیز رونویسی انجام میشود. توجه: هنگام فراخوانی این گزینه روی آرایههای خوشهای دقت کنید که آرایه در گره دیگری استفاده نشده باشد.
- --kill-subarray=
- اگر دستگاه یک کانتینر باشد، زیرآرایه (subarray) غیرفعال مشخصشده درون کانتینر را حذف میکند.
- --update-subarray=
- بهروزرسانی فیلد مشخصشده در ابربلوک یک زیرآرایه در کانتینر.
- -t, --test
- هنگام استفاده با --detail, کد خروج mdadm را برای انعکاس وضعیت آرایه تنظیم میکند (۰ سالم، ۱ دارای دیسک خراب، ۲ غیرقابل استفاده، ۴ خطای عمومی).
- -W, --wait
- برای هر دستگاه md دادهشده، منتظر پایان یافتن هرگونه فعالیت بازهمگامسازی، بازیابی یا تغییر ساختار میماند.
- --wait-clean
- ترتیبی میدهد که آرایه در سریعترین زمان ممکن تمیز (Clean) علامتگذاری شود (به ویژه برای متادیتای خارجی).
- --action=
- تنظیم عمل همگامسازی ("sync_action") برای دستگاههای md به یکی از مقادیر idle, frozen, check یا repair. گزینه check صحت توازن را بررسی و عدم تطابقها را در sysfs گزارش میدهد، در حالی که repair علاوه بر بررسی، عدم تطابقها را با بازنویسی اطلاعات توازن اصلاح میکند.
- --udev-rules=
- ایجاد قوانین udev برای مدیریت دستگاههای خام اتصال گرم بر اساس خطمشیهای (POLICY) موجود در mdadm.conf.
برای حالت سرهمبندی افزایشی (For Incremental Assembly mode:)
- --rebuild-map, -r
- بازسازی فایل نگاشت (/run/mdadm/map) که mdadm برای ردیابی آرایههای در حال سرهمبندی استفاده میکند.
- --run, -R
- راهاندازی آرایه سرهمبندیشده به محض حاضر بودن حداقل تعداد دستگاههای لازم، بدون معطلی برای رسیدن همه درایوها.
- --scan, -s
- پویش فایل نقشه برای یافتن آرایههایی که به صورت افزایشی سرهمبندی شدهاند و تلاش برای راهاندازی مواردی که هنوز شروع نشدهاند.
- --fail, -f
- به سیستم hot-plug اجازه میدهد دستگاههایی که کاملاً از هسته ناپدید شدهاند را ابتدا خراب اعلام کرده و سپس از آرایه جدا سازد.
- --path=
- تنها با fail-- استفاده میشود. مسیر فیزیکی ثبت میشود تا در صورت اتصال درایو جدید در همان درگاه، جایگزین دستگاه قبلی شود.
برای حالت نظارت (For Monitor mode:)
- -m, --mail
- مشخص کردن آدرس ایمیل برای ارسال پیامهای هشدار. قابل تنظیم با MAILADDR در mdadm.conf.
- -p, --program, --alert
- تعیین برنامهای که در زمان وقوع هر رویداد اجرا شود. قابل تنظیم با PROGRAM در mdadm.conf.
- -y, --syslog
- ارسال تمامی رویدادها به سرویس 'syslog' با تسهیلات 'daemon'.
- -d, --delay
- تعیین تاخیر میان دورههای بررسی بر حسب ثانیه (پیشفرض ۶۰ ثانیه).
- -r, --increment
- تعیین درصد گام گزارشدهی پیشرفت بازسازی (ایجاد رویدادهای RebuildNN).
- -f, --daemonise
- اجرای mdadm در پسزمینه به عنوان یک دیمن (جداسازی از ترمینال و چاپ PID در خروجی استاندارد).
- -i, --pid-file
- نوشتن شناسه فرایند (PID) در فایل مشخصشده هنگام اجرا در حالت دیمن.
- -1, --oneshot
- بررسی آرایهها تنها برای یکبار (مناسب برای اجرا در اسکریپتهای کرون - cron).
- -t, --test
- تولید رویداد آزمایشی TestMessage در زمان راهاندازی برای آزمایش دریافت صحیح هشدارها.
- --no-sharing
- غیرفعال کردن انتقال خودکار دیسکهای یدکی میان آرایهها در گروههای یدکی مشترک.
حالت سرهمبندی (ASSEMBLE MODE)
نحوه استفاده: mdadm --assemble md-device options-and-component-devices...
نحوه استفاده: mdadm --assemble --scan md-devices-and-options...
نحوه استفاده: mdadm --assemble --scan options...
این حالت یک یا چند آرایه RAID را از قطعات و دیسکهای از پیش موجود سرهمبندی میکند. برای هر آرایه، mdadm باید دستگاه md، هویت آرایه و تعداد دستگاههای عضو را بداند. این اطلاعات را میتوان از روشهای متعددی به دست آورد.
در نخستین الگوی استفاده (بدون --scan) نخستین دستگاه دادهشده همان دستگاه md است. در الگوی دوم، تمامی دستگاههای فهرستشده به عنوان دستگاههای md تلقی شده و تلاش برای سرهمبندی آنها صورت میگیرد. در الگوی سوم (که هیچ دستگاهی ذکر نشده است)، تمامی دستگاههای md فهرستشده در فایل پیکربندی سرهمبندی خواهند شد. اگر هیچ آرایهای در فایل پیکربندی توصیف نشده باشد، هر آرایهای که روی دستگاههای استفادهنشده یافت شود سرهمبندی میگردد.
اگر دقیقاً یک دستگاه ذکر شود اما --scan داده نشود، mdadm طوری عمل میکند که گویی scan-- مشخص شده و اطلاعات هویتی را از فایل پیکربندی استخراج میکند.
هویت را میتوان با گزینههای --uuid, --name یا --super-minor تعیین کرد، یا از رکورد md-device در فایل پیکربندی یا از ابربلوک نخستین دستگاه عضو ذکرشده در خط فرمان دریافت نمود.
تنها دستگاههایی که دارای ابربلوک md با هویت منطبق باشند برای آرایه در نظر گرفته میشوند.
فایل پیکربندی تنها در صورتی خوانده میشود که صریحاً با --config تعیین شده باشد یا با استفاده از --scan درخواست شده باشد.
به طور عادی آرایه پس از سرهمبندی راهاندازی میشود. با این حال، اگر scan-- داده نشده باشد و تمام درایوهای مورد انتظار حاضر نباشند، برای جلوگیری از اشتباهات کاربری آرایه راهاندازی نمیشود؛ مگر اینکه از گزینه --run برای اجبار به اجرا استفاده کنید.
اگر udev فعال باشد، mdadm گرههای دستگاه را مستقیماً در /dev نمیسازد بلکه این کار را به udev واگذار میکند و اطلاعات را در /run/mdadm/map ثبت مینماید تا udev نام صحیح را انتخاب کند.
سرهمبندی خودکار (Auto-Assembly)
هنگامی که --assemble همراه با --scan استفاده شود و هیچ دستگاهی ذکر نگردد، mdadm ابتدا تلاش میکند تمامی آرایههای موجود در فایل پیکربندی را سرهمبندی کند.
اگر هیچ آرایهای در فایل پیکربندی نباشد، دستگاههای در دسترس را برای یافتن آرایهها جستجو میکند. آرایههای متعلق به homehost سیستم به طور عادی سرهمبندی و فعال میشوند. آرایههایی که متعلق به این میزبان نیستند، با نامهایی که با موارد محلی تداخل نداشته باشند ایجاد شده و در حالت "read-auto" راهاندازی میشوند تا زمانی که درخواستی برای نوشتن ارسال شود چیزی روی آنها نوشته نشود (تاخیر در همگامسازی خودکار).
برای آرایههای نگارش 0.90 شماره minor به عنوان نام در /dev/md/ استفاده میشود (مانند /dev/md/3) و برای نگارش ۱ نام ذخیرهشده در ابربلوک مبنای نامگذاری خواهد بود.
این رفتار را میتوان با خط AUTO در فایل mdadm.conf سفارشیسازی کرد.
حالت ساخت سریع (BUILD MODE)
نحوه استفاده: mdadm --build md-device --chunk=X --level=Y --raid-devices=Z devices
این کاربرد مشابه --create است، با این تفاوت که آرایهای بدون ابربلوک میسازد. در این نوع آرایهها تفاوتی میان ایجاد اولیه و سرهمبندی بعدی وجود ندارد، جز اینکه امیدواریم در حالت دوم دادههای مفیدی وجود داشته باشد.
سطح میتواند raid0، linear، raid1، raid10، multipath یا faulty باشد. تمامی دستگاهها باید فهرست شوند و آرایه پس از تکمیل بلافاصله فعال میشود. در سطوح raid1 یا raid10 اغلب استفاده از --assume-clean مناسب خواهد بود.
حالت ایجاد (CREATE MODE)
نحوه استفاده: mdadm --create md-device --chunk=X --level=Y --raid-devices=Z devices
این دستور یک آرایه md جدید را مقداردهی اولیه کرده، دستگاههایی را به آن پیوند میدهد و آرایه را فعال میسازد.
دستگاه md-device میتواند یک نام استاندارد یا یک نام دلخواه باشد (بخش نامگذاری دستگاهها را ببینید). این دستگاه معمولاً هنگام اجرای دستور هنوز وجود ندارد و پس از فعال شدن آرایه توسط udev ایجاد میشود.
حداکثر طول نام دستگاه به ۳۲ نویسه محدود است (برخی متادیتاها مانند IMSM تنها ۱۶ نویسه را مجاز میدانند).
با اضافه شدن هر دستگاه، بررسی میشود که آیا حاوی ابربلوکهای RAID یا فایلسیستم هست یا خیر، و همچنین بررسی میشود که اختلاف اندازه دستگاهها از ۱٪ تجاوز نکند. در صورت مشاهده هرگونه مغایرت، اجرای خودکار متوقف میشود مگر اینکه از --run استفاده شده باشد.
برای ایجاد یک آرایه تحلیلرفته (Degraded) که برخی دیسکهای آن مفقود هستند، کافی است کلمه "missing" را به جای نام دستگاه بنویسید. برای RAID4 یا RAID5 حداکثر یک اسلات و برای RAID6 حداکثر دو اسلات میتوانند missing باشند. در RAID1 تنها وجود یک دستگاه واقعی کافی است و بقیه میتوانند missing باشند.
هنگام ساخت یک آرایه RAID5، mdadm به طور خودکار یک آرایه تحلیلرفته با یک درایو یدکی اضافی ایجاد میکند، زیرا بازسازی درایو یدکی درون یک آرایه تحلیلرفته سریعتر از بازهمگامسازی توازن روی یک آرایه غیرتحلیلرفته اما نامنظم است. این رفتار با --force قابل لغو است.
هنگام ایجاد آرایه مبتنی بر پارتیشن با متادیتای نگارش 1.x، نوع پارتیشن باید روی 0xDA تنظیم شود.
فضایی برای بیتمپ رزرو خواهد شد تا بعداً بتوان با --grow --bitmap=internal آن را اضافه کرد. در صورت پشتیبانی متادیتا، فضایی نیز برای لیست بلوکهای خراب (BBL) تخصیص مییابد.
حالت مدیریت (MANAGE MODE)
نحوه استفاده: mdadm device options... devices...
این حالت
اجازه
میدهد
دستگاههای
مجزا در یک
آرایه به
عنوان خراب
علامتگذاری
شوند، حذف
شوند یا
اضافه
گردند.
امکان
انجام
چندین
عملیات در
یک فرمان
واحد وجود
دارد:
mdadm /dev/md0 -f /dev/hda1 -r /dev/hda1 -a /dev/hda1
این دستور
ابتدا /dev/hda1 را
در /dev/md0 معیوب
اعلام
کرده، سپس
آن را از
آرایه حذف
میکند و در
نهایت
مجدداً به
عنوان دیسک
یدکی به
آرایه
میافزاید.
هنگامی که دستگاهی به آرایه فعال افزوده میشود، mdadm بررسی میکند که آیا متادیتای آن نشاندهنده عضویت اخیر در آرایه هست یا خیر؛ در این صورت تلاش میکند آن را به صورت "re-add" اضافه کند تا در صورت وجود بیتمپ، تنها بخشهای تغییریافته بازسازی شوند.
حالت متفرقه (MISC MODE)
نحوه استفاده: mdadm options ... devices ...
حالت متفرقه شامل مجموعهای از عملیاتهای متمایز است که روی دستگاهها اجرا میشوند:
- --query
- دستگاه بررسی میشود تا مشخص شود آیا یک آرایه فعال md است یا بخشی از یک آرایه md. اطلاعات کشفشده نمایش داده میشوند.
- --detail
- دستگاه باید یک دستگاه md فعال باشد. mdadm توصیف دقیقی از وضعیت آرایه نمایش میدهد. گزینههای --brief یا --scan باعث میشوند خروجی خلاصهتر شده و در قالبی مناسب برای قرارگیری در mdadm.conf تولید شود. وضعیت خروج در صورت عدم ارائه --test معمولاً ۰ است؛ در صورت استفاده از گزینه --test, وضعیت خروج به شرح زیر خواهد بود:
- 0
- آرایه کاملاً سالم است و به درستی کار میکند.
- 1
- آرایه حداقل دارای یک دستگاه معیوب است.
- 2
- آرایه دارای چندین دستگاه معیوب است به طوری که غیرقابل استفاده شده است.
- 4
- در حین تلاش برای دریافت اطلاعات دستگاه خطایی رخ داده است.
- --detail-platform
- چاپ جزئیات قابلیتهای RAID پلتفرم (میانافزار / همبندی سختافزاری). اگر متادیتا با -e یا --metadata= تعیین شده باشد، وضعیت خروج به این صورت است:
- 0
- متادیتا با موفقیت اجزای پلتفرم خود را روی این سیستم شمارش کرد.
- 1
- متادیتا مستقل از پلتفرم است.
- 2
- متادیتا موفق به یافتن اجزای پلتفرم خود روی این سیستم نشد.
- --update-subarray=
- اگر دستگاه یک ظرف (Container) باشد و آرگومان این گزینه یک زیرآرایه را مشخص کند، فیلد تعیینشده ابربلوک را بهروزرسانی میکند. گزینههای پشتیبانیشده شامل name، ppl، no-ppl، bitmap و no-bitmap هستند.
- --examine
- دستگاه باید عضوی از یک آرایه md باشد. mdadm ابربلوک md را خوانده و محتوای آن را نمایش میدهد.
- --dump=directory
- اگر دستگاه حاوی متادیتای RAID باشد، فایلی با نام متناظر در دایرکتوری ایجاد شده و متادیتا در همان آفست فیزیکی به صورت یک فایل کمپشت (Sparse) ذخیره میگردد تا فضای ناچیزی اشغال شود.
- --restore=directory
- عکس عملیات --dump است و متادیتا را از فایل موجود در دایرکتوری به دستگاه بازمیگرداند.
- --stop
- غیرفعالسازی آرایههای md فعال و آزادسازی دستگاهها، به شرطی که در حال استفاده نباشند.
- --run
- فعالسازی کامل آرایه نیمهسرهمبندیشده در حالت تحلیلرفته.
- --readonly
- علامتگذاری آرایه فعال به صورت فقطخواندنی.
- --readwrite
- بازگرداندن آرایه فقطخواندنی به حالت خواندن/نوشتن عادی.
- --scan
- برای تمام عملیاتها به جز --examine, باعث اعمال عملیات روی تمام آرایههای موجود در /proc/mdstat میشود. برای --examine, باعث بررسی تمام دستگاههای فهرستشده در فایل پیکربندی میگردد.
- -b, --brief
- کاهش جزئیات خروجی (همراه با detail یا examine).
حالت نظارت (MONITOR MODE)
نحوه استفاده: mdadm --monitor options... devices...
گزینه نظارت میتواند در دو حالت کار کند:
- حالت سراسری سیستم: پیگیری تمام دستگاههای md بر اساس /proc/mdstat,
- پیگیری تنها دستگاههای MD مشخصشده در خط فرمان.
گزینه --scan نشاندهنده حالت سراسری است و باعث میشود ابزار تمامی دستگاههای موجود در /proc/mdstat را ردیابی کند. در صورت عدم تنظیم آن، باید حداقل یک دستگاه در خط فرمان مشخص شود.
نظارت باعث میشود mdadm به صورت دورهای آرایهها را بررسی کرده و هرگونه رویداد رخداده را گزارش دهد. همچنین در صورت تعریف گروههای یدکی مشترک (spare-group) یا دامنههای POLICY, میتواند دیسک یدکی را به طور خودکار از یک آرایه سالم به یک آرایه تحلیلرفته منتقل کند.
اگر رویدادها به یک برنامه ارسال شوند، برنامه به ازای هر رویداد اجرا شده و ۲ یا ۳ آرگومان دریافت میکند: نام رویداد، نام دستگاه md آسیبدیده، و نام دستگاه عضو مرتبط (در صورت وجود).
در سیستمهایی که نظارت mdadm از طریق systemd مدیریت میشود، سرویس mdmonitor.service به صورت پیشفرض فعال است. برای دریافت هشدارها کافی است مقدار MAILADDR را در mdadm.conf تنظیم کنید.
رویدادهای مختلف عبارتند از:
- DeviceDisappeared
- آرایهای که قبلاً پیکربندی شده بود دیگر وجود ندارد (اولویت: Critical).
- RebuildStarted
- آرایه بازسازی یا همگامسازی را آغاز کرده است (اولویت: Warning).
- RebuildNN
- پیشرفت بازسازی به درصد NN رسیده است (اولویت: Warning).
- RebuildFinished
- بازسازی آرایه به پایان رسیده یا متوقف شده است (اولویت: Warning).
- Fail
- یک دستگاه عضو فعال در آرایه معیوب شده است (اولویت: Critical).
- FailSpare
- یک دستگاه یدکی در حال بازسازی دچار خرابی شده است (اولویت: Critical).
- SpareActive
- بازسازی دستگاه یدکی با موفقیت پایان یافته و فعال شده است (اولویت: Info).
- NewArray
- یک آرایه جدید در /proc/mdstat شناسایی شده است (اولویت: Info).
- DegradedArray
- آرایهای تازه شناساییشده در وضعیت تحلیلرفته قرار دارد (اولویت: Critical).
- MoveSpare
- یک درایو یدکی از یک آرایه به آرایه دیگر برای جایگزینی درایو خراب منتقل شد (اولویت: Info).
- SparesMissing
- تعداد درایوهای یدکی کمتر از میزان تعیینشده در فایل پیکربندی است (اولویت: Warning).
- TestMessage
- پیام آزمایشی تولیدشده با فلگ --test (اولویت: Info).
تنها رویدادهای Fail, FailSpare, DegradedArray, SparesMissing و TestMessage باعث ارسال ایمیل میشوند، اما تمامی رویدادها باعث اجرای برنامه هشدار خواهند شد.
حالت گسترش (GROW MODE)
حالت گسترش (GROW) برای تغییر اندازه، ساختار یا شکل یک آرایه فعال به کار میرود.
تغییرات زیر پشتیبانی میشوند:
- تغییر ویژگی "size" برای آرایههای RAID1، RAID4، RAID5 و RAID6.
- افزایش یا کاهش ویژگی "raid-devices" در آرایههای RAID0، RAID1، RAID4، RAID5 و RAID6.
- تغییر اندازه تکه (Chunk size) و چیدمان (Layout) در RAID0، RAID4، RAID5، RAID6 و RAID10.
- تبدیل میان RAID1 و RAID5، میان RAID5 و RAID6، میان RAID0، RAID4 و RAID5، و میان RAID0 و RAID10 (در حالت near-2).
- افزودن یا حذف بیتمپ قصد نوشتن (Write-intent bitmap).
- تغییر خطمشی سازگاری آرایه.
استفاده از حالت GROW روی کانتینرها در حال حاضر تنها برای قالب کانتینر IMSM اینتل پشتیبانی میشود.
تغییرات اندازه (SIZE CHANGES)
معمولاً هنگام ایجاد یک آرایه، "اندازه" از کوچکترین درایو گرفته میشود. اگر درایوهای کوچک با درایوهای بزرگتر جایگزین شوند، میتوان با حالت GROW فضای اضافی را فعال کرد. در این حالت یک فرایند "همگامسازی مجدد" برای بخشهای جدید آغاز خواهد شد.
توجه داشته باشید که با تغییر اندازه آرایه، فایلسیستم به طور خودکار رشد یا کوچک نمیشود؛ فایلسیستم باید پس از بزرگ شدن آرایه بزرگ شده، یا قبل از کوچک کردن آرایه منقبض شود.
همچنین اندازه آرایه در حالی که بیتمپ فعال دارد قابل تغییر نیست و ابتدا باید بیتمپ حذف شود.
تغییرات تعداد دیسکهای رِید (RAID-DEVICES CHANGES)
یک آرایه RAID1 میتواند با هر تعداد دیسک از ۱ به بالا کار کند. هنگام کاهش دیسکها در RAID1، اسلاتهای مربوطه باید ابتدا با fail و remove خالی شوند. هنگام افزایش دیسکها، دیسکهای یدکی موجود بلافاصله فعال خواهند شد.
تغییر تعداد دیسکها در RAID5 یا RAID6 نیازمند خواندن و نوشتن مجدد تک تک بلوکها در موقعیتهای جدید است. هسته لینوکس میتواند این کار را به شکلی امن و با قابلیت از سرگیری در صورت قطع شدن انجام دهد.
هسته لینوکس میتواند یک RAID0 را به RAID4 یا RAID5 تبدیل کند. mdadm از این قابلیت برای افزودن دیسک به یک RAID0 استفاده میکند (تبدیل به RAID4، افزودن دیسک، تغییر ساختار و بازگرداندن به RAID0).
هنگام کاهش تعداد دستگاهها، اندازه آرایه نیز کاهش مییابد که غیرقابل بازگشت است. برای پیشگیری از حوادث، mdadm الزام میکند که ابتدا اندازه آرایه با mdadm --grow --array-size کاهش یابد و سپس کاهش دیسکها انجام شود.
در طول تغییر مکان نوارهای اولیه در RAID5 و RAID6 ("بخش بحرانی")، برای جلوگیری از خرابی اطلاعات در زمان قطع ناگهانی برق، mdadm نوشتن را موقتاً غیرفعال کرده و یک نسخه پشتیبان از دادههای آن بخش تهیه میکند. برای این منظور استفاده از گزینه --backup-file الزامی است و فایل باید روی دستگاهی کاملاً مجزا ذخیره شود.
تغییرات سطح رِید (LEVEL CHANGES)
تغییر سطح RAID بلافاصله انجام میشود. با این حال تبدیل بین RAID5 و RAID6 نیازمند چیدمان موقت دادهها است که ممکن است زمانبر باشد و استفاده از --backup-file در طول فرایند الزامی است.
تغییرات اندازه تکهها و چیدمان (CHUNK-SIZE AND LAYOUT CHANGES)
تغییر اندازه تکه یا چیدمان مستلزم بازنویسی تمامی بلوکها در محل است و نیازمند ارائه --backup-file میباشد. فایل پشتیبان باید در زمان سرهمبندی پس از قطع احتمالی در دسترس باشد و نباید روی خود آرایه ذخیره شود.
تغییرات بیتمپ (BITMAP CHANGES)
بیتمپ قصد نوشتن را میتوان به یک آرایه فعال اضافه یا از آن حذف کرد.
تغییرات خطمشی سازگاری (CONSISTENCY POLICY CHANGES)
خطمشی سازگاری یک آرایه فعال را میتوان با استفاده از گزینه --consistency-policy تغییر داد (به عنوان نمونه فعال یا غیرفعال کردن PPL در RAID5).
حالت افزایشی (INCREMENTAL MODE)
نحوه استفاده: mdadm --incremental [--run] [--quiet] component-device [optional-aliases-for-device]
نحوه استفاده: mdadm --incremental --fail component-device
نحوه استفاده: mdadm --incremental --rebuild-map
نحوه استفاده: mdadm --incremental --run --scan
این حالت برای استفاده در ترکیب با سیستم شناسایی سختافزار (مانند udev) طراحی شده است. با کشف دستگاهها در سیستم، آنها به mdadm --incremental داده میشوند تا به صورت مشروط به آرایه متناظر اضافه گردند. برعکس، با فلگ --fail میتوان دستگاه جداشده را از آرایه حذف کرد.
اگر دستگاه دادهشده یک CONTAINER باشد، تمام آرایههای توصیفشده در متادیتای آن راهاندازی خواهند شد.
آزمونهایی که mdadm انجام میدهد شامل بررسی مجاز بودن دستگاه در mdadm.conf, بررسی معتبر بودن ابربلوک و بررسی تعلق آن به homehost سیستم است.
فهرست آرایههای ناقص سرهمبندیشده در /run/mdadm/map نگهداری میشود. آرایه به محض حاضر بودن تمام دیسکها (یا با --run به محض امکان دسترسی به دادهها) راهاندازی میشود. فرمان mdadm -IRs پس از پایان فرایند کشف دستگاهها، تمام آرایههای در حال سرهمبندی را در حالت "read-auto" راهاندازی میکند.
متغیرهای محیطی (ENVIRONMENT)
این بخش متغیرهای محیطی تاثیرگذار بر نحوه عملکرد mdadm را شرح میدهد.
- MDADM_NO_MDMON
- تنظیم این متغیر به مقدار ۱ از اجرای خودکار mdmon توسط mdadm جلوگیری میکند. این متغیر عمدتاً برای اشکالزدایی mdadm/mdmon کاربرد دارد.
- MDADM_NO_UDEV
- در حالت عادی، mdadm گرههای دستگاه را در /dev ایجاد نمیکند بلکه این وظیفه را به udev واگذار مینماید. اگر به نظر برسد udev پیکربندی نشده است، یا اگر این متغیر روی '1' تنظیم شود، mdadm دستگاههای مورد نیاز را خودش خواهد ساخت.
- MDADM_NO_SYSTEMCTL
- اگر mdadm تشخیص دهد که systemd در حال اجراست، درخواست شروع وظایف پسزمینه (به ویژه mdmon) را به جای انشعاب مستقیم به systemd ارسال میکند. تنظیم MDADM_NO_SYSTEMCTL=1 این رفتار را لغو میکند.
- IMSM_NO_PLATFORM
- مزیت اصلی متادیتای IMSM سازگاری با ROM بوت پلتفرمهای اینتل است. بنابراین mdadm تنها در صورت حضور سختافزار اینتل با پشتیبانی از IMSM اجازه ایجاد آن را میدهد. با تنظیم IMSM_NO_PLATFORM=1 در محیط میتوان این بررسیها را برای اهداف آزمایشی یا بازیابی نادیده گرفت.
- MDADM_GROW_ALLOW_OLD
- اگر آرایهای در حین تغییر ساختار با فایل پشتیبان متوقف شود و پس از سرهمبندی مجدد mdadm اخطار دهد که فایل پشتیبان بسیار قدیمی است، با تنظیم این متغیر روی ۱ میتوان بررسی تاریخ فایل را نادیده گرفت.
- MDADM_CONF_AUTO
- هر رشتهای در این متغیر به ابتدای خط AUTO در فایل پیکربندی اضافه میشود تا بتوان انواع خاصی از متادیتا را در زمان بوت غیرفعال کرد (برای نمونه برای سپردن مدیریت دیسکها به dmraid).
مثالها (EXAMPLES)
mdadm --query /dev/name-of-device
بررسی
میکند که
آیا دستگاه
دادهشده
یک آرایه RAID
یا بخشی از
یک آرایه
است و
اطلاعات
مختصری
ارائه
میدهد.
mdadm --assemble --scan
تمامی
آرایههای
فهرستشده
در فایل
پیکربندی
استاندارد
را
سرهمبندی
و
راهاندازی
میکند
(معمولاً در
اسکریپتهای
راهاندازی
سیستم قرار
میگیرد).
mdadm --stop --scan
تمامی
آرایههایی
که در حال
حاضر مورد
استفاده
نیستند را
خاموش و
متوقف
میسازد
(معمولاً در
اسکریپت
خاموشی
سیستم قرار
میگیرد).
mdadm --follow --scan --delay=120
اگر آدرس
ایمیل یا
برنامهای
در فایل
پیکربندی
مشخص شده
باشد،
وضعیت
تمامی
آرایهها
را هر ۲
دقیقه
یکبار
بررسی و
پایش
میکند.
mdadm --create /dev/md0 --level=1 --raid-devices=2
/dev/hd[ac]1
ایجاد
آرایه RAID1 با
نام /dev/md0 متشکل
از دو
پارتیشن /dev/hda1 و
/dev/hdc1.
echo 'DEVICE /dev/hd*[0-9] /dev/sd*[0-9]' > mdadm.conf
mdadm --detail --scan >> mdadm.conf
ایجاد یک
پیشنویس
فایل
پیکربندی
حاوی توصیف
آرایههای
فعال
کنونی.
echo 'DEVICE /dev/hd[a-z] /dev/sd*[a-z]' > mdadm.conf
mdadm --examine --scan --config=mdadm.conf >> mdadm.conf
یافتن
آرایههایی
که میتوان
از کل
دیسکهای IDE
و SCSI موجود
سرهمبندی
کرد و ذخیره
اطلاعات
آنها در
قالب فایل
پیکربندی.
mdadm --examine --brief --scan --config=partitions
mdadm -Ebsc partitions
پویش
دیسکها با
خواندن /proc/partitions
برای یافتن
ابربلوکهای
RAID و چاپ
فهرست
خلاصه
آنها.
mdadm -Ac partitions -m 0 /dev/md0
پویش
پارتیشنها
و
سرهمبندی
/dev/md0 از
دستگاههایی
با ابربلوک
RAID و شماره
فرعی ۰.
mdadm --monitor --scan --daemonise > /run/mdadm/mon.pid
اجرای mdadm در
پسزمینه
در حالت
پایش و
ذخیره
شناسه
فرایند در
/run/mdadm/mon.pid.
mdadm -Iq /dev/somedevice
تلاش برای
گنجاندن
دستگاه
تازه
کشفشده در
آرایه
مناسب.
mdadm --incremental --rebuild-map --run --scan
بازسازی
نقشه
آرایهها و
راهاندازی
مواردی که
قابل اجرا
هستند.
mdadm /dev/md4 --fail detached --remove detached
علامتگذاری
هر دستگاه
جداشده در /dev/md4
به عنوان
خراب و حذف
آن از
آرایه.
mdadm --grow /dev/md4 --level=6
--backup-file=/root/backup-md4
تبدیل
آرایه RAID5 به
نام /dev/md4 به
سطح RAID6 با
استفاده از
فایل
پشتیبان.
mdadm --create /dev/md/ddf --metadata=ddf --raid-disks 6
/dev/sd[a-f]
ایجاد یک
ظرف DDF روی ۶
دستگاه.
mdadm --create /dev/md/home -n3 -l5 -z 30000000
/dev/md/ddf
ایجاد یک
آرایه RAID5 روی
۳ دستگاه از
مجموعه ظرف
DDF با اندازه
۳۰
گیگابایت
از هر
دستگاه.
mdadm -A /dev/md/ddf1 /dev/sd[a-f]
سرهمبندی
یک آرایه DDF
از پیش
موجود.
mdadm -I /dev/md/ddf1
سرهمبندی
تمامی
آرایههای
موجود در
آرایه ddf و
تخصیص نام
مناسب.
mdadm --help
ارائه
راهنمای
عمومی خط
فرمان.
فایلها (FILES)
/proc/mdstat
در صورت استفاده از فایلسیستم /proc, فایل /proc/mdstat فهرست تمامی دستگاههای md فعال را به همراه اطلاعات آنها نمایش میدهد.
/etc/mdadm.conf (یا /etc/mdadm/mdadm.conf)
فایل پیکربندی پیشفرض. برای جزئیات به mdadm.conf(5) مراجعه کنید.
/etc/mdadm.conf.d (یا /etc/mdadm/mdadm.conf.d)
دایرکتوری پیشفرض حاوی فایلهای پیکربندی.
/run/mdadm/map
هنگام استفاده از حالت --incremental, این فایل فهرست آرایههایی که در حال حاضر در حال ایجاد هستند را نگهداری میکند.
نامهای قابل حمل پازیکس (POSIX PORTABLE NAME)
یک نام معتبر تنها میتواند شامل نویسههای "A-Za-z0-9.-_" باشد. نام نباید با "-" شروع شود و نمیتواند از ۲۵۵ نویسه تجاوز کند.
نامگذاری دستگاهها (DEVICE NAMES)
ابزار mdadm دو نوع نامگذاری برای دستگاههای آرایه را به رسمیت میشناسد:
نوع نخست، نام با قالب 'استاندارد' است که با نامهای استفادهشده توسط هسته و مندرج در /proc/mdstat مطابقت دارد (مانند /dev/md0).
نوع دوم نامهای دلخواه هستند که باید در /dev/md/ قرار گیرند (مانند /dev/md/home). هنگام معرفی دستگاه میتوان مسیر کامل یا فقط پسوند آن (مانند home) را تعیین کرد. نام خام در هر حالت باید با POSIX PORTABLE NAME سازگار بوده و بیش از ۳۲ نویسه نباشد.
قالبهای متداول نامگذاری به صورت زیر است:
- /dev/mdNN (که در آن NN یک عدد است)
یا به فرمت غیرعددی:
- /dev/md_XXX (که در آن XXX یک رشته دلخواه است و از نگارش 3.3 پشتیبانی میشود).
درک خروجی (UNDERSTANDING OUTPUT)
- نقطه بررسی (checkpoint)
- مقدار نقطه بررسی زمانی گزارش میشود که آرایه در حال انجام عملیاتی نظیر همگامسازی مجدد، بازیابی یا تغییر ساختار باشد. نقاط بررسی اجازه میدهند در صورت بروز وقفه، عملیات از همان نقطه از سر گرفته شود.
نکته (NOTE)
ابزار mdadm پیش از این با نام mdctl شناخته میشد.
همچنین ببینید (SEE ALSO)
برای اطلاعات بیشتر درباره نحوه استفاده از mdadm، درایور MD و سطوح مختلف RAID، ببینید:
آخرین نسخه mdadm همیشه از نشانی زیر در دسترس است:
صفحات راهنمای مرتبط:
| مه ۲۰۲۵ | mdadm |