LVM یا Logical Volume Management در لینوکس چیست ؟
LVM یا Logical Volume Management در لینوکس را توضیح می دهیم و به سوالات شما در مورد این لنوکس صحبت خواهیم نمود.
قبل از اینکه به سراغ Linux LVM برویم بد نیست کمی در خصوص LVM بیشتر بدانیم البته LVM که ما می خواهیم در خصوص ان صحبت کیم جامع و وابسته به سیستم عامل خاصی نیست ، Logical Volume Management یا LVM یک تکنیک اختصاص فضای هارد دیسک برای استفاده در مواردی است که تعداد هارددیسک های یک سیستم افزایش پیدا می کند و به شما قابلیت های بسیار زیادی در حوزه پارتیشن بندی هارددیسک ها می دهد ، انعطاف پذیری بسیار زیادی که در LVM وجود دارد این امکان را به سیستم عامل ها می دهد که پارتیشن ها را بصورت متمرکز ، بصورت توزیع شده و یا ترکیبی بر روی چندین هارد دیسک ایجاد و مدیریت کنند .
LVM چیست ؟
و مهمترین نکته در استفاده از LVM این است که در چنین شرایطی سیستم عامل و کاربر به هیچ عنوان متوجه این تغییرات نخواهند شد ، شما به راحتی می توانید با استفاده از تکنیک LVM فضای پارتیشن های خود را کم و زیاد کنید و یا آنها را به جای دیگری انتقال دهید بدون اینکه کوچکترین تداخلی با کار کرد ن عامل داشته باشید . از تکنیک LVM به عنوان یک تکنیک مجازی سازی فضای ذخیره ساری یا Storage Virtualization نیز نام برده می شود ، LVM در همان لایه ای کار می کند که درایورها کار می کنند بنابراین تا حدود زیادی درگیری با سیستم عامل ندارد .
LVM را به عنوان Dynamic Partition هم می شناسند ، LVM به شما این امکان را میدهد که در سیستم عامل GNU Linux یک فایل سیستم را بصورت همزمان بر روی چندین پارتیشن قرار بدهید . اگر شما بر روی یک پارتیشن فضای کمی دارید و دچار کمبود فضا شده اید و می خواهید فضای بیشتری به پارتیشن مورد نظر بدهید شما می توانید از Logical Volumns Manager یا LVM استفاده کنید . از LVM می توان به عنوان یک لایه ظریف نرم افزاری در بالای چندین هارد دیسک و پارتیشن یاد کرد که این قابلیت را به ما می دهد که بدون اینکه کاربر متوجه شود پارتیشن ها را تغییر اندازه بدهیم ، پارتیشن بندی را مجددا انجام دهیم ، هارد دیسکها را تعویض کنیم و همچنین بک آپ گیری ها را به سادگی انجام دهیم .
این قابلیت در ویندوز و سیستم عامل های دیگر هم وجود دارد اما با اسامی و اشکال مختلف ، در این بخش می خواهیم در خصوص لینوکس LVM بیشتر صحبت کنیم LVM این امکان را به کرنل سیستم عامل می دهد که پارتیشن بندی هارد دیسک های موجود بر روی سیستم وابستگی به ساختار و لایه بندی دیسک های سخت افزاری روی سیستم نداشته باشند و بتوانند بصورت مستقل از دیسک عمل کنند .
در ساختار پارتیشن بندی و مدیریت دیسک های سنتی که در قدیم استفاده می شد ، سیستم عامل به دنبال | هارد دیسک های نصب شده بر روی دستگاه می گشت و بعد از شناسایی کردن هارد دیسک ها به سراغ شناسایی پارتیشن ها و فضاهای موجود بر روی آنها می کرد ، بنابراین اگر هارد دیسک اول را به سیستم معرفی می کردید طبیعتا به شکل dev/sda/ و هارددیسک دوم به شکل dev/sdb/ و … به همین شکل شناسایی می شد و سیستم عامل بعد از شناسایی dev / sda / در داخل همان هارد دیسک به دنبال پارتیشن های dev/sda1/ و dev / sda2 / و… می گشت .
با استفاده از LVM دیگر این وابستگی سیستم عامل به ساختار دیسک ها وجود ندارد و دیسک ها و پارتیشن ها می توانند شامل چندین دیسک و چندین پارتیشن باشند که در قالب یک پارتیشن یا فایل سیستم دیده می شوند . برای مثال شما می توانید پارتیشی داشته باشید که ۱ گیگابایت از dev / sda / و ۲ گیگابایت از dev / sdb / را در قالب dev / sda1 / به شما نمایش دهد . سیستم عامل به هیچ عنوان متوجه چنین تغییری نخواهد شد زیرا LVM با استفاده از مکانیزمی به نام Logical Volumes و Volume Groups که به ترتیب دیسکها و پارتیشن ها را تشکیل می دهند این ساختار را از دید سیستم عامل پنهان می کند .
با توجه به اینکه Volume Group ها و Logical Volume ها واقعا بصورت فیزیکی بر روی هارد درایو قرار نگرفته اند ، شما می توانید با استفاده از LVM به سادگی دیسک ها و پارتیشن های جدید را ایجاد کنید و از طرفی بدون کوچکترین وقفه در سیستم می توانید اندازه Volume ها یا همان پارتیشن ها را زیاد و کم کنید ، از طرفی LVM به شما امکاناتی را ارائه می دهد که در حالت عادی فایل سیستم قادر به انجام چنین کاری نمی باشد ، برای مثال Ext3 نمی تواند از قابلیت های live snapshot استفاده کند اما با استفاده از LVM شما می توانید از Logical Volumes های خود بدون نیاز به اینکه Unmount شوند Backup یا Snapshot بگیرید .
چه زمانی باید از LVM استفاده کرد ؟
اولین سئوالی که قبل از پیادهسازی IVM در دیسک ها و پارتیشن ها باید از خودتان بپرسید این است که قرار است من با این پارتیشن ها چه کاری انجام بدهم ؟ برخی از توزیع های لینوکس مثل Fedora بصورت پیش فرض بر روی خودشان LVM را نصب شده دارند . اگر شما بر روی سیستم خود فقط یک هارد دیسک دارید که مربوط به هارد درایو داخلی لپ تاپ شما است و قرار نیست به این هارد دیسک ظرفیتی اضافه و یا کم شود و مثلا از لینوکس توزیع Ubuntu هم استفاده می کنید و هیچ نیازی به قابلیت live snapshot هم ندارید ، نیازی به داشتن LVM هم ندارید .
اما اگر شما چندین هارد دیسک دارید که می خواهید همه این هارد دیسک ها برای سیستم عامل در قالب یک پارتیشن یا فایل سیستم دیده شوند و به قول فنیتر همه هارد دیسک ها به شکل یک Storage Pool دیده شوند در این حالت بهتر است که از IVM استفاده کنید IVM مدیریت شما بر روی هارد دیسکها را به شدت قوی می کند اما به عنوان یک مکانیزم امنیتی محسوب نمی شود ، در ادامه بلوکهایی که ساختار IVM را تشکیل داده اند را مشاهده می کنید .
Physical Volume یا PV :
لولین لایه بعد از هارددیسک های فیزیکی است ، به پارتیشن هایی که مستقیما بر روی هارددیسک یا یک فایل loopback ایجاد می شوند و شما می توانید Volume Group های LVM را در آنها ایجاد کنید PV گفته می شود . به قول دیگر PV ها در واقع اولین اطلاعات مدیریتی هستند که به روی هارددیسک فیزیکی نوشته می شوند تا سیستم قادر به شناسایی آنها باشد . برای درک بهتر فقط کافیست بدانید که PV ها بلوکهای بزرگی هستند که برای مدیریت اولیه هارد دیسک های شما ایجاد می شوند و معمولا شامل همه فضای دیسک سخت شما می شوند LVM از PV به عنوان نگهدارنده PE ها استفاده می کند .
Volume Group یا VG :
یک VG شامل مجموعه ای از Physical Volume ها است که در قالب یک دیسک نمایش داده می شوند یا بهتر بگوییم در قالب یک Storage Volume نمایش داده می شوند . VG ها شامل Logical Volume های ما هستند ، شما می توانید برای درک بهتر از VG به عنوان هارد درایوی که سیستم شناخته است یاد کنید .
Logical Volume یا LV :
این قسمت در واقع همان پارتیشن هایی هستند که شما می شناسید ، یک Virtual یا Logical Partition که بر روی یک Volume Group قرار گرفته است می تواند شامل جندین Physical Extents باشد . در واقع LV نتیجه کاری LVM است که قرار است ما از آن استفاده کنیم ، اما محل ذخیرهسازی داده های ما هستند .
Physical Extent یا PEF :
کوچکترین اندازه یا فضایی است که می توان از Playsical Volume گرفت و به Logical Volume اختصاص داد ، پیش فرض این فضا ۴ مگابایت می باشد و برای درک بهتر آن کافیست ، قسمتی از دیسک فرض کنید که می توان آن را به هر پارتیشنی اختصاص داد .