Featured image of post تغییر سایز دیسک سرور به صورت لایو

تغییر سایز دیسک سرور به صورت لایو

مشکل؟

اخیرا چند سرور دیتابیس داشتیم که به شدت زیر بار بود مانیتورینگ نشون میداد که دیسک تقریبا به بالای 90 درصد رسیده و به زودی(تقریبا فردا) کل دیسک پر می‌شد، و این باعث می‌شد کل دیتابیس‌ها کرش کنند.

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

توی این پست، این راه رو تکرار می‌کنیم.

اینو هم باید بگم ک این پست برای سرورهایی هست که دیسکشون از نوع LVM ساخته نشده.


I. Expand physically

مرحله‌ی اول باید دیسک فیزیکی رو بیشتر کنید، مثلا اگه از esxi استفاده می‌کنید، اونجا فضای بیشتری به دیسک VM اختصاص می‌دیم.

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

1
echo 1 > /sys/class/block/sdX/device/rescan

بجای sdX دیسک خودتون رو قرار بدین.

بعد از اینکه این دستور رو زدین، باید ببینید که آیا دیسک جدید حافظه‌ی بیشتر رو شناخته یا نه.

1
lsblk

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

1
2
3
4
sda       8:0    0  2.3T  0 disk 
├─sda1    8:1    0  2T    0 part /
├─sda14   8:14   0    4M  0 part 
└─sda15   8:15   0  106M  0 part /boot/efi

II. Partioning Volumes

حالا کافیه حافظه‌ی جدیدی که اضافه کردیم و بلا استفاده‌ست رو روی یکی از پارتیشن‌های موجود اضافه کنیم. برای اینکار کافیه اون پارتیشن رو انتخاب کنیم، و پارتیشن رو پاک کنیم! اما، قبل از اینکه دستور پاک کردن رو روی دیسک بنویسیم، دستور ساخت پارتیشن جدید رو وارد می‌کنیم.

توی مثال، من می‌خام که پارتیشن /dev/sda1 رو افزایش بدم.

1
sudo fdisk /dev/sda

خیلی دقت کنید، نباید سیگنیچر پارتیشن رو حذف کنید و همچنین قبل از ساخت پارتیشن، نباید دستور رایت رو بزنید.

این دستور‌ها داخل fdisk زده میشه

  1. اول با زدن دستور p کل پارتیشن تیبل رو پرینت می‌کنیم.

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

  1. بعد با زدن دستور d اون پارتیشن که میخایم رو پاک می‌کنیم برای من پارتیشن اول یا همون sda1 هست.

  2. مرحله‌ی بعد با زدن دستور n یک پارتیشن جدید ایجاد می‌کنیم، و کل فضای دیسک رو بهش اختصاص می‌دیم.

  3. حالا مجددا دستور p رو می‌زنیم، تا ببنینم پارتیشن‌ها رو درست انتخاب کرده‌ایم یا نه.

  4. اگر پارتیشن‌ها درست بود با دستور w کلش رو داخل دیسک رایت می‌کنیم.


III. Tell The OS

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

1
sudo resize2fs /dev/sda1

بعد از اتمام اینکار، با df -h چک کنید که فضای پارتیشن بیشتر شده باشه.

Licensed under CC BY-NC-SA 4.0
قدرت گرفته از Hugo
قالب Stack ساخته شده توسط Jimmy