با درود خدمت همه همراهان رادیب، گاها در سرورهای مجازی پيش می آيد كه فضای در نظر گرفته شده برای یک درايو، به اندازه كافی نباشد و احتياج به افزودن درايو جديد و Extend كردن آن به درايوهایی با فضای كم می باشد. در اين آموزش سعی می کنیم روش افزايش حجم دايركتوری روت سيستم عامل centos كه به روی يک ماشين مجازی (VMWare ESX Server) نصب گرديده است را آموزش دهیم.

فضای در نظر گرفته شده برای روت اين سيستم عامل 50GB است كه اقدام به افزايش 25GB به فضای آن می كنيم
ابتدا فضای مورد نظرتان را در ماشين مجازی اضافه كنيد. ( باید توسط مجازی ساز این افزایش انجام شود که می توانید از جایی که سرور را خریداری کرده اید، با پرداخت بهای حجم اضافی، درخواست افزایش حجم دهید )

سپس در قسمت كنسول سيستم عامل اصلی (centOS) دستور زير را در ترمينال وارد كنيد تا ليست پارتيشن ها مشخص شود.

fdisk -l

 

تغییر فضای هارد Centops

همان طور كه مشاهده می کنید دیستم dev/sda/ دارای فضای 75 گيگبايت می باشد كه 25 گيگابايت آن پارتيشن بندی نشده است و همچنين با پيام های در ترمينال مبنی بر پارتيشن بندی نشدن قسمتی از فضاها برخورد می كنيم. دستور زير را برای مشاهده ی سايز پارتيشن ها وارد می کنیم.

df -h

همان طور كه مشاهده می کنید درايو / دارای 50 گيگابايت فضا می باشد كه 96% درصد آن مورد استفاده قرار گرفته و ما سعی در افزايش حجم آن خواهيم داشت. ابتدا پارتيشن dev/sda/ را با دستور زیر انتخاب می كنيم تا در فضای پارتيشن بندی نشده آن، پارتيشن جديدی را ايجاد كنيم

 

fdisk /dev/sda

سپس کلید n را برای ساخت یک پارتیشن جدید فشار دهید (با دستور m میتوانید لیست کامل راهنمای دستورات را نیز مشاهده کنید)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n

سپس p وارد کنید:

Command action
   l   logical (5 or over)
   p   primary partition (1-4)
p

به دلیل اینکه که از قبل sda تا sda3 موجود بود هم اکنون عدد 4 را وارد کنید جهت ایجاد sda4 (توجه داشته باشید در سیستم شما باتوجه به تعداد پارتیشن هایتان شاید این عدد متفاوت باشد)

 

Partition number (1-5): 4

در ادامه مقادير مربوط به سيلندرهای اول و آخر را در مقدار پيش فرض رها كنيد و 2 بار اينتر بزنيد.

 

First cylinder (2611-3916, default 2611): "enter"
Using default value 2611
Last cylinder, +cylinders or +size{K,M,G} (2611-3916, default 3916): "enter"
Using default value 3916

سپس t را وارد کنید:

 

Command (m for help): t
Partition number (1-5): 4

عدد 4 به همان دلیل که در چند خط بالاتر توضیح داده شده وارد شده است لذا برای شما ممکن است متفاوت باشد. (همچنین ممکن است سیستم عامل شما default value را برای شما به صورت پیشفرض وارد کند)

سپس نوع درایو را از ما می پرسد که باید به صورت hex وارد شود و ما 8e  را وارد می کنیم

 

Hex code (type L to list codes): 8e
Changed system type of partition 4 to 8e (Linux LVM)

8e به معنای همان lvm میباشد.

اكنون آپشن w را وارد كرده تا تغييراتی را كه اعمال كرديم، ذخيره شود.

 

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

شما اكنون پارتيشن جديدی را انتخاب كرده ايد، وقت آن رسيده است كه سرور را ريستارت كنيد.

 

shutdown -r now

پس از راه اندازی مجدد، زمان آن رسيده است كه ولوم گروپ را بررسی كنيم. دستور زير را وارد كنيد.

 

vgdisplay

همان طور كه مي بينيد ولوم گروپ ما centos است . در ادامه با استفاده از دستورات Physical Volume ، LVM ها را اسكن می كنيم.

 

pvscan

حالا وقت آن رسیده که از dev/sda4/ یک Physical Volume ايجاد كنيم. دستور زیر را برای ایجاد آن، وارد کنید

 

pvcreate /dev/sda4

گاهی هنگام وارد کردن دستور بالا، با خطایی که در زیر مشاهده می کنید ، مواجه می شوید

 

root@radib.com:~# pvcreate /dev/sda4
  Device /dev/sda4 not found (or ignored by filtering).

درصورتی که با ارور فوق مواجه شدید لینوکس را ریست کنید و این دستور را دوباره وارد کنید: pvcreate /dev/sda4

همانطور که بالاتر با زدن دستور vgdisplay مشاهده کردیم، اسم VG ما centos میباشد، یرای شما ممکن است هر اسم دیگری داشته باشد از آن بجای centos در ادامه دستورات استفاده کنید

اكنون وقت اكستند كردن درايو جديد بر حسب نام ولوم گروپ است.

 

vgextend centos /dev/sda4

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

 

root@radib.com:~# vgextend centos /dev/sda4
  Volume group "centos" successfully extended

اكنون دوباره Physical Volume ها را با دستور زیر بررسی می كنيم.

 

pvscan

با پیام زیر مواجه خواهید شد. 

 

root@radib.com:~# pvscan
  PV /dev/sda3   VG centos   lvm2 [50 GiB / 0    free]
  PV /dev/sda4   VG centos   lvm2 [25.00 GiB / 25.00 GiB free]
  Total: 2 [75.75 GiB] / in use: 2 [75.75 GiB] / in no VG: 0 [0   ]

همان طور كه مشاهده می کنید /dev/sda4 با فضای خالی 25 گيگابايت اضافه شده است. در ادامه بايد فضای /dev/sda4 را به درايوی كه فضای خالی كم داشت اضافه كنيم. برای اين كار ابتدا دستور زير را وارد كنيد تا آدرس آن فضا را بدست آوريد.

 

df -h

همان طور كه مشاهده می کنید آدرس درايو / به اين صورت است  (/dev/mapper/centos-root). اكنون وقت آن رسيده است كه اين فضای 25 گيگابايتی را به آدرس پارتيشن روت با كامند زير اضافه كنيم.

 

lvextend -L+25G /dev/mapper/centos-root

اگر از centos نسخه 6 و پایین تر استفاده می کنید ، دستور زير را برای يكی كردن 2 پارتيشن وارد کنید.

 

resize2fs /dev/mapper/centos-root

و اگر از centos نسخه 7 یا بالاتر استفاده می کنید به جای دستور بالا، از کامند زیر استفاده کنید

 

lvdisplay
root@radib.com:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/root

همان طور که مشاهده می کنید مسیر lv برای سیستم ما به صورت /dev/centos/root است. حالا دستور زیر را وارد می کنیم. 

 

xfs_growfs /dev/centos/root

و در نهايت دستور زير را برای مشاهده تغييرات سايز پارتيشن روت می زنيم:

 

df -h

و تمام، به همین راحتی توانستید فضای هارد سرور centos خود را افزایش دهید.(درصورت عدم مشاهده سرور ریبوت شود)

منبع: گروه رادیب

برای خرید انواع سرور مجازی و اختصاصی، وبسایت رادیب را مشاهده کنید

آیا این پاسخ به شما کمک کرد؟ 1041 کاربر این را مفید یافتند (1041 نظرات)