LVM

مدیریت استوریج ها در لینوکس

شاید یکی از اولین و اساسی ترین کارهایی که باید تو لینوکس یاد گرفت اینه که چطور با استوریج ها یا همون هارد دیسک هامون رفتار کرد اغلب کسایی که توی کار با سیستم عامل لینوکس تازه کارن این چلنج بزرگ براشون میتونه باشه که ممکنه به قیمت از دست دادن اطلاعتشون هم ختم بشه ولی این داستانی هست که برای اینکه ادم بهتر بشه نیازه یادش بگیره و ازش استفاده کنه

تو روش های قدیم مرسوم برای مدیریت هارد ها اینطوری بود که ادمین هر هارد جدید رو به عنوان یه پارتیشن   یا ماونت پوینت جدید به سیستم  معرفی میکرد که  یه مشکل خیلی اساسی  وجود داشت  این بود که اکستند یا تغییر فضای اون پارتیشن تقریبا غیر ممکن بود یا حداقل من نمیشناسم و ریسک خیلی بالایی هم داشت به قیمت از دست دادن دیتا!!!اینجاست که lvm میاد وسط , lvm در حقیقت یه متد یا فناوری مدیریت  استوریج هاست که یه سری مزیت برای ما داره 

معماری و واژه شناسی lvm
قبل از اینکه بریم سراغ دستورات مرتبط با اون اول راجع به کانسپت lvm و نحوه عملکرد اون  صحبت میکنمLVM یا Logical Volume Management در  حقیقت با ایجاد یه لایه  انتزاعی در بالای دیسک های ذخیره سازی  عمل می کند. با lvm  و انتزاعی کردن  استوریج هامون  ما یه virtual partition خواهیم داشت . پارتیشن‌های مجازی امکان اضافه کردن و حذف را بدون نگرانی از اینکه فضای مجاور کافی روی یک دیسک خاص دارید یا خیر رو  می‌دهند

اجزا و بلوک های اصلی در lvm شامل

  • Physical volume (PV)
    در حقیت هر وسیله ذخیره سازی فیزیکی رو میتونیم یه pv بگیم به عنوان مثل یه هارد دیسک درایو ( HDD ) یا Solid State Drive ( SSD ) و یا حتی یه پارتیشن همونطور که در تصویر هم مشخصه به طورمعمول فضاس کل هارد دیسک رو به عنوان یه pv تعریف میکنن
  •  Volume group (VG)
    یک VG شامل مجموعه ای از Physical Volume ها است  در حقیقت یونیت مرکزی در معماری  lvm هست , VG چیزی است که ما ایجاد می کنیم وقتی که چندین حجم فیزیکی (PV) رو برای ایجاد یک ساختار ذخیره سازی واحد ترکیب می کنیم  این یونیت برابر است با ظرفیت ذخیره سازی  ترکیت PV هایی در یک گروه که اینجا همون VG  است قرار دادیم
    به زبون خیلی ساده تر وقتی ما سه تا هارد دیسک ۱۰۰ گیگ داریم میتونیم یه VG  با ظرفیت ۳۰۰ گیگ درست کنیم که سیستم عامل اون رو میشناسه
  •  (LV) Logival Volume 
    اگر یه بصورت یه هرم نگله کنیم به lvm   و معماری اون  LV در بالای اون قرار میگیره  بعد از این که تمام کامپوننت ها اماده شد اون ساخته میشه , در واقع همون پارتیشن هایی هستن که ما باهاشون سرکار داریم
    LV ها مستقیماً روی دیسک‌ خاصی عمل نمی‌کنند، بلکه فضای  خودشون رو از فضای دیسک موجود در VG دریافت می‌کننداین به این معنیه که یک LV ممکن است شامل فضای ذخیره سازی موجود از چندین PV باشه
  • Physical Extent (PE)
    کوچکترین اندازه یا فضایی است که می توان از PV گرفت و به LV اختصاص داد ، پیشفرض این فضا 4 مگابایت می باشد و برای درک بهتر آن کافیست را قسمتی از دیسک فرض کنید که می توان آن را به هر پارتیشنی اختصاص داد.
 وقتی این کامپوننت ها رو شناختیم بزرگترین مزیت Lvm برامون این میشه بدون درد خونریزی بتونیم  LV رو ریسایز کنیم و اگر فضای بیشتر نیاز داشتیم با اد کرد یه هارد دیسک به سرورمون و ساختن یه PV  و جوین کردن اون به ٰVG  مربوطه و اکستند کردن اون VG فضای بیشتری داشته باشیم و بتونیم به LV هامون اختصاص بدیم

حالا یه مثال میزینم تا با کامند هاش هم اشنا بشیم 

اول برای اینکه دیسک جدیدی که به سرور وصل کردیم پیدا کنیم رو با دستور fdisk -l پیدا میکنیم نتیجهش یه چیزی مثل عکس زیر میشه

این کاکمد بهمون میگه ما یه دیسک با فضای ۱۰ گیگ داریم (/dev/sdb)  که پارتیشن ندارند و به صورت دیسک خام در دسترس هستند بعد که دیسک مورد نظر رو پیدا کردیم اول یه PV  میسازیم 

$ sudo pvcreate /dev/sdb

Physical volume “/dev/sdb” successfully created.

$

 

 

با کامند pvs یا pvdisplay میتونیم وضعیت pv هامون رو ببینیم

 

بعد از ساختن pv باید بریم سراغ ساختن VG  که در حقیقت  میتونه شامل چندیت PV باشه

Syntax:

$ sudo vgcreate <vg_name> <pv> <physical volume>

$ sudo vgcreate vg01 /dev/sdb
Volume group “vg01” successfully created
$

 

برای دیدن VG مون هم از کامند vgs یا vgdisplay استفاده میکنیم


خروجی  کامند بالا تایید می کند که vg01 ساخته شده و و اندازه هر PE که مقدار پیشفرض است ۴ مگ  است

و در مرحبع بعد یه LV میسازیم

Syntax:

$ sudo lvcreate -L <Size> -n <lv_name> <vg_name>

$ sudo lvcreate -L 9.99G -n lv01 vg01
Rounding up size to full physical extent 9.99 GiB
Logical volume “lv01” created.
$

برای اینکه ببینیم وضعیت LV هامون چطوره میتونیم از lvs و lvdisplay استفاده کنیم

خروجی کامند بالا نشون میده که ما با موفقیت LV رو ساختیم و بنابراین میتونیم از این پارتیشن lvm استفاده کنیم

برای اینکه بتونیم از این پارتیشن استفاده کنیم اول باید فرمتش کنیم 

Syntax:

$ sudo mkfs.ext4 <LV_Path>

$ sudo mkfs.ext4 /dev/vg01/lv01

کامند بالا  میگه که پارتیشنمون رو با EXT4 فرمت کردیم و برای دسترسی به اون حال باید یه جایی اونو ماونت کنیم

$ sudo mkdir /data
$ sudo mount /dev/vg01/lv01 /data

با کامند های بالا پارتیشن مون رو /data ماونت میکنیم ومیتونیم استفاده کنیم

 

Leave A Comment

Your email address will not be published. Required fields are marked *