Storage
Block, File, Object — তিন ধরনের storage ও কোথায় কোনটা।
আপনার ফোনে ৫টি জিনিস সংরক্ষণ আছে — অ্যাপ, ছবি, ভিডিও, document, music। সবগুলো "storage"-এ। কিন্তু operating system এদের আলাদা ভাবে handle করে। Cloud-এ এই বিভাজন আরও স্পষ্ট — block, file, এবং object storage।
HDD vs SSD
HDD (Hard Disk Drive)
- Spinning magnetic disk
- সস্তা, বড় capacity
- Sequential read fast, random slow
- ~100 IOPS
- Cold/archive storage-এ
SSD (Solid State Drive)
- Flash memory chip
- দামি কিন্তু দ্রুত
- Random access অনেক fast
- 10,000+ IOPS
- Modern server-এ default
RAID (Redundant Array of Independent Disks)
একাধিক disk-কে combine করে performance ও/বা redundancy পাওয়া।
- RAID 0 (Striping): দুই disk-এ data split — fast কিন্তু redundancy নেই।
- RAID 1 (Mirroring): দুই disk-এ same copy — fail-safe কিন্তু capacity অর্ধেক।
- RAID 5: Stripe + parity — এক disk fail করলেও recover।
- RAID 6: Two parity — দুই disk fail-tolerant।
- RAID 10 (1+0): Mirror + stripe — সর্বোচ্চ performance + redundancy।
Block Storage
Storage-কে fixed-size block-এ ভাগ করা হয় (যেমন 4KB)। OS এই block-গুলো অর্গানাইজ করে file system হিসেবে।
Properties
- সবচেয়ে নিম্ন স্তর
- OS direct access করে
- সাধারণত network-এ attach (SAN, iSCSI)
- একটিমাত্র server-এ mount
- Performance high — DB-এর জন্য আদর্শ
উদাহরণ
- AWS EBS (Elastic Block Store)
- Azure Disk
- GCP Persistent Disk
কখন ব্যবহার করবেন?
Database (MySQL, PostgreSQL), VM disk, transactional workload।
File Storage
Hierarchical — folder/subfolder/file। Network protocol দিয়ে multiple server থেকে access।
Properties
- Familiar tree structure (যেমন Windows Explorer)
- Multiple client একসাথে access (NFS, SMB)
- POSIX file system semantics
- Metadata: permission, owner, timestamp
উদাহরণ
- AWS EFS (Elastic File System)
- NetApp, Isilon
- Linux NFS, Windows SMB
কখন ব্যবহার করবেন?
Shared file (team-এর document), legacy app, content management।
Object Storage
Flat structure — প্রতিটি object-এর একটি unique key এবং metadata। File system নেই, hierarchy নেই — bucket-এ object।
Properties
- HTTP/REST API দিয়ে access
- প্রায় unlimited scale (পেটাবাইট+)
- Geographic redundancy built-in
- সস্তা per GB
- সরাসরি modify করা যায় না — re-upload
- Versioning support
উদাহরণ
- AWS S3 (সবচেয়ে বিখ্যাত)
- Google Cloud Storage
- Azure Blob Storage
- MinIO (self-hosted)
কখন ব্যবহার করবেন?
Image/video upload, backup, archive, log file, static website asset, ML training data।
তিনটির তুলনা
Block
- Lowest level, fastest
- একটিমাত্র server
- DB, VM-এ
- সবচেয়ে দামি
File
- Tree structure, sharable
- Multi-server access
- Shared documents
- মাঝামাঝি দাম
Object
- Flat, key-based
- HTTP API
- Unlimited scale
- Cheapest, slowest
Cloud Storage Tiers
Cost optimize করতে cloud provider tier offer করে:
- Hot/Standard: ঘন ঘন access — সবচেয়ে দামি কিন্তু fast।
- Warm/Infrequent Access: মাসে কয়েকবার — কম দাম, retrieval cost।
- Cold/Archive (Glacier): বছরে কয়েকবার — খুব সস্তা, retrieve-এ ঘণ্টা/মিনিট লাগে।
বাস্তব উদাহরণ
- Instagram: ছবি/ভিডিও S3-এ (object); metadata DB (block-backed)।
- Netflix: Master video file S3, edge cache CDN।
- Dropbox: File chunks S3-এ (encrypted)।
- Banking DB: SSD block storage RAID 10।
সাধারণ ভুল ধারণা
- "S3-এ DB রাখা যায়": না — object storage random write-এর জন্য না।
- "Object storage সবসময় cheap": Egress (download) bandwidth charge অনেক হতে পারে।
- "RAID = backup": না — RAID hardware redundancy দেয়, backup আলাদা।
Best Practices
- DB → SSD block storage।
- User upload (image/video) → object storage।
- Static website asset → object + CDN।
- Backup → object archive tier।
- Versioning enable — accidental delete থেকে বাঁচতে।
- Lifecycle policy — পুরাতন data auto-archive।
📌 চ্যাপ্টার সারমর্ম
- Block = lowest level, DB-এর জন্য (AWS EBS)।
- File = shared tree structure (NFS, EFS)।
- Object = HTTP API, infinite scale (S3)।
- SSD modern default; HDD এখনো archive-এ।
- RAID redundancy দেয়, কিন্তু backup-এর বিকল্প না।