ফেজ ৪ — স্টোরেজ (Storage Fundamentals)#
৭টি লেসন · আনুমানিক ৪ ঘণ্টা ১৫ মিনিট · লেভেল: মধ্যম
ভার্চুয়ালাইজেশনে সবচেয়ে বেশি বাধা আসে স্টোরেজ থেকে। এই ফেজে LVM, ZFS, NFS, Ceph, iSCSI এবং পারফরম্যান্স টিউনিং।
লেসন ১ — LVM: লজিক্যাল ভলিউম ম্যানেজার (৪০ মিনিট)#
সহজ ভাষায়#
LVM প্রক্সমক্সের ডিফল্ট স্টোরেজ। এটি কয়েকটি ডিস্ককে এক পুলে জমা করে, তারপর সেই পুল থেকে ইচ্ছেমতো আকারের ভলিউম কেটে নেয়। চালু অবস্থাতেই আকার বাড়ানো যায়।
চারটি শব্দ#
| শব্দ | মানে |
|---|---|
| PV (Physical Volume) | আসল ডিস্ক বা পার্টিশন (/dev/sda, /dev/nvme0n1) |
| VG (Volume Group) | PV-গুলোর পুল — প্রক্সমক্সে ডিফল্ট নাম pve |
| LV (Logical Volume) | পুল থেকে কাটা ভার্চুয়াল পার্টিশন |
| Thin Pool | thin provisioning — লেখার সময় জায়গা দেয়, আগে নয় |
pvs # ফিজিক্যাল ভলিউম
vgs # ভলিউম গ্রুপ
lvs # লজিক্যাল ভলিউম
lvdisplay # বিস্তারিত
pvcreate /dev/sdb # নতুন ডিস্ক LVM-এর জন্য প্রস্তুত
vgextend pve /dev/sdb # পুলে যোগ
lvcreate -L 200G --thinpool data pve # নতুন thin pool
lvresize -L +20G /dev/pve/vm-100-disk-0 # ডিস্ক বড় করা
# এরপর VM-এর ভেতরে ফাইল সিস্টেমও বড় করতে হবেলেসন ২ — ZFS: সুপারিশ করা স্টোরেজ (৪৫ মিনিট)#
সহজ ভাষায়#
নতুন সেটআপের জন্য প্রক্সমক্স ZFS সুপারিশ করে। ZFS-এর ভেতরেই আছে RAID, কম্প্রেশন, চেকসাম (নীরব ডাটা নষ্ট হওয়া ধরে ফেলে), স্ন্যাপশট ও রেপ্লিকেশন।
# দুইটি ডিস্ক দিয়ে মিরর (RAID-1)
zpool create -f rpool mirror /dev/sdb /dev/sdc
# তিন ডিস্ক দিয়ে RAIDZ (RAID-5-এর মতো)
zpool create datapool raidz /dev/sdb /dev/sdc /dev/sdd
zpool status # পুলের স্বাস্থ্য
zpool iostat -v 2 # প্রতি ২ সেকেন্ডে I/O
zfs set compression=lz4 rpool # পুল বানানোর পরপরই দিন
zpool set autotrim=on rpool # SSD-এর জন্য
zfs create rpool/data
zfs list
# স্ন্যাপশট পাঠিয়ে ব্যাকআপ
zfs snapshot rpool/data@backup-20260518
zfs send rpool/data@backup-20260518 | ssh backup-server zfs recv tank/proxmoxটিপ: পুল তৈরির সাথে সাথেই
compression=lz4চালু করুন। এটি স্বচ্ছ, দ্রুত এবং সাধারণত ২০–৪০% জায়গা বাঁচায়।
লেসন ৩ — NFS ও শেয়ার্ড স্টোরেজ (৩০ মিনিট)#
সহজ ভাষায়#
NFS দিয়ে একাধিক প্রক্সমক্স নোড একই স্টোরেজ ব্যবহার করতে পারে। লাইভ মাইগ্রেশন ও ক্লাস্টার স্টোরেজের জন্য এটি একটি সহজ সমাধান।
# NFS সার্ভারে
apt install nfs-kernel-server
mkdir -p /exports/proxmox
echo "/exports/proxmox 192.168.10.0/24(rw,sync,no_subtree_check,no_root_squash)" >> /etc/exports
exportfs -ra
systemctl enable --now nfs-server
# প্রক্সমক্স নোডে
mount -t nfs 192.168.10.200:/exports/proxmox /mnt/pve/nfs-storage
pvesm add nfs nfs-backups \
--server 192.168.10.200 \
--export /exports/proxmox \
--content backup,isoলেসন ৪ — Ceph: বিতরণকৃত স্টোরেজ (৪০ মিনিট)#
সহজ ভাষায়#
Ceph অনেক সার্ভারের ডিস্ক মিলিয়ে একটি বড় স্টোরেজ বানায়। কোনো একক ব্যর্থতার বিন্দু থাকে না, আর নোড যোগ করলেই ক্ষমতা বাড়ে। প্রক্সমক্সে এটি ভেতরেই যুক্ত আছে।
Ceph-এর অংশগুলো#
| অংশ | কাজ |
|---|---|
| MON (Monitor) | ক্লাস্টারের মানচিত্র রাখে — বিজোড় সংখ্যায় লাগে (৩, ৫, ৭) |
| OSD | প্রতি ডিস্কে একটি — আসল ডাটা রাখে |
| MGR (Manager) | ড্যাশবোর্ড ও মেট্রিক |
| MDS | শুধু CephFS-এর জন্য |
pveceph init --network 10.10.10.0/24
pveceph mon create # প্রতিটি নোডে
pveceph osd create /dev/sdb # প্রতিটি ডিস্কের জন্য
pveceph pool create vm-store --add_storages true
ceph status
ceph osd tree
ceph dfসতর্কতা: Ceph-এর জন্য কমপক্ষে ৩টি নোড লাগে। দুই নোডের Ceph ক্লাস্টার কখনো বানাবেন না — একটি নোড পড়ে গেলে quorum থাকবে না।
লেসন ৫ — ডিস্ক, RAID ও SMART মনিটরিং (৩৫ মিনিট)#
ডিস্কের ধরন#
| ধরন | লেটেন্সি | কোথায় ব্যবহার |
|---|---|---|
| HDD | ~৫ ms | বাল্ক ব্যাকআপ — VM ডিস্কের জন্য নয় |
| SATA/SAS SSD | ~০.১ ms | সাধারণ VM স্টোরেজ |
| NVMe | ~০.০২ ms | দ্রুত VM স্টোরেজ, ZFS SLOG/L2ARC |
RAID-এর উপায়#
| উপায় | মন্তব্য |
|---|---|
| ZFS RAID (সেরা) | RAIDZ1=RAID5, RAIDZ2=RAID6, Mirror=RAID1 — সাথে চেকসাম |
| mdadm | কাজ করে, কিন্তু চেকসাম নেই |
| LVM RAID | কম নমনীয় |
| হার্ডওয়্যার RAID | এড়িয়ে চলুন — ডিস্কের এরর ZFS থেকে লুকিয়ে ফেলে |
SMART দিয়ে ডিস্কের স্বাস্থ্য#
apt install smartmontools
smartctl -t short /dev/sda # ছোট পরীক্ষা চালান
smartctl -a /dev/sda # ফলাফল দেখুন
systemctl enable --now smartd # স্বয়ংক্রিয় নজরদারিযে মানগুলো দেখবেন:
| মান | কী বোঝায় |
|---|---|
| Reallocated_Sector_Ct | নষ্ট সেক্টর — ০ থাকা উচিত |
| Current_Pending_Sector | পড়া যাচ্ছে না — সাথে সাথে দেখুন |
| Offline_Uncorrectable | ঠিক করা যায়নি |
| Power_On_Hours | ডিস্কের বয়স |
| Temperature_Celsius | SSD < ৬০°C, HDD < ৫০°C |
টিপ: ZFS ডিস্কের স্বাস্থ্য সবচেয়ে ভালো দেখায়।
zpool status -vপ্রতিটি ডিস্কের এরর গোনে। মাসে একবারzfs scrubচালান — এটি সব ডাটার চেকসাম মিলিয়ে দেখে।
লেসন ৬ — iSCSI: নেটওয়ার্কে ব্লক স্টোরেজ (৩০ মিনিট)#
সহজ ভাষায়#
iSCSI নেটওয়ার্কের উপর দিয়ে ব্লক ডিভাইস দেয়। NAS (TrueNAS, Synology) বা SAN থেকে প্রক্সমক্স VM ডিস্কের জন্য স্টোরেজ নিতে পারে।
| শব্দ | মানে |
|---|---|
| Target | যে সার্ভার স্টোরেজ দেয় (NAS/SAN) |
| Initiator | যে সংযোগ করে (প্রক্সমক্স নোড) |
| IQN | অনন্য নাম — iqn.2024-01.com.example:storage |
| LUN | নির্দিষ্ট একটি স্টোরেজ ইউনিট |
apt install open-iscsi
iscsiadm -m discovery -t sendtargets -p 192.168.10.200
iscsiadm -m node -T iqn.2024-01.com.nas:storage1 -p 192.168.10.200 --login
iscsiadm -m session
lsblk # নতুন ডিভাইস দেখা যাবে
pvesm add iscsi iscsi-nas \
--portal 192.168.10.200 \
--target iqn.2024-01.com.nas:storage1 \
--content imagesসতর্কতা: iSCSI-এর জন্য আলাদা নেটওয়ার্ক (আলাদা NIC বা VLAN) ব্যবহার করুন। VM ট্রাফিকের সাথে একই NIC-এ রাখলে লেটেন্সি অস্থির হয়ে যায়।
লেসন ৭ — স্টোরেজ পারফরম্যান্স টিউনিং (৩৫ মিনিট)#
ZFS ARC (RAM ক্যাশ) সীমিত করা#
ZFS ডিফল্টে হোস্টের অর্ধেক RAM ক্যাশ হিসেবে নিয়ে নেয়। প্রক্সমক্সে এটি সীমিত করতে হয়, নাহলে VM-এর জন্য RAM কমে যায়।
arc_summary | head -30
# ARC সর্বোচ্চ ৮ GB
echo "options zfs zfs_arc_max=8589934592" > /etc/modprobe.d/zfs.conf
update-initramfs -u
# রিবুট ছাড়াই এখনই
echo 8589934592 > /sys/module/zfs/parameters/zfs_arc_max
# NVMe-কে দ্বিতীয় স্তরের ক্যাশ বানানো
zpool add rpool cache /dev/nvme1n1I/O শিডিউলার#
cat /sys/block/sda/queue/scheduler
# NVMe → none (কার্নেল নিজেই সামলায়)
# SSD → mq-deadline বা none
# HDD → mq-deadline বা bfq
echo mq-deadline > /sys/block/sda/queue/schedulerস্থায়ী করতে /etc/udev/rules.d/60-schedulers.rules ফাইলে rule লিখুন।
VM ডিস্ক ক্যাশ মোড#
| মোড | মানে |
|---|---|
none (ডিফল্ট) | হোস্ট ক্যাশ করে না — সবচেয়ে নিরাপদ। ZFS-এর সাথে এটাই ব্যবহার করুন |
writeback | হোস্ট লেখা ক্যাশ করে — দ্রুত, কিন্তু হোস্ট ক্র্যাশ করলে ডাটা যেতে পারে |
writethrough | শুধু পড়া ক্যাশ করে — মাঝামাঝি |
qm set 100 --virtio0 local-lvm:vm-100-disk-0,cache=none
# VM-এর ভেতরে গতি মাপা
apt install fio
fio --name=randread --ioengine=libaio --iodepth=64 \
--rw=randread --bs=4k --size=4G --numjobs=4 \
--runtime=60 --group_reportingফেজ ৪ শেষে আপনি যা পারবেন#
- LVM-এর গঠন বোঝা ও ডিস্ক যোগ করা
- ZFS মিরর/RAIDZ পুল বানানো ও কম্প্রেশন চালু করা
- NFS শেয়ার্ড স্টোরেজ যুক্ত করা
- Ceph-এর অংশগুলো চেনা ও পুল বানানো
- SMART দিয়ে ডিস্কের স্বাস্থ্য দেখা
- iSCSI স্টোরেজ যুক্ত করা
- ARC, শিডিউলার ও ক্যাশ মোড টিউন করা
পরবর্তী: ফেজ ৫ — প্রক্সমক্স নেটওয়ার্কিং