LVREDUCE(8) دستورهای مدیریتی و نگهداری LVREDUCE(8)

lvreduce - کاهش و تقلیل اندازه یک حجم منطقی در LVM

lvreduce [گزینهها] حجم_منطقی

دستور lvreduce اندازه یک حجم منطقی (LV) را کاهش میدهد. بخشهای آزادشده به گروه حجم (VG) برگردانده میشوند. با استفاده از گزینه -r میتوان ابتدا اندازه سیستم فایل را به طور ایمن کاهش داد. بخش‌های آزادشده به گروه حجم برگردانده می‌شوند تا توسط سایر حجم‌های منطقی استفاده شوند. همچنین یک حجم منطقی اسنپ‌شات copy-on-write را در صورتی که فضای کمتری برای نگهداری بلوک‌های COW نیاز باشد می‌توان کاهش داد. جهت تغییر تعداد ایمیج‌های داده در یک حجم منطقی RAID یا آینه‌ای (mirrored)، از دستور lvconvert(8) استفاده کنید.

هنگام کاهش اندازه یک حجم منطقی بسیار محتاط باشید، زیرا داده‌های موجود در ناحیه کاهش‌یافته از دست خواهند رفت. اطمینان حاصل کنید که هر سیستم فایل موجود روی حجم منطقی پیش از اجرای lvreduce تغییر اندازه داده شده باشد تا اکستنت‌های حذف‌شده توسط سیستم فایل در حال استفاده نباشند.

اندازه‌ها در صورت لزوم گرد خواهند شد. برای نمونه، اندازه حجم منطقی باید تعداد دقیقی از اکستنت‌ها باشد، و اندازه یک قطعه خط‌کشی‌شده (striped segment) باید مضربی از تعداد خط‌کشی‌ها (stripes) باشد.

در بخش نحوه استفاده در زیر، گزینه --size Size می‌تواند با --extents Number جایگزین شود. توضیحات هر دو را در بخش گزینه‌ها ببینید.

lvreduce -L|--size [-]Size[m|UNIT] LV

[ -l|--extents [-]Number[PERCENT] ]
[ -A|--autobackup y|n ]
[ -f|--force ]
[ -n|--nofsck ]
[ -r|--resizefs ]
[ --noudevsync ]
[ --reportformat basic|json|json_std ]
[ --fs String ]
[ --fsmode String ]
[ COMMON_OPTIONS ]

گزینه‌های عمومی برای lvm:

[ -d|--debug ]
[ -h|--help ]
[ -q|--quiet ]
[ -t|--test ]
[ -v|--verbose ]
[ -y|--yes ]
[ --commandprofile String ]
[ --config String ]
[ --devices PV ]
[ --devicesfile String ]
[ --driverloaded y|n ]
[ --journal String ]
[ --lockopt String ]
[ --longhelp ]
[ --nohints ]
[ --nolocking ]
[ --profile String ]
[ --version ]

-A|--autobackup y|n
مشخص می‌کند که آیا متاداده پس از اعمال تغییر باید به طور خودکار پشتیبان‌گیری شود یا خیر. فعال‌سازی این گزینه اکیداً توصیه می‌شود! برای اطلاعات بیشتر به vgcfgbackup(8) مراجعه کنید.

--commandprofile String
پروفایل دستوری مورد استفاده برای پیکربندی دستور. برای اطلاعات بیشتر درباره پروفایل‌ها به lvm.conf(5) مراجعه کنید.

--config String
تنظیمات پیکربندی برای دستور. این تنظیمات بر مقادیر lvm.conf(5) اولویت دارند. آرگومان String از همان قالب lvm.conf(5) استفاده می‌کند یا می‌تواند از نحو بخش/فیلد (section/field) استفاده نماید. برای اطلاعات بیشتر پیرامون پیکربندی به lvm.conf(5) مراجعه کنید.

-d|--debug ...
تنظیم سطح اشکال‌زدایی (دیباگ). برای افزایش جزئیات پیام‌های ارسالی به فایل لاگ یا syslog (در صورت پیکربندی) بین ۱ تا ۶ بار تکرار کنید.

--devices PV
دستگاه‌های قابل مشاهده و در دسترس برای دستور را محدود می‌کند. دستگاه‌هایی که در لیست نباشند به صورت مفقود به نظر خواهند رسید. این گزینه می‌تواند تکرار شود، یا فهرستی از دستگاه‌ها را با کاما جدا شده بپذیرد. این گزینه بر فایل دستگاه‌ها اولویت دارد.

--devicesfile String
فایلی که فهرستی از دستگاه‌های مجاز برای استفاده توسط LVM را مشخص می‌کند. این فایل باید در مسیر /etc/lvm/devices/ موجود باشد و توسط دستور lvmdevices(8) مدیریت می‌شود. این گزینه بر تنظیمات devices/devicesfile و devices/use_devicesfile در lvm.conf(5) اولویت دارد.

--driverloaded y|n
در صورت تنظیم روی no، دستور تلاشی برای استفاده از device-mapper نخواهد کرد. این گزینه برای آزمایش و اشکال‌زدایی کاربرد دارد.

-l|--extents [-]Number[PERCENT]
اندازه جدید حجم منطقی را بر حسب اکستنت‌های منطقی مشخص می‌کند. گزینه‌های --size و --extents روش‌های جایگزین برای تعیین اندازه هستند. هنگامی که برای سطوح RAID به داده‌های افزونه (redundant) نیاز باشد، تعداد کل اکستنت‌های فیزیکی مورد استفاده بیشتر خواهد بود. یک نحو جایگزین اجازه می‌دهد تا اندازه به صورت غیرمستقیم به عنوان درصدی از اندازه یک VG، حجم منطقی (LV) یا مجموعه‌ای از دیسک‌های فیزیکی (PV) مربوطه تعیین شود. پسوند %VG بیانگر کل اندازه VG، پسوند %FREE نشان‌دهنده فضای آزاد باقیمانده در VG، و پسوند %PVS نمایانگر فضای آزاد در دیسک‌های فیزیکی مشخص‌شده است. برای یک اسنپ‌شات، اندازه می‌تواند به صورت درصدی از کل اندازه LV مبدا با پسوند %ORIGIN بیان شود (100%ORIGIN فضا را برای کل حجم مبدا فراهم می‌کند). هنگامی که اندازه به صورت درصد بیان شود، یک حد بالا برای تعداد اکستنت‌های منطقی در LV جدید تعریف می‌کند. تعداد دقیق اکستنت‌های منطقی در LV جدید تا زمان تکمیل دستور مشخص نمی‌شود. هنگامی که از پیشوند منفی - یا مثبت + استفاده شود، مقدار یک اندازه مطلق نیست، بلکه نسبی بوده و از اندازه فعلی کم یا به آن اضافه می‌شود.

-f|--force ...
نادیده گرفتن بررسی‌های گوناگون، تاییدها و محافظت‌ها. با احتیاط بسیار زیاد استفاده شود.

--fs String
کنترل تغییر اندازه سیستم فایل هنگام تغییر اندازه یک LV.
checksize: بررسی اندازه سیستم فایل و کاهش LV در صورتی که سیستم فایل از فضای کاهش‌یافته استفاده نکند (کاهش اندازه سیستم فایل لازم نیست). اگر فضای کاهش‌یافته توسط سیستم فایل استفاده شده باشد، اندازه سیستم فایل یا LV تغییر نمی‌کند و خطایی بازگردانده می‌شود (checksize فقط هنگام کاهش اعمال می‌شود و برای افزایش کاری انجام نمی‌دهد).
resize: تغییر اندازه سیستم فایل با فراخوانی دستور ویژه همان سیستم فایل. این ممکن است شامل سوار کردن (mount)، پیاده کردن (unmount) یا اجرای fsck نیز باشد. برای کنترل رفتار سوار کردن به --fsmode و برای غیرفعال کردن fsck به --nofsck مراجعه کنید.
resize_fsadm: استفاده از روش قدیمی فراخوانی fsadm برای مدیریت سیستم فایل (منسوخ شده). هشدار: این گزینه مانع از نابودی سیستم فایل‌هایی که پیاده شده‌اند (یا اگر تاییدها نادیده گرفته شوند، سوار هستند) توسط lvreduce نمی‌شود.
ignore: تغییر اندازه LV بدون بررسی یا مدیریت سیستم فایل. هشدار: استفاده از ignore هنگام کاهش اندازه LV ممکن است سیستم فایل را نابود کند.

--fsmode String
کنترل رفتار سوار کردن سیستم فایل برای تغییر اندازه سیستم فایل.
manage: سوار کردن یا پیاده کردن سیستم فایل بر حسب نیاز جهت تغییر اندازه آن، و تلاش برای بازگرداندن وضعیت اولیه سوار شدن در پایان.
nochange: عدم سوار کردن یا پیاده کردن سیستم فایل. اگر سوار کردن یا پیاده کردن برای تغییر اندازه سیستم فایل ضروری باشد، اندازه سیستم فایل یا LV تغییر نمی‌کند و دستور با شکست مواجه می‌شود.
offline: پیاده کردن سیستم فایل در صورت سوار بودن، و تغییر اندازه سیستم فایل در وضعیت پیاده‌شده. اگر برای تغییر اندازه سیستم فایل نیاز به سوار کردن باشد، اندازه سیستم فایل یا LV تغییر نکرده و دستور شکست می‌خورد.

-h|--help
نمایش متن راهنما.

--journal String
ثبت اطلاعات در ژورنال systemd. این اطلاعات علاوه بر اطلاعات فعال‌شده توسط تنظیم log/journal در lvm.conf است.
command: ثبت اطلاعات پیرامون دستور.
output: ثبت خروجی پیش‌فرض دستور.
debug: ثبت اشکال‌زدایی کامل دستور.

--lockopt String
برای ارسال گزینه‌ها در موارد خاص به lvmlockd استفاده می‌شود. برای اطلاعات بیشتر به lvmlockd(8) مراجعه کنید.

--longhelp
نمایش متن راهنمای بلند.

-n|--nofsck
عدم اجرای fsck هنگام تغییر اندازه سیستم فایل با --resizefs.

--nohints
عدم استفاده از فایل راهنما (hints) برای تعیین موقعیت دستگاه‌ها برای دیسک‌های فیزیکی (PV). هنگامی که از hints استفاده نشود، دستور ممکن است دستگاه‌های بیشتری را برای یافتن PVها بخواند. این دستور همچنان در صورت لزوم باطل‌سازی استاندارد فایل راهنما را انجام خواهد داد.

--nolocking
غیرفعال کردن قفل‌گذاری. با احتیاط استفاده شود؛ دستورات همزمان ممکن است نتایج نادرستی تولید کنند.

--noudevsync
غیرفعال کردن همگام‌سازی udev. فرآیند منتظر دریافت اعلان از سوی udev نخواهد ماند و صرف‌نظر از هرگونه پردازش احتمالی udev در پس‌زمینه ادامه خواهد یافت. تنها زمانی از این گزینه استفاده کنید که udev در حال اجرا نباشد یا دارای قوانینی باشد که دستگاه‌های ایجادشده توسط LVM را نادیده می‌گیرند.

--profile String
یک نام مستعار برای --commandprofile یا --metadataprofile، بسته به دستور.

-q|--quiet ...
سرکوب خروجی و پیام‌های گزارش‌گیری (log). بر --debug و --verbose اولویت دارد. تکرار آن برای یک‌بار همچنین هرگونه اعلان تایید با پاسخ 'no' را سرکوب می‌کند.

--reportformat basic|json|json_std
قالب فعلی خروجی گزارش‌ها را که به طور سراسری توسط تنظیم report/output_format در lvm.conf(5) تعریف شده است بازنویسی می‌کند. قالب basic همان قالب اصلی دارای ستون‌ها و سطرها است. اگر بیش از یک گزارش در هر دستور وجود داشته باشد، هر گزارش برای شناسایی با نام گزارش پیشوندگذاری می‌شود. قالب json خروجی گزارش را در قالب JSON تولید می‌کند. قالب json_std خروجی گزارش را در قالب JSON سازگارتر با استاندارد JSON تولید می‌نماید. برای اطلاعات بیشتر به lvmreport(7) مراجعه کنید.

-r|--resizefs
تغییر اندازه سیستم فایل با استفاده از دستور ویژه همان سیستم فایل. ممکن است شامل سوار کردن، پیاده کردن یا اجرای fsck باشد. برای کنترل رفتار سوار کردن به --fsmode و برای غیرفعال کردن fsck به --nofsck مراجعه کنید. برای گزینه‌های بیشتر به --fs رجوع کنید (--resizefs معادل --fs resize است).

-L|--size [-]Size[m|UNIT]
اندازه جدید حجم منطقی (LV) را مشخص می‌کند. گزینه‌های --size و --extents روش‌های جایگزین برای تعیین اندازه هستند. هنگامی که برای سطوح RAID به داده‌های افزونه (redundant) نیاز باشد، تعداد کل اکستنت‌های فیزیکی مورد استفاده بیشتر خواهد بود. هنگامی که از پیشوند منفی - یا مثبت + استفاده شود، مقدار یک اندازه مطلق نیست، بلکه نسبی بوده و از اندازه فعلی کم یا به آن اضافه می‌شود.

-t|--test
اجرا در حالت آزمایشی. دستورات متاداده را به‌روزرسانی نخواهند کرد. این قابلیت با غیرفعال کردن تمامی عملیات نوشتن متاداده پیاده‌سازی شده است، اما با این وجود وضعیت موفقیت را به تابع فراخوان بازمی‌گرداند. در صورتی که ابزاری وابسته به خواندن متاداده‌ای باشد که تصور می‌کند تغییر یافته اما تغییری نکرده است، این امر ممکن است منجر به پیام‌های خطای غیرعادی در عملیات چندمرحله‌ای شود.

-v|--verbose ...
تنظیم سطح پرگویی (verbose). برای افزایش جزئیات پیام‌های ارسالی به stdout و stderr بین ۱ تا ۴ بار تکرار کنید.

--version
نمایش اطلاعات نسخه.

-y|--yes
عدم درخواست تعاملی تایید و فرض همیشگی پاسخ بله. با احتیاط بسیار زیاد استفاده شود. (برای پاسخ منفی خودکار، به -qq مراجعه کنید.)

نام حجم منطقی (Logical Volume). برای نام‌های معتبر به lvm(8) مراجعه کنید. یک آرگومان موضعی LV عموماً شامل نام VG و نام LV است، مانند VG/LV.
برای کسب اطلاعات پیرامون محتوای رشته، به توضیحات گزینه مربوطه مراجعه کنید.
مقدار Size یک عدد ورودی است که یک واحد اختیاری را می‌پذیرد. واحدهای ورودی همواره به عنوان مقادیر مبنای ۲ (دودویی) محاسبه می‌شوند، صرف‌نظر از کوچک یا بزرگ بودن حروف؛ برای نمونه هم 'k' و هم 'K' برابر با ۱۰۲۴ در نظر گرفته می‌شوند. واحد ورودی پیش‌فرض با یک حرف و پس از آن |UNIT مشخص شده است. عبارت UNIT نمایانگر سایر واحدهای ورودی مجاز است: b|B بایت (Bytes)، s|S سکتورهای ۵۱۲ بایتی (Sectors)، k|K کیبی‌بایت (KiB)، m|M مبی‌بایت (MiB)، g|G گیبی‌بایت (GiB)، t|T تبی‌بایت (TiB)، p|P پبی‌بایت (PiB)، e|E اگزی‌بایت (EiB). (این موضوع نباید با گزینه کنترل خروجی --units اشتباه گرفته شود، که در آن حروف بزرگ مضاربی از ۱۰۰۰ هستند.)

جهت کسب اطلاعات پیرامون متغیرهای محیطی مورد استفاده توسط LVM، به lvm(8) مراجعه کنید. برای نمونه، مقدار متغیر LVM_VG_NAME عموماً می‌تواند به جای پارامتر الزامی VG جایگزین شود.

کاهش اندازه یک حجم منطقی به میزان ۳ اکستنت منطقی:
lvreduce -l -3 vg00/lvol1

lvm(8), lvm.conf(5), lvmconfig(8), lvmdevices(8),

pvchange(8), pvck(8), pvcreate(8), pvdisplay(8), pvmove(8), pvremove(8), pvresize(8), pvs(8), pvscan(8),

vgcfgbackup(8), vgcfgrestore(8), vgchange(8), vgck(8), vgcreate(8), vgconvert(8), vgdisplay(8), vgexport(8), vgextend(8), vgimport(8), vgimportclone(8), vgimportdevices(8), vgmerge(8), vgmknodes(8), vgreduce(8), vgremove(8), vgrename(8), vgs(8), vgscan(8), vgsplit(8),

lvcreate(8), lvchange(8), lvconvert(8), lvdisplay(8), lvextend(8), lvreduce(8), lvremove(8), lvrename(8), lvresize(8), lvs(8), lvscan(8),

lvm-fullreport(8), lvm-lvpoll(8), blkdeactivate(8), lvmdump(8),

dmeventd(8), lvmpolld(8), lvmlockd(8), lvmlockctl(8), cmirrord(8), lvmdbusd(8), fsadm(8),

lvmsystemid(7), lvmreport(7), lvmcache(7), lvmraid(7), lvmthin(7), lvmvdo(7), lvmautoactivation(7)

مه ۲۰۲۵ lvm2