علی کنگرانی
علی کنگرانی
خواندن ۵ دقیقه·۳ سال پیش

کار با LVM

کلن LVM چیه و به چه دردی می خوره ؟

مدیریت فضای ذخیره سازی روی سرورهای لینوکسی از مهم ترین کار هایی هستش که باید انجام داد. به عنوان یک ادمین لینوکس،‌این موضوع می تونه تبدیل به یک کابوس و یا یک نقطه قوت برای شما بشه. LVM که مخفف Logical Volume Manager هستش، یک ابزار بسیار قدرت منده که به شما اجازه می ده به راحت ترین حالت ممکن دیسک های سیستمتون رو مدیریت کنید. با استفاده از LVM شما می تونید دیسک هاتونو بدون نیاز به ریبوت کردن سیستم حذف کنید، تغییر اندازه بدین و یا یک دیسک جدید به سیستم معرفی کنید. همچنین شما می تونید برای یک پارتیشن، از بیش از یک دیسک (بدون در نظر گرفتن محدودیت حجم هر کدام) استفاده کنید. برای مدیریت I/O دیسک هاتون هم می تونید از LVM استفاده کنید، به صورتی که اطلاعات بر روی تمامی دیسک ها به صورت یکسان نوشته شوند (RAID-0).

تو عکس زیر می تونید ساختار کلی LVM رو ببینید که جلوتر در مورد بخش های مختلفش صحبت می کنیم.


چجوری می شه روی سیستم از LVM استفاده کرد ‌؟

در زمان استفاده از LVM، اگر معنی چند کلمه رو بدونید، خیلی راحت تر می تونید باهاش ارتباط برقرار کنید:

نکته: این اجزا فقط برای مدیریت راحت تر دیسک به وجود اومدن که در زمان کار کردن باهاشون کاملا اینو متوجه می شید.

دیسک فیزیکی (Physical Volume): زمانی که شما دیسک رو به سیستم وصل می کنید و کارها پارتیشن بندیش رو انجام می دید، ما از هر پارتیشن یک دیسک فیزیکی (pv) می سازیم و اینا کوچیک ترین بخشی از دیسک می شن که ماهاشون کار خاهیم کرد.

گروه دیسک ها (Volume Group): می تونیم از هر چنتا دیسک فیزیکی (pv) که می خایم استفاده کنیم و یک گروه دیسک (vg) بسازیم

دیسک منطقی (LogicalVolume): این بخش در واقع همون فضای مجازی ماست که به ما اجازه می ده با استفاده از گروه های دیسکی،‌ دیسک های منطقی بسازیم. اینجا ما می تونیم فایل سیستم تعریف کنیم، اندازه دیسک رو بدون هیچ مشکلی کم و زیاد کنیم و با mount کردنشون به سیستم از اونها استفاده کنیم.

شما می تونید به شکل زیر،‌ از LVM برای مدیریت فضای ذخیره سازی سرورتون استفاده کنید:

۱. اول از همه لازمه که LVM رو نصب کنید:

$ yum install lvm2



۲. دیسکتونو به سیستم وصل کنید. به شکل زیر می تونید ببینید که سیستم دیسک رو شناخته یا نه:

$ lsblk



۳. اینجا ما کار های پارتیشن بندی این دیسک رو شروع می کنیم.

$ fdisk [target directory]



۴. به شکل زیر یک پارتیشن جدید ایجاد کنید.


در اینجا ما ۴ پارتیشن primary ایجاد می کنیم اما شما با توجه به نیازتون هر چند پارتیشنی که دوست دارین درست کنید (حواستون به پارتیشن های primary و extended باشه)



۵. حالا، با وارد کردن حرف t، نوع پارتیشن ها رو مشخص کنید. می تونید با وارد کردن حرف L انواع مختلفی که می تونید برای پارتیشن ها داشته باشید رو ببینید. در اینجا با وارد کردن شماره پارتیشن و حروف 8e، نوع پارتیشن رو LVM بزارین.



۶. این کار رو برای تمامی پارتیشن ها تکرار کنید



۷. برای اینکه ببینید چیکار کردین،‌ می تونید با وارد کردن حرف p تمامی پارتیشن های موجود بر روی این دیسک رو ببینید.



۸. در نهایت با وارد کردن حرف w تغییراتی که ایجاد کردین رو روی دیسک اعمال کنید.



حالا وقت اینه که شوع کنیم با LVM کار کردن

۹. با استفاده از دستور زیر از پارتیشن هایی که درست کردین، دیسک فیزیکی (pv) ایجاد کنید.

$ pvcreate [target directory]



۱۰. این کار رو برای تمامی پارتیشن ها تکرار کنید




۱۱. با استفاده از دستور زیر می تونید وضعیت دیسک های فیزیکیتون رو ببینید:

$ pvscan



۱۲. با استفاده از دستور زیر می تونید اطلاعات بیشتری در مورد هر دیسک فیزیکی داشته باشید:

$ pvdisplay [target directory]



۱۳. با استفاده از دستور زیر می تونید از دیسک های فیزیکی (pv) که ساختید، گروه های دیسکی (vg) بسازید:

$ vgcreate [Name of the group] [target directorie(s)]
$ vgcreate Group1 /dev/vdb1 /dev/vdb2



در اینجا می تونید به هر شکلی که دوست دارین، هر چنتایی که می خاین گروه دیسکی (vg) ایجاد کنید

توجه کنید که محدودیتی تو تعداد دیسک های فیزیکی که در گروه قرار میدین وجود نداره و هر حتا می تونید برای هر دیسک فیریکی (pv)، یک گروه دیسکی (vg) ایجاد کنید.

۱۴. با استفاده از دستور زیر می تونید وضعیت گروه های دیسکی‌(vg) سیستم رو ببینید:

$ vgscan



۱۵. به شکل زیر می تونید با وارد کردن نام گروه دیسکی (pv)، اطلاعات بیشتری رو در موردش ببینید:

$ vgdisplay [name of the volume group]
$ vgdisplay Group1



۱۶. اگر یک بار دیگر دستور زیر را وارد کنید،‌می تونید ببینید که هر کدام از دیسک های فیزیکیتون عضو چه گروهی هستن:

$ pvscan



۱۷. حالا می تونیم با استفاده از گروه هایی که ایجاد کردیم، دیسک های منطقی بسازیم. این کار رو می تونید به شکل زیر انجام بدین:

$ lvcreate --size [lv size] --name [lv name] [the vg which the lv will be created from]
$ lvcreate —size 7G —name LV_First_xo Group1



شما می تونید با توجه به ظرفیت گروه های دیسکیتون، هر چنتا دیسک منطقی که می خاین رو بسازین.




۱۸. با استفاده از دستور زیر می تونید وضعیت دیسک های منطقیتون رو ببینید:

$ lvscan



(این دستور هم اطلاعت دیسک های منطقیتون رو نشون می ده)

۱۹. به شکل زیر می تونید اطلاعات بیشتری در مورد یک دیسک منطقی به دست بیارید:

$lvdisplay [name of the lv] $lvdisplay /dev/Group1/LV_First_xo




۲۰. برای اینکه ببینید این دیسک ها کجا در سیستم قرار دارن، می تونید به شکل زیر عمل کنید:

$ ls /dev/Group*



۲۱. برای استفاده از این دیسک های منطقی، لازمه که فایل سیستم اونها رو مشخص کنیم:

$ mkfs.ext4 /dev/Group1/LV_First_xo



۲۲.این کار رو برای همه ی دیسک های منطقیتون انجام بدین.



۲۲. حالا می تونید دیسک های منطقیتون رو به هرجایی که می خاین mount کنید.

(می تونید هم یک دایرکتوری جدید ایجاد کنید)



۲۳. به شکل زیر می تونید برای هر دیسک منطقی، یک دایرکتوری ایجاد کنید و دیسک را به آن mount کنید:



۲۴. با وارد کردن دستور زیر می تونید وضعیت فضای فعلی سیستمتون رو ببینید:

$ df -h
lvmlinux
شاید از این پست‌ها خوشتان بیاید