| PVCK(8) | دستورهای مدیریتی و نگهداری | PVCK(8) |
نام (NAME)
pvck - بررسی و صحتسنجی متادیتای حجمهای فیزیکی LVM
خلاصه دستور (SYNOPSIS)
pvck [گزینهها] دستگاه
توضیحات (DESCRIPTION)
دستور pvck ساختار برچسب دیسک LVM و نواحی متادیتای حجم فیزیکی (PV) را بررسی کرده و سلامت یا آسیبدیدگی هدرها را گزارش میدهد.
این ابزار همچنین امکان استخراج، بازبینی و بازسازی یا تعمیر ساختارهای آسیبدیده LVM بر روی حجمهای فیزیکی را فراهم میآورد.
گزینههای استخراج و بازبینی (Dump options)
headers
چاپ هدرها و
ساختارهای
دیسکی LVM
شامل: label_header، pv_header،
mda_header(ها) و متن
متادیتا. در
صورت وجود
مقادیر
نامعتبر،
هشدارهای
لازم نمایش
داده
میشوند. هر
دو بخش label_header و pv_header
در یک سکتور
۵۱۲ بایتی
قرار دارند
که معمولاً
سکتور دوم
دستگاه است.
یک mda_header در یک
سکتور ۵۱۲
بایتی در
آفست ۴۰۹۶
بایت واقع
شده است. بخش
mda_header دوم نیز
به صورت
اختیاری
میتواند
در نزدیکی
انتهای
دستگاه
قرار گیرد.
متن
متادیتا در
ناحیهای
(به طور
پیشفرض
حدود ۱
مبیبایت)
بلافاصله
پس از سکتور
mda_header قرار
دارد. متن
متادیتا
بررسی
میشود اما
محتوای آن
چاپ
نمیشود
(سایر
گزینهها
را ببینید).
metadata
چاپ متن
متادیتای
فعلی گروه
حجم (VG) مربوط
به LVM (یا
ذخیره آن در
یک فایل) با
استفاده از
هدرها به
منظور
یافتن
جدیدترین
نسخه
متادیتا. در
صورت آسیب
دیدن هدرها
ممکن است
متادیتا
یافت نشود
(گزینه metadata_search را
ببینید). از
گزینه --settings mda_num=2
برای جستجو
در mda2 (دومین
ناحیه
متادیتا در
انتهای
دستگاه، در
صورت
استفاده)
بهره
بگیرید. متن
متادیتا در
خروجی
استاندارد
چاپ شده یا
با گزینه --file
در یک فایل
ذخیره
میشود.
metadata_all
فهرست کردن
تمام
نسخههای
متادیتای VG
موجود در
ناحیه
متادیتا با
استفاده از
هدرها برای
مکانیابی.
نسخههای
کامل
متادیتاها
با گزینه --file
در یک فایل
ذخیره
میشوند.
اگر هدرها
آسیب دیده
باشند،
ممکن است
متادیتا
یافت نشود
(گزینه metadata_search را
ببینید).
مانند حالت
قبل
میتوانید
از --settings mda_num=2
استفاده
کنید.
همچنین با
استفاده از
گزینه -v
میتوانید
توضیحات و
تاریخها
را هنگام
فهرست کردن
نسخههای
متادیتا
درج کنید.
metadata_search
فهرست کردن
تمام
نسخههای
متادیتای VG
موجود در
ناحیه
متادیتا از
طریق
جستجوی
مکانهای
رایج، تا در
صورت خرابی
هدرها نیز
متادیتا
قابل
بازیابی
باشد.
نسخههای
کامل تمامی
متادیتاها
با گزینه --file
در یک فایل
ذخیره
میشوند.
برای ذخیره
یک نسخه خاص
از
متادیتا،
از --settings
metadata_offset=<آفست>
استفاده
کنید که
آفست مورد
نظر از
فهرست
نسخههای
یافتشده
به دست
میآید. از
گزینه -v
برای نمایش
توضیحات و
تاریخها
استفاده
نمایید.
metadata_area
ذخیره کل
ناحیه متنی
متادیتا در
یک فایل
بدون
پردازش و
دستکاری.
گزینههای تعمیر و بازیابی (Repair options)
--repair
تعمیر
هدرها و
متادیتا
روی یک حجم
فیزیکی (PV).
این عملیات
از فایل
ورودی
متادیتا که
قبلاً توسط
گزینه --dump
استخراج
شده یا فایل
پشتیبان
موجود در
مسیر /etc/lvm/backup
استفاده
میکند. در
صورت
امکان، از
متادیتای
ذخیرهشده
توسط --dump از
یک PV دیگر در
همان VG (یا از
ناحیه
متادیتای
دوم روی
همان PV)
استفاده
نمایید.
در برخی موارد لازم است شناسه یکتای سراسری (UUID) حجم فیزیکی در حال تعمیر مشخص شود. این کار با استفاده از --settings pv_uuid=<UUID> انجام میپذیرد. به ویژه اگر نام دستگاه برای PV در حال تعمیر با نام قبلی آن مطابقت نداشته باشد، LVM ممکن است نتواند UUID صحیح PV را تشخیص دهد. زمانی که هدرهای بیش از یک PV در یک VG آسیب دیدهاند، تعیین UUID درست توسط کاربر و مشخص کردن آن در --settings بسیار حیاتی است؛ در غیر این صورت، در صورتی که نامهای دستگاه از زمان آخرین ثبت متادیتا جابجا شده باشند، ممکن است UUID اشتباه به کار رود.
اگر یک PV هیچ ناحیه متادیتایی نداشته باشد و pv_header آن آسیب ببیند، عملیات تعمیر نمیداند که نباید هیچ ناحیه متادیتایی بسازد و به طور پیشفرض متادیتا را در mda1 بازسازی میکند. برای تعمیر دستگاه بدون ایجاد ناحیه متادیتا، از تنظیمات --settings mda_offset=0 mda_size=0 استفاده کنید.
در شرایطی خاص لازم است عملیات تعمیر روی تمام PVهای موجود در VG (با استفاده از همان فایل متادیتا) اجرا شود: اگر تمام PVهای داخل VG آسیب دیده باشند، اگر از نسخه متادیتای قدیمی استفاده شود، یا اگر به جای متادیتای خام استخراجشده از دستور pvck dump، از فایل پشتیبان استفاده شده باشد.
استفاده از گزینه --repair معادل اجرای --repairtype pv_header و در ادامه اجرای --repairtype metadata است.
--repairtype pv_header
تعمیر
سکتور هدر،
شامل pv_header و label_header.
--repairtype metadata
تعمیر mda_header و
متن
متادیتا.
این گزینه
نیازمند آن
است که
هدرها سالم
و صحیح
باشند (چه از
ابتدا
آسیبی
ندیده
باشند و چه
قبلاً
تعمیر شده
باشند).
--repairtype label_header
تعمیر
فیلدهای label_header
در حالی که pv_header
(در همان
سکتور)
دستنخورده
باقی
میماند.
(معمولاً
بهتر است به
جای آن از repairtype
pv_header استفاده
شود.)
تنظیمات پیشرفته (Settings)
گزینه --settings رفتارهای مشخصی از استخراج (dump) یا تعمیر (repair) را کنترل کرده یا بازنویسی میکند. تمام مقادیر آفست و اندازه در تنظیمات بر حسب بایت هستند (واحدها شناسایی نمیشوند). این تنظیمات ممکن است در نسخههای آینده تغییر کنند.
mda_num=1|2
انتخاب
ناحیه
متادیتایی
که باید
استفاده
شود. به طور
پیشفرض
اولین
ناحیه
متادیتا (۱)
استفاده
میشود.
ناحیه mda1
همیشه در
آفست ۴۰۹۶
قرار دارد.
ناحیه mda2 در
انتهای
دستگاه
اغلب وجود
ندارد (به
طور
پیشفرض
ایجاد
نمیشود).
اگر mda1 پاک
شود، در
صورت وجود
mda2، اغلب
متادیتا
هنوز در آن
موجود
خواهد بود.
metadata_offset=بایت
انتخاب متن
متادیتا در
آفست
مشخصشده.
همراه با metadata_search
برای چاپ یا
ذخیره یک
نمونه خاص
از متن
متادیتا به
کار
میرود.
mda_offset=بایت
mda_size=بایت
اشاره به
موقعیت
مکانی و
اندازه
ناحیه
متادیتا (mda).
یک mda شامل mda_header و
یک بافر
حلقوی متنی
متادیتا
است. تنظیم
این مقدار
metadata_search را مجبور
میکند تا
متادیتا را
به جای
مکانهای
استاندارد،
در ناحیه
مشخصشده
جستجو کند.
هنگامی که
در زمان
تعمیر
برابر با
صفر قرار
داده شود،
نشاندهنده
آن است که
هیچ ناحیه
متادیتایی
نباید وجود
داشته
باشد.
mda2_offset=بایت
mda2_size=بایت
هنگام
تعمیر pv_header،
این تنظیم
آفست و
اندازه
خاصی را
برای mda2
اعمال
میکند که
باید در pv_header
ثبت شود.
pv_uuid=شناسه_uuid
تعیین
مشخصات PV UUID
برای
دستگاهی که
در حال
تعمیر است.
در صورت عدم
تعیین،
دستور
تعمیر تلاش
میکند تا
با تطبیق
نام دستگاه
در
متادیتا، UUID
مناسب را
بیابد.
device_size=بایت
data_offset=بایت
هنگام
تعمیر pv_header،
مقادیر device_size،
data_offset و pvid همگی
میتوانند
مستقیماً
مشخص شوند؛
در این
حالت، این
مقادیر از
فایل
متادیتا (که
منبع معمول
آنهاست)
خوانده
نشده و
میتوان
فایل
متادیتا را
نادیده
گرفت. مقدار
data_offset موقعیت
آغازین
اولین
اکستنت
فیزیکی
(داده) است که
بعد از
اولین
ناحیه
متادیتا
قرار
میگیرد.
کاربرد (USAGE)
بررسی
وجود
متادیتا
روی یک
دستگاه:
pvck PV ...
—
بررسی و
چاپ هدرها و
متادیتای LVM
روی یک
دستگاه:
pvck --dump
headers|metadata|metadata_all|metadata_search
PV
[ --settings رشته ]
[ --[pv]metadatacopies 0|1|2 ]
[ گزینههای_عمومی ]
—
تعمیر
هدرها یا
متادیتای LVM
روی یک
دستگاه:
pvck --repairtype
pv_header|metadata|label_header PV
[ --settings رشته ]
[ گزینههای_عمومی ]
—
تعمیر
هدرها و
متادیتای LVM
روی یک
دستگاه:
pvck --repair -f|--file
رشته PV
[ گزینههای_عمومی ]
—
گزینههای عمومی برای این دستور:
گزینههای عمومی lvm:
[ -h|--help ]
[ -q|--quiet ]
[ -t|--test ]
[ -v|--verbose ]
[ -y|--yes ]
[ --commandprofile رشته ]
[ --config رشته ]
[ --devices PV ]
[ --devicesfile رشته ]
[ --driverloaded y|n ]
[ --journal رشته ]
[ --lockopt رشته ]
[ --longhelp ]
[ --nohints ]
[ --nolocking ]
[ --profile رشته ]
[ --version ]
گزینهها (OPTIONS)
--commandprofile رشته
پروفایل
فرمانی که
برای
پیکربندی
دستور
استفاده
میشود.
برای
اطلاعات
بیشتر در
مورد
پروفایلها،
lvm.conf(5) را
ببینید.
--config رشته
تنظیمات
پیکربندی
برای دستور
که بر
تنظیمات lvm.conf(5)
ارجحیت
دارند.
آرگومان
رشته از
همان قالب
lvm.conf(5) استفاده
میکند یا
میتواند
از ساختار
بخش/فیلد
بهره ببرد.
برای
اطلاعات
بیشتر
درباره
پیکربندی،
lvm.conf(5) را
ببینید.
-d|--debug ...
تعیین سطح
دیباگ و
اشکالزدایی.
برای
افزایش
جزئیات
پیامهای
ارسالی به
فایل گزارش
وقایع یا syslog
(در صورت
فعال بودن)،
آن را بین ۱
تا ۶ بار
تکرار
کنید.
--devices PV
دستگاههای
قابل
مشاهده و در
دسترس
دستور را
محدود
میکند.
دستگاههایی
که در این
لیست
نباشند
ناموجود
فرض خواهند
شد. این
گزینه
میتواند
تکرار شود
یا فهرستی
از
دستگاهها
را که با
کاما از هم
جدا
شدهاند
بپذیرد. این
گزینه بر
فایل devices
ارجحیت
دارد.
--devicesfile رشته
فایلی شامل
فهرستی از
دستگاههایی
که LVM باید
استفاده
کند. این
فایل باید
در مسیر /etc/lvm/devices/
موجود باشد
و با
استفاده از
دستور lvmdevices(8)
مدیریت
میشود. این
گزینه
تنظیمات
devices/devicesfile و devices/use_devicesfile
در lvm.conf(5) را
بازنویسی
میکند.
--driverloaded y|n
در صورت
تنظیم روی no
یا n، دستور
تلاشی برای
استفاده از
device-mapper انجام
نخواهد داد.
این گزینه
برای آزمون
و عیبیابی
به کار
میرود.
--dump
headers|metadata|metadata_all|metadata_search
تخلیه و
استخراج
هدرها و
متادیتا از
یک PV به
منظور
عیبیابی و
تعمیر.
مقادیر
مجاز
عبارتند از:
headers برای چاپ
و بررسی
هدرهای LVM، metadata
برای چاپ یا
ذخیره
متادیتای
متنی جاری،
metadata_all برای
فهرست کردن
یا ذخیره
تمام
نسخههای
متادیتا،
metadata_search برای
فهرست کردن
یا ذخیره
همه
نسخههای
متادیتا با
جستجوی
مکانهای
استاندارد
در صورت
آسیب دیدن
هدرها، و
metadata_area برای
ذخیره کل یک
ناحیه متنی
متادیتا در
یک فایل.
-f|--file رشته
فایل
متادیتا
برای
خواندن یا
نوشتن.
-h|--help
نمایش متن
راهنما.
--journal رشته
ثبت
اطلاعات در
ژورنال systemd.
این
اطلاعات
علاوه بر
اطلاعات
فعالشده
از طریق
تنظیم log/journal در
lvm.conf است: command
اطلاعات
مربوط به
دستور را
ثبت
میکند؛ output
خروجی
پیشفرض
دستور را
ثبت
میکند؛ debug
اطلاعات
کامل
عیبیابی
دستور را
ثبت
میکند.
--labelsector عدد
به طور
پیشفرض، PV
با یک شناسه
LVM2 در سکتور
دوم خود
(سکتور ۱)
برچسبگذاری
میشود. این
گزینه
اجازه
میدهد از
سکتور
دیگری در
نزدیکی
ابتدای
دیسک (بین ۰
تا ۳ شامل
خود آنها -
ثابت LABEL_SCAN_SECTORS در
کد منبع را
ببینید)
استفاده
کنید. با
احتیاط
استفاده
شود.
--lockopt رشته
برای ارسال
گزینههای
موارد خاص
به lvmlockd
استفاده
میشود.
برای
اطلاعات
بیشتر، lvmlockd(8)
را ببینید.
--longhelp
نمایش متن
راهنمای
تفصیلی و
کامل.
--nohints
عدم
استفاده از
فایل
راهنما (hints)
برای
مکانیابی
دستگاهها
برای PVها.
هنگامی که
از فایل hints
استفاده
نشود، ممکن
است دستور
دستگاههای
بیشتری را
برای یافتن
PVها بخواند.
دستور
همچنان
باطلسازی
استاندارد
فایل hints را در
صورت لزوم
انجام
خواهد داد.
--nolocking
غیرفعال
کردن
قفلگذاری
(locking). با احتیاط
استفاده
شود؛
دستورات
همزمان
ممکن است
نتایج
نادرستی
ایجاد
کنند.
--profile رشته
نام
مستعاری
برای --commandprofile یا
--metadataprofile بسته به
دستور مورد
نظر.
--[pv]metadatacopies
0|1|2
تعداد
نواحی
متادیتایی
که برای
ذخیره
متادیتای VG
روی یک PV
اختصاص
مییابد.
اگر مقدار ۲
باشد، یک
نسخه از
متادیتای VG
در ابتدای PV
و نسخه دوم
در انتهای
آن ذخیره
میشود. اگر
مقدار ۱
باشد، یک
نسخه در
ابتدای PV
ذخیره
میشود. اگر
مقدار ۰
باشد، هیچ
نسخهای از
متادیتای VG
روی این PV
ذخیره
نمیشود.
این حالت
ممکن است در
VGهایی که
شامل PVهای
متعددی
هستند مفید
باشد (البته
محدودیتهایی
در امکان
استفاده
بعدی از vgsplit
ایجاد
میکند).
-q|--quiet ...
فرونشاندن
خروجیها و
پیامهای
وقایع. این
گزینه بر --debug و
--verbose ارجحیت
دارد. تکرار
مجدد آن،
پاسخ
خودکار
«نه» (no) به
هرگونه
سوال
تأییدیه را
اعمال
خواهد کرد.
--repair
تعمیر
هدرها و
متادیتا
روی یک حجم
فیزیکی (PV).
--repairtype
pv_header|metadata|label_header
تعمیر
هدرها و
متادیتا
روی یک PV. بخش
توضیحات
دستور را
ببینید.
--settings رشته
تعیین
تنظیمات
خاص دستور
در قالب "Key = Value".
چندین
تنظیم را
میتوان در
داخل گیومه
قرار داد یا
گزینه settings را
برای هر
کدام تکرار
کرد.
-t|--test
اجرا در
حالت
آزمایشی (Test mode).
در این حالت
دستورات
متادیتا را
بهروزرسانی
نمیکنند.
این قابلیت
با غیرفعال
کردن تمام
عملیات
نوشتن
متادیتا
اما
بازگرداندن
وضعیت
موفقیتآمیز
به تابع
فراخواننده
پیادهسازی
شده است. این
امر در
عملیاتهای
چندمرحلهای
چنانچه
ابزاری
متکی به
خواندن
متادیتایی
باشد که فرض
میکند
تغییر کرده
ولی نکرده
است، ممکن
است به
پیامهای
خطای
غیرمعمول
منجر شود.
-v|--verbose ...
تعیین سطح
پرحرفی (verbose).
برای
افزایش
جزئیات
پیامهای
ارسالی به stdout
و stderr، از ۱ تا ۴
بار تکرار
کنید.
--version
نمایش
اطلاعات
نسخه
نرمافزار.
-y|--yes
عدم
درخواست
تاییدیه به
صورت
تعاملی و
پیشفرض در
نظر گرفتن
پاسخ مثبت (yes).
با احتیاط
بسیار زیاد
استفاده
شود. (برای
پاسخ منفی
خودکار،
گزینه -qq را
ببینید.)
متغیرها (VARIABLES)
- PV
- نام حجم
فیزیکی، یک
مسیر
دستگاه زیر
شاخه /dev. برای
دستوراتی
که
اکستنتهای
فیزیکی را
مدیریت
میکنند،
آرگومان
موقعیتی PV
معمولاً
پسوندی را
میپذیرد
که محدوده
(یا
محدودههای
چندگانه) از
اکستنتهای
فیزیکی (PE) را
مشخص
میکند.
هنگامی که
اولین PE حذف
شود،
پیشفرض
ابتدای
دستگاه
خواهد بود و
هنگامی که
آخرین PE حذف
شود،
پیشفرض
انتهای آن
است.
محدوده آغاز و پایان (شامل خودشان):
PV[:PE-PE]...
محدوده آغاز و طول (شمارش از ۰):
PV[:PE+PE]... - رشته
- برای اطلاعات بیشتر در مورد محتوای رشته، توضیحات مربوط به هر گزینه را ببینید.
- اندازه[واحد]
- اندازه یک عدد ورودی است که یک واحد اختیاری را میپذیرد. واحدهای ورودی بدون توجه به بزرگی یا کوچکی حروف همیشه به عنوان مقادیر بر مبنای دو (باینری) در نظر گرفته میشوند؛ به عنوان مثال 'k' و 'K' هر دو نشاندهنده ۱۰۲۴ هستند. واحد ورودی پیشفرض با حرف و به دنبال آن |واحد مشخص میشود. واحد نشاندهنده سایر واحدهای ورودی ممکن است: b|B بایت، s|S سکتورهای ۵۱۲ بایتی، k|K کیبیبایت (KiB)، m|M مبیبایت (MiB)، g|G گیبیبایت (GiB)، t|T تبیبایت (TiB)، p|P پبیبایت (PiB)، e|E اگزیبایت (EiB). (این مورد نباید با گزینه خروجی --units اشتباه گرفته شود که در آن حروف بزرگ مضاربی از ۱۰۰۰ هستند.)
متغیرهای محیطی (ENVIRONMENT VARIABLES)
برای اطلاعات بیشتر درباره متغیرهای محیطی استفادهشده توسط LVM، lvm(8) را ببینید. به عنوان مثال، LVM_VG_NAME معمولاً میتواند به جای یک پارامتر الزامی VG جایگزین شود.
مثالها (EXAMPLES)
اگر جدول پارتیشن در مسیر /dev/sda آسیب دیده یا از بین رفته باشد و شما گمان میکنید که یک پارتیشن LVM در حدود ۱۰۰ مبیبایت وجود داشته است، میتوان این ناحیه از دیسک را با استفاده از پارامتر --labelsector با مقدار ۲۰۴۸۰۰ اسکن کرد (۵۱۲ / ۱۰۲۴ * ۱۰۲۴ * ۱۰۰ = ۲۰۴۸۰۰):
pvck --labelsector 204800 /dev/sda
همچنین ببینید (SEE ALSO)
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 |