File System & Disk Management Interview Questions
ফাইল সিস্টেম এবং ডিস্ক ম্যানেজমেন্ট ডেটা পারসিস্টেন্স এবং পারফরম্যান্সের জন্য ক্রিটিক্যাল। এখানে ইন্টারভিউয়ের জন্য গুরুত্বপূর্ণ প্রশ্নগুলো দেওয়া হলো।
Core Concepts
Q1: Inode (Index Node) কী? এতে কী কী তথ্য থাকে?
Answer: Inode হলো একটি ডেটা স্ট্রাকচার যা Unix-like ফাইল সিস্টেমে প্রতিটি ফাইলের মেটাডেটা স্টোর করে। ফাইলের ডেটা ব্লকের অ্যাড্রেস এখানে থাকে। Contains:
- ফাইল সাইজ
- পারমিশন (Read/Write/Execute)
- ওনার এবং গ্রুপ ইনফো
- টাইমস্ট্যাম্প (Creation, Modification, Access)
- Direct & Indirect Pointers: ডেটা ব্লকগুলোর লোকেশন। Note: Inode-এ ফাইলের নাম থাকে না। ফাইলের নাম ডিরেক্টরি এন্ট্রিতে থাকে।
Q2: Hard Link এবং Soft Link (Symbolic Link)-এর পার্থক্য কী?
Answer:
- Hard Link: এটি অরিজিনাল ফাইলের Inode-কেই পয়েন্ট করে।
- অরিজিনাল ফাইল ডিলিট করলেও হার্ড লিংক দিয়ে ডেটা এক্সেস করা যায় (যতক্ষণ না Link Count ০ হয়)।
- এটি ফাইল সিস্টেম বা পার্টিশনের বাইরে ক্রস করতে পারে না।
- Soft Link: এটি একটি নতুন ফাইল যার নিজস্ব Inode আছে, এবং এটি অরিজিনাল ফাইলের পাথ (Path) স্টোর করে।
- অরিজিনাল ফাইল ডিলিট করলে সফট লিংক ব্রোকেন (Dangling) হয়ে যায়।
- এটি ফাইল সিস্টেম ক্রস করতে পারে।
Q3: Journaling File System (e.g., ext4, NTFS) কী? এটি কেন দরকার?
Answer: Journaling File System ডিস্কের মেটাডেটা বা ডেটা আপডেট করার আগে একটি লগ (Journal) ফাইলে লিখে রাখে। Why needed: যদি ফাইল রাইট করার সময় সিস্টেম ক্র্যাশ (Power failure) হয়, তবে রিবুট করার পর OS পুরো ডিস্ক স্ক্যান (fsck) না করে শুধু জার্নাল চেক করে ইনকমপ্লিট ট্রানজ্যাকশনগুলো রিপ্লে (Redo) বা রোলব্যাক (Undo) করতে পারে। এটি Data Consistency এবং Quick Recovery নিশ্চিত করে।
Q4: Internal এবং External Fragmentation-এর পার্থক্য কী?
Answer:
- Internal Fragmentation: যখন একটি ব্লকের পুরোটা ব্যবহৃত হয় না। (যেমন: ৪KB ব্লকে ১KB ফাইল রাখলে ৩KB নষ্ট হয়)। পেজিং (Paging)-এ এটি হয়।
- External Fragmentation: যখন মেমোরিতে মোট পর্যাপ্ত খালি জায়গা আছে, কিন্তু তা কন্টিনুয়াস (contiguous) না হওয়ায় বড় প্রসেস লোড করা যাচ্ছে না। সেগমেন্টেশন (Segmentation)-এ এটি হয়।
Disk Management & Scheduling
Q5: Disk Scheduling Algorithms (FCFS, SSTF, SCAN) তুলনা করুন।
Answer:
- FCFS (First-Come, First-Served): সহজ, কিন্তু পারফরম্যান্স খারাপ হতে পারে (Head movement বেশি)।
- SSTF (Shortest Seek Time First): বর্তমান হেড পজিশন থেকে সবচেয়ে কাছের রিকোয়েস্ট আগে সার্ভ করে। পারফরম্যান্স ভালো, কিন্তু দূরের রিকোয়েস্টগুলো Starvation-এ পড়তে পারে।
- SCAN (Elevator Algorithm): ডিস্ক হেড এক প্রান্ত থেকে অন্য প্রান্তে যায় এবং পথে সব রিকোয়েস্ট সার্ভ করে। এটি ফেয়ার এবং স্টারভেশন কমায়।
Q6: RAID (Redundant Array of Independent Disks) লেভেলগুলো কী কী?
Answer:
- RAID 0 (Striping): ডেটা ভাগ করে একাধিক ডিস্কে রাখা হয়। Fast, কিন্তু কোনো রিডানডেন্সি নেই (এক ডিস্ক গেলেই সব শেষ)।
- RAID 1 (Mirroring): একই ডেটা দুই ডিস্কে কপি করা হয়। High reliability, কিন্তু স্টোরেজ অর্ধেক হয়ে যায়।
- RAID 5 (Striping with Parity): ডেটা এবং প্যারিটি বিট সব ডিস্কে ছড়িয়ে রাখা হয়। একটি ডিস্ক ফেইল করলে প্যারিটি দিয়ে ডেটা রিকভার করা যায়। (ব্যালেন্সড পারফরম্যান্স ও কস্ট)।
Scenario-Based Questions
Scenario 1: Deleting Open File
Q: লিনাক্সে একটি লগ ফাইল app.log অনেক বড় হয়ে গেছে এবং ডিস্ক ফুল। আপনি rm app.log দিয়ে ফাইলটি ডিলিট করলেন, কিন্তু df -h দেখাচ্ছে স্পেস খালি হয়নি। কেন? Answer: কারণ কোনো একটি প্রসেস (যেমন ওয়েব সার্ভার) এখনো ফাইলটি ওপেন করে রেখেছে।
- লিনাক্সে ইনোড ডিলিট হয় না যতক্ষণ না Link Count ০ হয় এবং কোনো প্রসেস ফাইলটি ওপেন না রাখে।
- Solution: প্রসেসটিকে রিস্টার্ট করতে হবে অথবা প্রসেসকে সিগন্যাল দিতে হবে ফাইল ক্লোজ করার জন্য। অথবা ফাইল ডিলিট না করে
> app.logবাtruncateকমান্ড দিয়ে সাইজ ০ করে দেওয়া যেত।
Scenario 2: Slow Database I/O
Q: আপনার ডাটাবেস সার্ভারে I/O খুব স্লো। আপনি দেখলেন প্রচুর ছোট ছোট র্যান্ডম রিড/রাইট হচ্ছে। আপনি হার্ডওয়্যার লেভেলে কী পরিবর্তন আনবেন? Answer:
- HDD to SSD: SSD-তে কোনো মুভিং পার্টস নেই, তাই Seek Time প্রায় শূন্য। র্যান্ডম I/O-তে SSD HDD-র চেয়ে ১০০ গুণ ফাস্ট।
- RAID 10: RAID 1+0 (Mirroring + Striping) ব্যবহার করলে হাই পারফরম্যান্স এবং রিডানডেন্সি দুটোই পাওয়া যাবে।
Scenario 3: FAT32 Limitation
Q: আপনি একটি ১৬GB পেনড্রাইভ FAT32 ফরম্যাটে ফরম্যাট করেছেন। আপনি এতে একটি ৫GB মুভি ফাইল কপি করতে পারছেন না কেন? Answer: FAT32 ফাইল সিস্টেমের সীমাবদ্ধতা হলো এটি সর্বোচ্চ ৪GB (4GB - 1 Byte) সাইজের সিঙ্গেল ফাইল সাপোর্ট করে। Solution: পেনড্রাইভটি NTFS বা exFAT-এ ফরম্যাট করতে হবে।