لینوکس Linux

افزایش سایز دیسک نوع استاندارد لینوکس (غیرLVM)

اگر نوع پارتیشن لینوکس شما از نوع Standard باشد، نمی‌توانید از روش lvm و یا دستورات pvs استفاده کنید.

بدون ریستارت سیستم عامل برای افزایش سایز دیسک نوع استاندارد لینوکس (غیرLVM) مانند sda1 با فایل‌سیستم ext4 یا xfs باید مراحل زیررا انجام دهید

چطور می‌توانم حجم پارتیشن استاندارد را افزایش دهم؟

بعد از اینکه در تنظیمات مجازی‌ساز حجم دیسک را از ۵۰ گیگ به ۱۰۰ گیگ افزایش داده‌اید، باید در سیستم عامل لینوکس هم پارتیشن‌بندی انجام دهید.

در ابتدا مطمئن شوید که پارتیشن شما از نوع LVM نباشد.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs         16G     0   16G   0% /dev
tmpfs            16G  376K   16G   1% /dev/shm
tmpfs            16G  9.0M   16G   1% /run
tmpfs            16G     0   16G   0% /sys/fs/cgroup
*****************************************
/dev/sda1        59G   56G  861M  99% /
*****************************************
/dev/loop0      2.0G   42M  1.8G   3% /tmp

حتی اگر دستور pvs هم وارد کنید، هیچ خروجی مشاهده نمی‌کنید. این نوع سیستم عامل ها از نوع استاندارد پارتیشن‌بندی شده اند.

مرحله اول: شناسایی نام دیسک با lsblk

همانطور که در خروجی دستور df -h مشاهده کردیم، نام دیسک در این لینوکس sda بود. ممکن است در برخی دستگاه‌ها این نام متفاوت باشد. مثل vda یا sdb و …

برای اینکه بفهمیم نام دیسک ما چیست، میتوانیم دستور lsblk را اجرا کنیم:

# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0    7:0    0    2G  0 loop /var/tmp
sda      8:0    0   60G  0 disk 
`-sda1   8:1    0   60G  0 part /
sr0     11:0    1 1024M  0 rom  

همانطور که مشاهده می‌کنید sda تایپ disk دارد.

اگر چند دیسک داشته باشید، sda/sdb/sdc مشاهده خواهید کرد. در صورت مشاهده چندین دیسک در خروجی lsblk به راحتی میتوانید در همان خروجی بفهمید که مثلا part / چه لیبلی دارد. یا اگر /home را می‌خواهید اکستند کنید، میتوانید با تحلیل این خروجی بفهمید که چه لیبلی دارد.

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

لازم است در ابتدا کرنل مقدار جدید سایز را شناسایی کند که به ۲ روش امکان پذیر است.

بدون ریستارت سیستم عامل با دستور زیر میخواهیم سایز جدید sda را شناسایی کنیم:

echo "- - -" | sudo tee /sys/class/block/sda/device/rescan

بعد از اجرای دستور بالا اگر دستور lsblk را اجرا کنید و یا وارد fdisk /dev/sda شوید، مشاهده خواهید کرد که حجم دیسک با سایز جدید نمایش داده می شود.

# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0    7:0    0    2G  0 loop /var/tmp
*********************************
sda      8:0    0  100G  0 disk 
*********************************
`-sda1   8:1    0   60G  0 part /
sr0     11:0    1 1024M  0 rom 

شناسایی سایز جدید با ریستارت سیستم عامل

اگر از روش بالا برای شناسایی دیسک استفاده نکنید، با ریستارت سیستم‌عامل به سادگی کرنل حجم جدید را شناسایی می‌کند.

بعد از ریستارت اگر دستور lsblk را اجرا کنید، مقابل نام دیسک، حجم جدید رویت می‌شود.

مرحله سوم: حذف پارتیشن با fdisk

هرچند در این روش، اطلاعات از دست نمی‌روند، اما لازمه هر عملیاتی در سرورهای حساس، تهیه نسخه پشتیبان است.

پس از تهیه بکاپ، میتوانید دستور زیر را اجرا کنید:

fdisk /dev/sda

کلید p را وارد کنید تا پارتیشن ها پرینت شوند و آنها را مشاهده کنید.

افزایش سایز دیسک نوع استاندارد لینوکس (غیرLVM)

در این لینوکس فقط یک Device بنام sda1 وجود دارد که سایز آن 60G است.

در اکثر لینوکس‌ها تعداد این دیوایس‌ها بیشتر است. معمولا ۳ الی ۴ عدد خروجی مشاهده می‌شود.

کلید d را وارد کنید تا برای حذف اقدام کنید.

اگر پارتیشن وجود داشته باشد، با زدن d بصورت خودکار پارتیشن حذف می‌شود.

اگر چند پارتیشن موجود باشد، باید عدد مربوطه را وارد کنید و اینتر بزنید.

مرحله چهارم: ایجاد پارتیشن با سایز جدید توسط fdisk

حالا با وارد کردن کلید n پارتیشن جدید ایجاد خواهد شد.

از شما Partition type پرسیده می‌شود. همان گزینه پیش فرض را اینتر بزنید.

سپس Partition number پرسیده می شود که آن هم بدون دستکاری اینتر بزنید.

سوال First sector و Last sector را ابدا تغییری ندهید و اینتر بزنید.

اگر سکتور اول دستکاری شود اطلاعات از دست می روند.

افزایش سایز دیسک نوع استاندارد لینوکس (غیرLVM)

مرحله signature به شدت حساس است.

پارتیشن دارای فایل سیستم ext4 است. ممکن است برای شما xfs یا ext3 یا هر چیز دیگری باشد.

تحت هیچ شرایطی نباید فایل سیستم را حذف کنید تا اطلاعات شما از بین نرود.

پاسخ Do you want to remove the signature? [Y]es/[N]o: را باید حتما n بزنید.

امضا یا signature فایل سیستم لینوکس

تنظیمات را با وارد کردن w ذخیره کنید.

تا اینجا ۹۰ درصد تنظیمات افزایش سایز دیسک نوع استاندارد لینوکس (غیرLVM) را انجام داده‌ایم.

مرحله پنجم: افزایش سایز دیسک: مرحله پایانی

در این سناریو سایز دیسک ما از ۶۰ گیگ به ۱۰۰ گیگ ارتقا یافت اما اگر df -h اجرا کنیم، هنوز سایز روت همان ۶۰ گیگ است.

افزایش سایز دیسک

ما می‌خواهیم به /dev/sda1 این حجم اضافه شود.

resize2fs /dev/sda1

اگر با دستور بالا اعمال نشد، دیسک شما از نوع xfs است که باید از دستور زیر استفاده کنید:

xfs_growfs /dev/sda1

شما توانسته‌اید دیسک استاندارد را افزایش حجم دهید.

آموزش کاهش اندازه LVM – چگونه یک پارتیشن LVM را کاهش دهیم

سخن پایانی

در این آموزش به افزایش سایز دیسک نوع استاندارد در لینوکس بدون از دست رفتن اطلاعات و بدون نیاز به ریستارت پرداختیم. اگر لینوکس شما بصورت LVM پارتیشن بندی نشده باشد، هر اقدامی برای شما پر استرس خواهد بود. در این پست یک راه حل امن که بارها در سرور مجازی و سرور اختصاصی لینوکس پروداکشن توسط تیم مدیریت سرور تاد سرور تست کرده ایم را با شما به اشتراک گذاشتیم.

سوالات متداول

منظور از پارتیشن استاندارد در لینوکس چیست؟

این پارتیشن‌ها ساختار سنتی و ساده‌ای دارند و برخلاف فناوری‌های پیشرفته‌تر مانند LVM، اندازه ثابتی دارند و به طور مستقیم روی دیسک ایجاد می‌شوند.

تفاوت پارتیشن استاندارد با پارتیشن LVM چیست؟

پارتیشن استاندارد در لینوکس به پارتیشن‌های اصلی یا منطقی با اندازه ثابت گفته می‌شود که مستقیماً در جدول پارتیشن‌بندی (MBR یا GPT) تعریف شده و برای ذخیره سیستم‌عامل، داده‌ها یا اهداف خاص مانند /boot یا Swap استفاده می‌شوند، اما انعطاف‌پذیری محدودی دارند. در مقابل، LVM (Logical Volume Manager) سیستمی پیشرفته‌تر است که پارتیشن‌ها را به‌صورت منطقی (Logical Volumes) درون گروه‌های حجمی (Volume Groups) مدیریت می‌کند و امکان تغییر اندازه پویا، اضافه کردن دیسک جدید یا ایجاد Snapshot را فراهم می‌کند. برخلاف پارتیشن استاندارد که به ساختار فیزیکی دیسک وابسته است، LVM لایه‌ای انتزاعی ایجاد می‌کند که مدیریت فضای ذخیره‌سازی را انعطاف‌پذیرتر و مناسب برای سیستم‌های پیچیده‌تر می‌سازد، هرچند تنظیم آن پیچیدگی بیشتری دارد.

آیا حذف پارتیشن در fdisk ریسک از دست دادن اطلاعات دارد؟

اگر طبق این آموزش عمل کنید هیچ اطلاعاتی از دست نخواهد رفت و می‌توانید بدون از دست رفتن اطلاعات عملیات افزایش سایز دیسک در پارتیشن استاندارد را انجام دهید. اما در صورتی که تنظیمات اشتباه انجام دهید بله. دستکاری سکتور شروع و یا حذف فایل سیستم در مراحل fdisk می تواند سبب از بین رفتن اطلاعات شود.

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

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

مهرداد تاری

تلاش میکنم مطالبی منتشر کنم که از اعتبار و کیفیت بالایی برخوردار باشند. خواهشمندم در صورت مشاهده اشکال، حتما مرا مطلع سازید. سپاس TARIMEHR

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا