LVM.CONF(5) فایلهای پیکربندی LVM.CONF(5)

lvm.conf - فایل پیکربندی اصلی سامانه مدیریت حجم منطقی (LVM2)

/etc/lvm/lvm.conf

فایل lvm.conf تنظیمات و پارامترهای پیشفرض ابزارهای LVM2 را تعیین میکند که در زمان راهاندازی ابزارها خوانده و اعمال میشوند.

پرونده‌ی lvm.conf در طول مرحله‌ی مقداردهی اولیه‌ی lvm(8) بارگیری می‌شود. این پرونده به نوبه‌ی خود می‌تواند باعث بارگیری پرونده‌های دیگری شود؛ تنظیماتی که دیرتر خوانده می‌شوند، تنظیمات پیشین را بازنویسی می‌کنند. برچسب‌های زمانی پرونده‌ها (timestamps) میان اجرای دستورات بررسی می‌شوند و در صورت تغییر هر یک، همه‌ی پرونده‌ها مجدداً بارگیری خواهند شد.

برای مشاهده‌ی توضیحات هر یک از تنظیمات lvm.conf(5)، دستور زیر را اجرا کنید:

lvmconfig --typeconfig default --withcomments --withspaces

تنظیمات مشخص‌شده در lvm.conf را می‌توان با استفاده از هر یک از این روش‌های پیکربندی گسترده بازنویسی کرد:

بازنویسی مستقیم پیکربندی در خط فرمان (direct config override on command line)
گزینه‌ی خط فرمان --config ConfigurationString یک رشته متنی با عنوان ConfigurationString را به عنوان نمایش مستقیم پیکربندی دریافت می‌کند تا تنظیمات موجود را بازنویسی کند. ConfigurationString دقیقاً از همان قالبی پیروی می‌کند که در هر پرونده‌ی پیکربندی LVM به کار می‌رود.
پیکربندی نمایه (profile config)

یک نمایه (پروفایل) مجموعه‌ای از تنظیمات پیکربندی سفارشی‌شده است که با هدف دستیابی به ویژگی‌های خاص در محیط‌ها یا کاربردهای گوناگون تعریف می‌شود. از نمایه برای بازنویسی پیکربندی موجود استفاده می‌شود. به طور معمول، نام نمایه باید بیانگر آن محیط یا کاربرد باشد.

دو گروه از نمایه‌ها شناخته می‌شوند: نمایه‌های دستوری (command profiles) و نمایه‌های متادیتا (metadata profiles).

از نمایه‌ی دستوری برای بازنویسی تنظیمات انتخابی پیکربندی در سطح سراسری دستورات LVM استفاده می‌شود؛ این نمایه در همان آغاز اجرای دستور LVM اعمال شده و در سراسر مدت زمان اجرای دستور به کار گرفته می‌شود. نمایه‌ی دستوری با استفاده از گزینه‌ی خط فرمان --commandprofile ProfileName که توسط تمام دستورات LVM2 شناخته می‌شود، اعمال می‌گردد.

از نمایه‌ی متادیتا برای بازنویسی تنظیمات انتخابی در سطح گروه حجم (Volume Group) یا حجم منطقی (Logical Volume) استفاده می‌شود؛ این نمایه به صورت مستقل برای هر گروه حجم یا حجم منطقی که پردازش می‌شود اعمال می‌گردد. از این رو، هر گروه حجم یا حجم منطقی می‌تواند نام نمایه‌ی استفاده‌شده را در متادیتای خود ذخیره کند تا دفعه‌ی بعدی که گروه حجم یا حجم منطقی پردازش می‌شود، نمایه به صورت خودکار اعمال گردد. اگر یک گروه حجم و هر یک از حجم‌های منطقی آن نمایه‌های متفاوتی داشته باشند، نمایه‌ی تعریف‌شده برای حجم منطقی اولویت دارد. نمایه‌ی متادیتا را می‌توان با دستورات lvchange و vgchange و گزینه‌های --metadataprofile ProfileName و --detachprofile متصل یا جدا کرد، یا هنگام ایجاد با دستورات vgcreate یا lvcreate با استفاده از گزینه‌ی --metadataprofile اعمال نمود. دستورات گزارش‌گیری vgs و lvs گزینه‌های خروجی -o vg_profile و -o lv_profile را برای نمایش نمایه‌ی متادیتایی که در حال حاضر به یک گروه حجم یا حجم منطقی متصل است فراهم می‌کنند.

مجموعه گزینه‌های مجاز برای نمایه‌های دستوری در مقایسه با گزینه‌های مجاز برای نمایه‌های متادیتا مانعة‌الجمع هستند. تنظیماتی که به هر یک از این دو دسته تعلق دارند نمی‌توانند با هم ترکیب شوند و ابزارهای LVM چنین نمایه‌هایی را رد خواهند کرد.

خود LVM چند نمایه‌ی پیکربندی از پیش‌تعریف‌شده ارائه می‌دهد. کاربران در صورت نیاز می‌توانند نمایه‌های بیشتری با مقادیر متفاوت اضافه کنند. برای این منظور، پرونده‌های الگوی command_profile_template.profile (برای نمایه‌های دستوری) و metadata_profile_template.profile (برای نمایه‌های متادیتا) وجود دارند که شامل تمام تنظیمات قابل‌شخصی‌سازی توسط نمایه‌ها هستند. به کاربران توصیه می‌شود این نمایه‌های الگو را کپی کرده و بر اساس نیاز ویرایش کنند. همچنین می‌توان از دستور lvmconfig --file <ProfileName.profile> --type profilable-command <section> یا lvmconfig --file <ProfileName.profile> --type profilable-metadata <section> برای تولید یک پیکربندی با تنظیمات نمایه‌پذیر در هر یک از این انواع برای یک بخش مشخص و ذخیره‌ی آن در یک ProfileName.profile جدید استفاده کرد (اگر بخش مشخص نشود، تمام تنظیمات نمایه‌پذیر گزارش می‌شوند).

نمایه‌ها به صورت پیش‌فرض در پوشه‌ی /etc/lvm/profile ذخیره می‌شوند. این مکان را می‌توان با استفاده از تنظیم config/profile_dir تغییر داد. هر پیکربندی نمایه در پرونده‌ای به نام ProfileName.profile در پوشه‌ی نمایه ذخیره می‌شود. هنگام ارجاع به نمایه، پسوند .profile ذکر نمی‌شود.

پیکربندی برچسب (tag config)

توضیحات تنظیم پیکربندی tags را در ادامه ببینید.

هنگامی که چندین روش پیکربندی به صورت همزمان به کار می‌روند و LVM به دنبال مقدار یک تنظیم خاص می‌گردد، این آبشار پیکربندی (config cascade) را از چپ به راست پیمایش می‌کند:

direct config override on command line →
command profile config →
metadata profile config →
tag config →
lvmlocal.conf →
lvm.conf

هیچ بخشی از این آبشار اجباری نیست. اگر در پایان آبشار هیچ مقداری برای یک تنظیم یافت نشود، مقدار پیش‌فرض آن تنظیم استفاده می‌شود. از lvmconfig برای بررسی تنظیمات در حال استفاده و مقادیر پیش‌فرض استفاده کنید.

این بخش ساختار دستوری پرونده‌ی پیکربندی را شرح می‌دهد.

فاصله‌های خالی (Whitespace) بی‌تاثیر هستند، مگر این‌که درون کوتیشن قرار گرفته باشند. این ویژگی امکان انتخاب گسترده‌ای از سبک‌های تورفتگی مناسب را فراهم می‌سازد. کامنت‌ها با # شروع شده و تا پایان خط ادامه می‌یابند و با آن‌ها همانند فاصله‌ی خالی رفتار می‌شود.

گرامر غیررسمی به شرح زیر است:

یک پرونده‌ی پیکربندی شامل مجموعه‌ای از مقادیر است.
یک مقدار می‌تواند یک بخش جدید یا یک انتساب باشد.
یک بخش، مقادیر مرتبط را در کنار هم گروه‌بندی می‌کند. اگر یک بخش یکسان چندین بار تکرار شود، محتویات تمام نمونه‌ها به ترتیب حضور با یکدیگر ادغام (الحاق) می‌شوند.
بخش با یک نام مشخص شده و با آکولدها محدود می‌شود.
برای نمونه:
backup {
	...
}

یک انتساب، یک نوع را با یک شناسه مرتبط می‌کند. اگر شناسه شامل اسلش باشد، آن اسلش‌ها به عنوان جداکننده‌ی مسیر تفسیر می‌شوند. گزاره‌ی section/key = value معادل section { key = value } است. اگر چندین نمونه از یک کلید یکسان مشاهده شود، فقط آخرین مقدار استفاده می‌شود (و یک هشدار صادر خواهد شد).
برای نمونه: level = 7
آرایه‌های ناهمگن پشتیبانی می‌شوند.
عناصر باید با کاما از یکدیگر جدا شوند.
آرایه‌ی خالی پذیرفته می‌شود.
یک آرایه با تنها یک عنصر در صورت نبودن کروشه‌ها نیز به درستی تفسیر خواهد شد.
integer = [0-9]*
float = [0-9]*'.'[0-9]*
string = '"' .* '"'
رشته‌های دارای فاصله باید درون دابل‌کوتیشن قرار گیرند؛ تک‌کلماتی که با یک حرف شروع می‌شوند می‌توانند بدون کوتیشن باشند.

دستور lvmconfig تنظیمات پیکربندی LVM را به روش‌های گوناگون نمایش می‌دهد. صفحه‌ی راهنمای lvmconfig(8) را ببینید.

دستور برای نمایش فهرستی از تمام تنظیمات پیکربندی ممکن به همراه مقادیر پیش‌فرض آن‌ها:
lvmconfig --type default

دستور برای نمایش فهرستی از تمام تنظیمات پیکربندی ممکن به همراه مقادیر پیش‌فرض و توضیحات کامل هر یک به صورت کامنت:
lvmconfig --type default --withcomments

دستور برای نمایش فهرستی از تمام تنظیمات پیکربندی ممکن به همراه مقادیر کنونی آن‌ها (تنظیمات پیکربندی‌شده‌ی غیرپیش‌فرض نشان داده می‌شوند):
lvmconfig --type current

دستور برای نمایش تمام تنظیمات پیکربندی که با مقداری متفاوت از مقدار پیش‌فرض تنظیم شده‌اند (تنظیمات غیرپیش‌فرض نشان داده می‌شوند):
lvmconfig --type diff

دستور برای نمایش یک تنظیم پیکربندی منفرد به همراه مقدار پیش‌فرض و توضیحات کامل، که در آن "Section" به بخش پیکربندی (مانند global) و "Setting" به نام تنظیم خاص (مانند umask) اشاره دارد:
lvmconfig --type default --withcomments Section/Setting

/etc/lvm/lvm.conf
/etc/lvm/lvmlocal.conf
/etc/lvm/archive
/etc/lvm/backup
/etc/lvm/cache/.cache
/etc/lvm/profile
/run/lock/lvm

lvm(8), lvmconfig(8)

مه ۲۰۲۵ lvm2