পার্টিশন এবং ফাইল সিস্টেম
VPS-এ ডিস্ক পার্টিশনিং কীভাবে কাজ করে, LVM সাধারণ পার্টিশন থেকে কীভাবে আলাদা, অতিরিক্ত ডিরেক্টরি কীভাবে মাউন্ট করবেন, এবং মেশিন বুট হওয়ার জন্য fstab-এ কী লিখবেন।
আপডেট: ২৩ আগস্ট, ২০২৬
ভার্চুয়াল মেশিনের ডিস্ক সিস্টেমে /dev/sda হিসেবে দেখা যায়। লেআউট নির্ভর করে আপনি কোন ইমেজ বেছে নিচ্ছেন তার উপর: Debian এবং Ubuntu সাধারণত একটি একক রুট পার্টিশন দিয়ে ইনস্টল হয়, আর AlmaLinux ব্যবহার করে LVM। কিছু এক্সটেন্ড করার প্রয়োজন হওয়ার আগেই আপনার লেআউট জানা দরকার।
এখন আপনার যা আছে
lsblk -f
df -hT
sudo fdisk -l /dev/sda
sudo blkid
lsblk -f সবচেয়ে কাজের: এটি এক স্ক্রিনেই ডিভাইস ট্রি, ফাইল সিস্টেম, লেবেল এবং মাউন্ট পয়েন্ট দেখায়।
যদি আউটপুটে vg-root-এর মতো লাইন এবং lvm টাইপ থাকে, তাহলে আপনার LVM আছে। তখন এগুলো কাজে আসবে:
sudo pvs
sudo vgs
sudo lvs
প্লেইন পার্টিশন নাকি LVM
প্লেইন পার্টিশন বেশি সহজ: একটি পার্টিশন — একটি ফাইল সিস্টেম। ডিস্কের শুধু শেষ পার্টিশনটাই এক্সটেন্ড করা যায়, এবং তখনই যদি তার পরে ফাঁকা জায়গা থাকে।
LVM একটি লেয়ার যোগ করে: ফিজিক্যাল ভলিউম, ভলিউম গ্রুপ, লজিক্যাল ভলিউম। আপনি একাধিক ভলিউম কেটে নিতে পারেন, যেকোনো ক্রমে সেগুলো এক্সটেন্ড করতে পারেন, এবং লেআউট নতুন করে না সাজিয়েই জায়গা যোগ করতে পারেন। এর বিনিময়ে একটি বাড়তি লেয়ার মনে রাখতে হয় রিকভারির সময়।
একটি ডিস্কসহ একটি মেশিনের জন্য পার্থক্যটা ছোট। অকারণে লেআউট নতুন করে করবেন না: রুট সরানো একটা অপারেশন যেখানে সিস্টেম হারানোর সত্যিকারের ঝুঁকি আছে।
ফাইল সিস্টেম
| সিস্টেম | ডিফল্ট অবস্থান | বৈশিষ্ট্য |
|---|---|---|
| ext4 | Debian, Ubuntu | পরীক্ষিত, অনলাইনে এক্সটেন্ড হয়, আনমাউন্ট অবস্থায় সংকুচিত হয় |
| xfs | AlmaLinux, CentOS Stream | বড় ফাইলে দ্রুত, অনলাইনে এক্সটেন্ড হয়, সংকুচিত হয় না |
ব্যবহারিক সিদ্ধান্ত: যদি নমনীয়তার কথা ভাবেন, ext4-তেই থাকুন। VPS-এ যেকোনো অবস্থাতেই পার্টিশন সংকুচিত করার দরকার প্রায় পড়বে না — আপনার প্ল্যানের সাথে মেশিনের ডিস্কও সংকুচিত হয় না।
ডিস্ক বাড়ানোর পর এক্সটেন্ড করা
sudo growpart /dev/sda 1
sudo resize2fs /dev/sda1
LVM-এর জন্য:
sudo growpart /dev/sda 3
sudo pvresize /dev/sda3
sudo lvextend -l +100%FREE /dev/mapper/vg-root
sudo resize2fs /dev/mapper/vg-root # xfs_growfs / for XFS
দুটি অপারেশনই চলমান সিস্টেমে করা হয়। বড় টিয়ারে যাওয়ার বিস্তারিত জানতে — ডিস্কটি এখন অনেক ছোট হয়ে গেছে।
growpartবাparted-এ পার্টিশন নম্বরে ভুল হলে পার্টিশন টেবিল নষ্ট হয়, আর মেশিন বুট হওয়া বন্ধ করে দেয়। যেকোনো লেআউট পরিবর্তনের আগে:sudo sfdisk -d /dev/sda > /root/parts.txtসেভ করুন এবং ডেটা ব্যাকআপ নতুন আছে কিনা নিশ্চিত করুন।
মাউন্টিং এবং fstab
স্থায়ী মাউন্ট পয়েন্ট বর্ণনা করা হয় /etc/fstab-এ। ডিভাইসের নাম নয়, UUID ব্যবহার করুন:
sudo blkid /dev/sda1
UUID=1a2b3c4d-... /var/lib/postgresql ext4 defaults,noatime 0 2
রিবুট করার আগে যাচাই করা বাধ্যতামূলক:
sudo mount -a
sudo findmnt --verify
fstab-এ ভুল থাকলে বুটের সময় মেশিন একটি ইমার্জেন্সি কনসোলে আটকে যায়। এমন হলে রেসকিউ ডিস্ক সাহায্য করবে: মেশিন SystemRescue-তে রিবুট হয়, পাসওয়ার্ড ছাড়াই রুট লগইন, ডিস্ক /dev/sda হিসেবে দেখা যায় — আপনি পার্টিশন মাউন্ট করুন, fstab এডিট করুন, এবং স্বাভাবিক বুট মোডে ফিরে যান।
Swap
একটি swap ফাইল স্বাভাবিক নিয়মেই তৈরি হয়:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab
মেমরি শেষ হয়ে গেলে কোনো প্রসেস হঠাৎ মেরে ফেলা থেকে swap বাঁচায়, কিন্তু অতিরিক্ত swapping ডিস্কের গতি-তে ঠেকে যায় এবং মেশিনকে খুব ধীর করে দেয়। সার্ভিসগুলোর রিসোর্স চাহিদা সীমিত করা বেশি বুদ্ধিমানের কাজ — দেখুন রিসোর্স লিমিট।
সাধারণ ভুল
mount -aদিয়েfstabএডিট যাচাই করেননি। বুট ভেঙে যায়, আর প্যানেলের কনসোল দিয়ে সমস্যা সমাধান করতে হয়।- ডেটার উপরে একটি ডিরেক্টরি মাউন্ট করেছেন। পুরনো কনটেন্ট কোথাও যায়নি, কিন্তু অদৃশ্য হয়ে গেছে — আনমাউন্ট করে যাচাই করুন।
noatimeসেট করেননি। ছোট বিষয়, কিন্তু লোডেড মেশিনে প্রতিটি ফাইল রিডে বাড়তি রাইট টের পাওয়া যায়।