F.3. mdadm কমান্ড ব্যবহার করে RAID-ভিত্তিক এবং Multipath সংগ্রহস্থল কনফিগার করার প্রক্রিয়া

mdadm কমান্ডের সাহায্যে, raidtools প্যাকেজের মধ্যে অন্তর্ভুক্ত টুলগুলির অনুরূপ একাধিক-ডিভাইসসহ দলের কর্ম তত্ত্বাবধান করার জন্য সমস্ত কাজ করা সম্ভব। এই বিভাগে mdadm-র সাহায্যে নিম্নোক্ত কর্ম করার বিষয়ে আলোচনা করা হয়েছে:

F.3.1. mdadm ব্যবহার করে RAID ডিভাইস নির্মাণ করার প্রক্রিয়া

একটি RAID ডিভাইস নির্মাণ করার জন্য, /etc/mdadm.conf ফাইলটি সম্পাদন করে DEVICE এবং ARRAY-র মান সঠিকভাবে উল্লেখ করুন:

DEVICE /dev/sd[abcd]1
ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1

এই উদাহরণে, DEVICE পংক্তিটি, নিম্নোক্ত SCSI ডিভাইসগুলিকে বর্ণনা করার জন্য পারম্পরিক ফাইলের নাম globbing (অতিরিক্ত তথ্যের জন্য glob(7) man পৃষ্ঠা পড়ুন) ব্যবহার করছে:

ARRAY পংক্তিটি একটি RAID ডিভাইস (/dev/md0)-কে উল্লেখ করে, যা DEVICE পংক্তিতে বর্ণিত SCSI ডিভাইসের দ্বারা গঠিত।

কোনো RAID ডিভাইসের নির্মাণ এবং ব্যবহারের পূর্বে, /proc/mdstat ফাইলে কোণ সক্রিয় RAID ডিভাইসের উল্লেখ করা হয় না:

Personalities :
read_ahead not set
Event: 0
unused devices: <none>

এর পরে একটি RAID 0 array নির্মাণ করার জন্য উপরোক্ত কনফিগারেশন এবং mdadm কমান্ডটি ব্যবহার করুন:

mdadm -C /dev/md0 --level=raid0 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 \
/dev/sdd1
Continue creating array? yes
mdadm: array /dev/md0 started.

RAID ডিভাইসটি নির্মিত হওয়ার পরে যে কোনো সময় সেটির অবস্থা সংক্রান্ত তথ্য জানা করা সম্ভব। নিম্নলিখিত উদাহরণে mdadm --detail /dev/md0 কমান্ডের ফলাফল বর্ণিত হয়েছে:

/dev/md0:
Version : 00.90.00
Creation Time : Mon Mar  1 13:49:10 2004
Raid Level : raid0
Array Size : 15621632 (14.90 GiB 15.100 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Mon Mar  1 13:49:10 2004
State : dirty, no-errors
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0

Chunk Size : 64K

Number   Major   Minor   RaidDevice State
0       8        1        0      active sync   /dev/sda1
1       8       17        1      active sync   /dev/sdb1
2       8       33        2      active sync   /dev/sdc1
3       8       49        3      active sync   /dev/sdd1
UUID : 25c0f2a1:e882dfc0:c0fe135e:6940d932
Events : 0.1

F.3.2. mdadm ব্যবহার করে একটি মাল্টিপাথ(multipath) ডিভাইসের নির্মাণ

RAID অ্যারে নির্মাণ করা ব্যতীত mdadm ব্যবহার করে পৃথক SCSI LUN (ডিস্ক ড্রাইভ) অবধি একাধিক I/O পাথ সমর্থনকারী হার্ডওয়েরেও প্রয়োগ করা সম্ভব। মাল্টিপাথ সংগ্রহব্যবস্থার মূল উদ্দেশ্য হল হার্ডওয়ের বিফল হলে অথবা কোনো পাথ পরিপূর্ণ হলেও সুষ্ঠুভাবে ডাটা উপলব্ধ করার ব্যবস্থা করা। এই কনফিগারেশনে যেহেতু একটি SCSI LUN(ডিস্ক ড্রাইভ) ব্যবহারকারী একাধিক পাথ অবস্থিত রয়েছে (প্রত্যেকটি একটি স্বতন্ত্র ভার্চুয়াল কনট্রোলার হিসাবে আচরণ করে), Linux কার্ণেল প্রতিটি শেয়ার করা ড্রাইভকে একবার প্রত্যেকটি পৃথক পাথের "মধ্যে" দিয়ে সনাক্ত করে। অর্থাত্‍‌‌, SCSI LUN (ডিস্ক ড্রাইভ) যা /dev/sda নামে পরিচিত, কনফিগারেশনের উপর নির্ভর করে /dev/sdb, /dev/sdc, ইত্যাদি হিসাবেও ব্যবহার করা সম্ভব।

কোনো I/O পাথ বিফল অথবা পরিপূর্ণ হলে একটি ব্যবহাযোগ্য ডিভাইস উপলব্ধ করার জন্য, mdadm ––level অপশনে একটি অতিরিক্ত পরামিতি যোগ করে। — multipath — নামক পরামিতিটি Linux কার্ণেলের md লেয়ারকে কোনো I/O পাথ ব্যর্থ হলে অন্য একটি পাথের মাধ্যমে I/O অনুরোধ প্রেরণ করার নির্দেশ দেয়।

মাল্টিপাথ (multipath) ডিভাইস নির্মাণ করার জন্য, /etc/mdadm.conf নামক ফাইলটি সম্পাদন করে DEVICE এবং ARRAY পংক্তিগুলি পরিবর্তন করে আপনার হার্ডওয়ের কনফিগারেশন সংক্রান্ত তথ্য উল্লেখ করুন।

উল্লেখ্যউল্লেখ্য
 

পূর্বোক্ত RAID উদাহরণের থেকে ভিন্ন (/etc/mdadm.conf উল্লিখিত প্রত্যেকটি ডিভাইস একটি পৃথক প্রাকৃতিক ডিস্ক ড্রাইভকে চিহ্নিত করে), এই ফাইলের প্রত্যেকটি ডিভাইস একটি শেয়ার করা ডিস্ককে উল্লেখ করে।

মাল্টিপাথ (multipath) ডিভাইস নির্মাণ করার পদ্ধতি RAID ডিভাইস নির্মাণ করার কমান্ডের অনুরূপ; শুধু একটি RAID স্তরের পরামিতির পরিবর্তে multipath পরামিতিটি লেখা প্রয়োজন:

mdadm -C /dev/md0 --level=multipath --raid-devices=4 /dev/sda1 /dev/sdb1  
/dev/sdc1 /dev/sdd1
Continue creating array? yes
mdadm: array /dev/md0 started.

mdadm কমান্ড লাইনের দৈর্ঘ্যের দরুন এটিকে দুটি ভাগে ভাগ করা হয়েছে।

এই উদাহরণে, হার্ডওয়েরে চারটি পৃথক SCSI ডিভাইস হিসাবে পরিচিত একটি SCSI LUN অন্তর্ভুক্ত করা হয়েছে। প্রত্যেকটি ডিভাইস, পৃথক পাথের মাধ্যমে একই সংগ্রহস্থলকে ব্যবহার করছে। মাল্টিপাথ ডিভাইস /dev/md0 নির্মিত হলে, /dev/md0 ব্যবহারকারী সমস্ত I/O কর্ম /dev/sda1, /dev/sdb1, /dev/sdc1, অথবা /dev/sdd1-র দিকে প্রেরণ করা হবে (ঐ সময়ে উপলব্ধ এবং সক্রিয় পাথের উপর নির্ভর করে)।

mdadm --detail /dev/md0 কমান্ডের সাহায্যে /dev/md0 নিরিক্ষণ করে সেটি একটি মাল্টিপাথ (multipath) ডিভাইস কি না তা চিহ্নিত করা সম্ভব:

/dev/md0:
Version : 00.90.00
Creation Time : Tue Mar  2 10:56:37 2004
Raid Level : multipath
Array Size : 3905408 (3.72 GiB 3.100 GB)
Raid Devices : 1
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Tue Mar  2 10:56:37 2004
State : dirty, no-errors
Active Devices : 1
Working Devices : 4
Failed Devices : 0
Spare Devices : 3

Number   Major   Minor   RaidDevice State
0       8       49        0      active sync   /dev/sdd1
1       8       17        1      spare   /dev/sdb1
2       8       33        2      spare   /dev/sdc1
3       8        1        3      spare   /dev/sda1
UUID : 4b564608:fa01c716:550bd8ff:735d92dc
Events : 0.1

mdadm-র একটি বৈশিষ্ট্য হল যে এর সাহায্যে কোনো ডিভাইসকে (RAID অ্যারের সদস্য অথবা মাল্টিপাথ কনফিগারেশনের পাথ হতে পারে) কার্যকরী কনফিগারেশন থেকে সরিয়ে ফেলা সম্ভব। নিম্নলিখিত উদাহরণে, /dev/sda1-কে ত্রুটিপূর্ণ হিসাবে চিহ্নিত করে সেটিকে সরিয়ে পুনরায় কনফিগারেশনে যোগ করা হয়েছে। মাল্টিপাথ কনফিগারেশনের ক্ষেত্রে এই কর্মের জন্য কোনো I/O কাজে প্রভাব পড়বে না:

# mdadm /dev/md0 -f /dev/sda1
mdadm: set /dev/sda1 faulty in /dev/md0
# mdadm /dev/md0 -r /dev/sda1
mdadm: hot removed /dev/sda1
# mdadm /dev/md0 -a /dev/sda1
mdadm: hot added /dev/sda1
#