- چطور بهصورت ایمن و مرحلهبهمرحله فضای هارد یک سرور لینوکسی را افزایش دهم؟
- مقدمات و نکات ایمنی قبل از افزایش فضای هارد
- بررسی سناریوها — LVM vs Non-LVM و فایلسیستمها
- گامبهگام: افزایش فضای هارد در سیستمهای LVM
- گامبهگام: افزایش فضای هارد در سیستمهای Non-LVM (پارتیشن استاندارد)
- مثال عملی: گسترش root در اوبونتو در ابری
- نکات مربوط به فایلسیستم رمزنگاریشده (LUKS)
- نکات پرفورمنس و امنیت بعد از گسترش دیسک
- خطاهای رایج و راهحلها
- موارد مخصوص کاربردها — ترید، گیم، AI، رندرینگ
- جمعبندی و توصیه پایانی
- سؤالات متداول
چطور بهصورت ایمن و مرحلهبهمرحله فضای هارد یک سرور لینوکسی را افزایش دهم؟
افزایش فضای هارد یا extend در لینوکس یکی از عملیات رایج برای مدیران سیستم، DevOps و کاربران سرور است—بهویژه وقتی حجم دیتابیس، لاگها، یا دادههای مدلهای هوش مصنوعی رشد میکند. در این راهنما قدمبهقدم و مبتنی بر خط فرمان توضیح میدهیم چگونه در محیطهای مختلف (VM در دیتاسنتر ابری، سرور اختصاصی یا ماشین مجازی محلی) فضای دیسک را افزایش دهید.
مقدمات و نکات ایمنی قبل از افزایش فضای هارد
قبل از هر تغییر روی پارتیشن یا LVM، بکاپ کامل یا snapshot بگیرید تا در صورت بروز خطا بتوانید سیستم را بازیابی کنید.
“همیشه قبل از تغییر در جدول پارتیشن، LVM یا فایلسیستم یک بکاپ معتبر و قابل بازیابی داشته باشید.”
دستورهای مهم برای بررسی اولیه:
df -hlsblk -fblkidfdisk -lیاlsblk -o NAME,SIZE,TYPE,MOUNTPOINTبرای شناسایی سختافزار
در محیطهای ابری ابتدا حجم دیسک را از پنل کنترل یا API افزایش دهید، سپس داخل سیستمعامل عملیات مربوطه را انجام دهید.
بررسی سناریوها — LVM vs Non-LVM و فایلسیستمها
سازماندهی سناریوها کمک میکند روش درست را انتخاب کنید:
- سناریو 1: دیسک افزایش پیدا کرده و از LVM استفاده شده است (معمولترین حالت در سرورهای ابری).
- سناریو 2: دیسک افزایش یافته اما بدون LVM (پارتیشن root با فایلسیستم ext4 یا XFS).
- سناریو 3: افزایش حجم یک پارتیشن جداگانه (مثلاً /var یا /home).
نکته: فایلسیستمهای رایج شامل ext4، XFS و btrfs هستند. ext4 را میتوان offline یا online resize کرد؛ XFS تنها گسترش (grow) را در حالت mounted پشتیبانی میکند.
گامبهگام: افزایش فضای هارد در سیستمهای LVM
1. افزایش اندازه دیسک از پنل (برای VM)
در پنل ابری یا مجازیساز اندازه دیسک را افزایش دهید (مثلاً 50G -> 100G). برای ماشین محلی با QEMU از دستور زیر استفاده کنید:
qemu-img resize disk.img +50G2. شناسایی دستگاه جدید
برای دیدن وضعیت فعلی دستگاهها از lsblk استفاده کنید. مثال:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 100G 0 disk
└─vda1 252:1 0 40G 0 part /3. اسکن مجدد دستگاه در لینوکس
برای SCSI/virtio:
echo 1 | sudo tee /sys/class/block/vda/device/rescan
# یا
sudo partprobe /dev/vda4. pvresize برای PV که روی whole-disk است
اگر PV روی whole-disk است (/dev/vdb) کافی است:
sudo pvresize /dev/vdb
sudo pvs
sudo vgs5. گسترش پارتیشن pv (مثلاً /dev/vda1) با growpart
وقتی PV داخل یک پارتیشن است، از growpart استفاده کنید:
sudo apt install cloud-guest-utils
sudo growpart /dev/vda 1
sudo pvresize /dev/vda1
sudo lvdisplay
sudo lvextend -l +100%FREE /dev/mapper/vg0-root
# برای ext4:
sudo resize2fs /dev/mapper/vg0-root
# برای XFS:
sudo xfs_growfs /6. دستورات کلیدی برای مدیریت LVM
فرمانهای پرکاربرد:
sudo pvs; sudo vgs; sudo lvs
sudo lvextend -r -l +100%FREE /dev/vg0/lv_root
# گزینه -r فایلسیستم را بهصورت خودکار resize میکندگامبهگام: افزایش فضای هارد در سیستمهای Non-LVM (پارتیشن استاندارد)
1. افزایش حجم دیسک از پنل و اسکن داخل سیستم
همانند حالت LVM ابتدا حجم را از پنل افزایش دهید و سپس rescan انجام دهید.
2. استفاده از growpart و resize2fs برای ext4
برای پارتیشن root یا هر پارتیشن ext4:
sudo growpart /dev/vda 1
sudo resize2fs /dev/vda1مثال برای پارتیشن دوم:
sudo growpart /dev/vda 2
sudo resize2fs /dev/vda2توجه: اگر resize2fs نیاز به unmount داشته باشد، از حالت single-user یا Live CD استفاده کنید.
3. گسترش XFS
برای XFS که تنها در حالت mounted گسترشپذیر است:
sudo growpart /dev/vda 1
sudo xfs_growfs /mountpoint
# معمولاً:
sudo xfs_growfs /4. تغییر جدول پارتیشن با parted/fdisk (با احتیاط)
اگر نیاز به حذف و ایجاد مجدد پارتیشن با اندازه جدید دارید، حتماً start sector را حفظ کنید و از پشتیبان جدول پارتیشن استفاده کنید.
sudo parted /dev/vda
# در داخل parted:
print
rm 1
mkpart primary ext4 START 100%مثال عملی: گسترش root در اوبونتو در ابری
مراحل نمونه:
- در پنل: افزایش دیسک از 40G به 80G.
- داخل VM اجرا کنید:
sudo lsblk
sudo growpart /dev/vda 1
# اگر LVM:
sudo pvresize /dev/vda1
sudo lvextend -r -l +100%FREE /dev/mapper/ubuntu--vg-root
# یا برای non-LVM:
sudo resize2fs /dev/vda1
# تایید:
df -hنکات مربوط به فایلسیستم رمزنگاریشده (LUKS)
اگر پارتیشن رمزنگاری شده دارید، ابتدا کانتینر رمزنگاری را باز کنید و سپس عملیات resize را انجام دهید.
sudo cryptsetup status cryptroot
sudo cryptsetup luksOpen /dev/vda1 cryptroot
# سپس:
sudo pvresize /dev/mapper/cryptroot
# یا برای فایلسیستم:
sudo resize2fs /dev/mapper/cryptrootدر صورت استفاده از LVM داخل LUKS، pvresize روی /dev/mapper/cryptroot انجام شود و سپس lvextend.
نکات پرفورمنس و امنیت بعد از گسترش دیسک
پرفورمنس: برای SSD/NVMe از mount options مانند noatime و nodiratime استفاده کنید و در صورت نیاز discard برای TRIM در نظر بگیرید.
پایداری: در /etc/fstab از UUID استفاده کنید تا تغییر در نام دستگاه باعث مشکل نشود:
sudo blkidمانیتورینگ و Alert: نصب و پیکربندی Prometheus node_exporter یا ابزارهای مانیتورینگ برای هشدار نسبت به فضای آزاد توصیه میشود.
“محدود کردن دسترسی SSH، استفاده از کلیدهای SSH و نگهداری بکاپهای منظم از بهترین روشهای امنیتی پس از تغییرات دیسک است.”
خطاهای رایج و راهحلها
خطا: “device does not contain a recognized partition table” — بررسی کنید rescan انجام شده و جدول پارتیشن صحیح است (fdisk -l).
خطا: resize2fs میگوید filesystem is mounted and needs to be checked — اجرای e2fsck -f /dev/… در حالت unmounted یا single-user.
XFS: مطمئن شوید mountpoint صحیح را به xfs_growfs میدهید؛ اشتباه بودن mountpoint باعث خطا میشود.
موارد مخصوص کاربردها — ترید، گیم، AI، رندرینگ
سرور VPS مخصوص ترید: نیاز به فضای لاگ و دیتای بکتست دارد؛ توصیه به استفاده از SSD و Snapshot روزانه است.
سرور گیمینگ: فضای بازیها و فایلهای temporary بزرگ است؛ استفاده از NVMe برای کاهش I/O latency توصیه میشود.
GPU / AI: مدلها و دیتاستها میتوانند دهها یا صدها گیگابایت باشند؛ پیشنهاد افزودن دیسک جداگانه و mount به /data یا استفاده از Thin LVM.
رندرینگ: نگهداری temp و cache در دیسک مجزا برای جلوگیری از پر شدن root اهمیت دارد.
جمعبندی و توصیه پایانی
مراحل کلی: افزایش حجم از پنل → rescan در سیستم → growpart/parted → pvresize یا resize2fs/xfs_growfs → lvextend (در صورت LVM).
همیشه بکاپ بگیرید و در صورت تردید از پشتیبانی شرکت یا تکنسین کمک بگیرید. استفاده از snapshot پیش از تغییر میتواند ریسک را بهطور قابلتوجهی کاهش دهد.








