NVMe তে RAID অ্যারে

NVMe তে RAID অ্যারে
এই নিবন্ধে আমরা RAID অ্যারেগুলি সংগঠিত করার বিভিন্ন উপায় সম্পর্কে কথা বলব, এবং NVMe সমর্থন সহ প্রথম হার্ডওয়্যার RAID কন্ট্রোলারগুলির মধ্যে একটি দেখাব৷

সার্ভার বিভাগে RAID প্রযুক্তির বিভিন্ন ধরনের অ্যাপ্লিকেশন পাওয়া যায়। ক্লায়েন্ট সেগমেন্টে, দুটি ডিস্কে শুধুমাত্র সফ্টওয়্যার RAID0 বা RAID1 প্রায়শই ব্যবহৃত হয়।

এই নিবন্ধটি RAID প্রযুক্তির একটি সংক্ষিপ্ত ওভারভিউ প্রদান করবে, কিভাবে তিনটি ভিন্ন টুল ব্যবহার করে RAID অ্যারে তৈরি করতে হয় তার একটি সংক্ষিপ্ত টিউটোরিয়াল এবং প্রতিটি পদ্ধতি ব্যবহার করে ভার্চুয়াল ডিস্কের কর্মক্ষমতার তুলনা প্রদান করবে।

রেড কি?

উইকিপিডিয়া RAID প্রযুক্তির একটি ব্যাপক সংজ্ঞা দেয়:

RAID- র (ইংল্যান্ড। ইনডিপেন্ডেন্ট ডিস্কের রিডানড্যান্ট অ্যারে - স্বাধীন (স্বাধীন) ডিস্কের অপ্রয়োজনীয় অ্যারে) - ত্রুটি সহনশীলতা এবং কর্মক্ষমতা বাড়াতে একটি লজিক্যাল মডিউলে বেশ কয়েকটি ফিজিক্যাল ডিস্ক ডিভাইসকে একত্রিত করার জন্য ডেটা ভার্চুয়ালাইজেশন প্রযুক্তি।

ডিস্ক অ্যারেগুলির কনফিগারেশন এবং ব্যবহৃত প্রযুক্তিগুলি নির্বাচিতদের উপর নির্ভর করে RAID স্তর. RAID স্তরগুলি স্পেসিফিকেশনে প্রমিত করা হয় সাধারণ RAID ডিস্ক ডেটা বিন্যাস. এটি অনেক RAID স্তর বর্ণনা করে, তবে সবচেয়ে সাধারণ হল RAID0, RAID1, RAID5 এবং RAID6।

RAID0অথবা ফিতে, একটি RAID স্তর যা একটি লজিক্যাল ড্রাইভে দুই বা ততোধিক ফিজিক্যাল ড্রাইভকে একত্রিত করে। লজিক্যাল ডিস্কের ভলিউম অ্যারেতে অন্তর্ভুক্ত ফিজিক্যাল ডিস্কের ভলিউমের সমষ্টির সমান। এই RAID স্তরে কোন অপ্রয়োজনীয়তা নেই, এবং একটি ড্রাইভের ব্যর্থতার ফলে ভার্চুয়াল ডিস্কের সমস্ত ডেটা হারিয়ে যেতে পারে।

উচ্চতা RAID1অথবা আয়না, দুই বা ততোধিক ডিস্কে ডেটার অভিন্ন কপি তৈরি করে। ভার্চুয়াল ডিস্কের আকার ফিজিক্যাল ডিস্কের ন্যূনতম আকারের চেয়ে বেশি নয়। RAID1 ভার্চুয়াল ডিস্কের ডেটা পাওয়া যাবে যতক্ষণ পর্যন্ত অ্যারে থেকে অন্তত একটি ফিজিক্যাল ডিস্ক চালু থাকে। RAID1 ব্যবহার করা রিডানড্যান্সি যোগ করে, তবে এটি একটি বরং ব্যয়বহুল সমাধান, যেহেতু দুটি বা ততোধিক ডিস্কের অ্যারেতে শুধুমাত্র একটির ক্ষমতা উপলব্ধ।

উচ্চতা RAID5 উচ্চ খরচের সমস্যা সমাধান করে। RAID5 স্তর সহ একটি অ্যারে তৈরি করতে, আপনার কমপক্ষে 3টি ডিস্ক প্রয়োজন এবং অ্যারেটি একটি ডিস্কের ব্যর্থতার জন্য প্রতিরোধী। RAID5-এ ডেটা চেকসাম সহ ব্লকগুলিতে সংরক্ষণ করা হয়। ডেটা ডিস্ক এবং চেকসাম ডিস্কের মধ্যে কোন কঠোর বিভাজন নেই। RAID5-এ চেকসামগুলি হল N-1 ব্লকগুলিতে প্রয়োগ করা XOR অপারেশনের ফলাফল, প্রতিটি আলাদা ডিস্ক থেকে নেওয়া হয়েছে।

যদিও RAID অ্যারেগুলি অপ্রয়োজনীয়তা বাড়ায় এবং অপ্রয়োজনীয়তা প্রদান করে, তারা ব্যাকআপ সংরক্ষণের জন্য উপযুক্ত নয়।

RAID অ্যারেগুলির প্রকারগুলির মধ্যে একটি সংক্ষিপ্ত ভ্রমণের পরে, আপনি ডিভাইস এবং প্রোগ্রামগুলিতে যেতে পারেন যা আপনাকে ডিস্ক অ্যারেগুলিকে একত্রিত করতে এবং ব্যবহার করতে দেয়৷

RAID কন্ট্রোলারের প্রকারভেদ

RAID অ্যারে তৈরি এবং ব্যবহার করার দুটি উপায় রয়েছে: হার্ডওয়্যার এবং সফ্টওয়্যার। আমরা নিম্নলিখিত সমাধানগুলি বিবেচনা করব:

  • লিনাক্স সফটওয়্যার RAID।
  • CPU-তে Intel® ভার্চুয়াল RAID।
  • LSI MegaRAID 9460-8i.

মনে রাখবেন যে Intel® সমাধানটি একটি চিপসেটে চলে, যা এটি একটি হার্ডওয়্যার বা সফ্টওয়্যার সমাধান কিনা তা নিয়ে প্রশ্ন তোলে৷ উদাহরণস্বরূপ, VMWare ESXi হাইপারভাইজার VROC সফ্টওয়্যার বিবেচনা করে এবং এটি আনুষ্ঠানিকভাবে সমর্থন করে না।

লিনাক্স সফটওয়্যার RAID

Linux OS পরিবারে সফ্টওয়্যার RAID অ্যারেগুলি ক্লায়েন্ট এবং সার্ভার উভয় বিভাগেই মোটামুটি সাধারণ সমাধান। একটি অ্যারে তৈরি করতে আপনার যা দরকার তা হল mdadm ইউটিলিটি এবং কয়েকটি ব্লক ডিভাইস। লিনাক্স সফ্টওয়্যার RAID যে ড্রাইভগুলি ব্যবহার করে তাতে কেবলমাত্র প্রয়োজন হল সিস্টেমে অ্যাক্সেসযোগ্য একটি ব্লক ডিভাইস হওয়া।

সরঞ্জাম এবং সফ্টওয়্যারের জন্য খরচের অনুপস্থিতি এই পদ্ধতির একটি সুস্পষ্ট সুবিধা। লিনাক্স সফ্টওয়্যার RAID CPU সময়ের খরচে ডিস্ক অ্যারে সংগঠিত করে। সমর্থিত RAID স্তরের তালিকা এবং বর্তমান ডিস্ক অ্যারেগুলির অবস্থা mdstat ফাইলে দেখা যেতে পারে, যা procfs রুটে অবস্থিত:

root@grindelwald:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] 
unused devices: <none>

উপযুক্ত কার্নেল মডিউল সংযোগ করে RAID স্তরের জন্য সমর্থন যোগ করা হয়, উদাহরণস্বরূপ:

root@grindelwald:~# modprobe raid456
root@grindelwald:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] 
unused devices: <none>

ডিস্ক অ্যারে সহ সমস্ত অপারেশন mdadm কমান্ড লাইন ইউটিলিটির মাধ্যমে সঞ্চালিত হয়। ডিস্ক অ্যারে একটি কমান্ডে একত্রিত হয়:

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/nvme1n1 /dev/nvme2n1

এই কমান্ডটি কার্যকর করার পরে, /dev/md0 ব্লক ডিভাইসটি সিস্টেমে উপস্থিত হবে, যা আপনাকে একটি ভার্চুয়াল ডিস্ক হিসাবে উপস্থাপন করে।

CPU-তে Intel® ভার্চুয়াল RAID

NVMe তে RAID অ্যারেIntel® VROC স্ট্যান্ডার্ড হার্ডওয়্যার কী
Intel® Virtual RAID On CPU (VROC) হল Intel® চিপসেটের উপর ভিত্তি করে RAID অ্যারে তৈরি করার জন্য একটি হার্ডওয়্যার এবং সফ্টওয়্যার প্রযুক্তি। এই প্রযুক্তিটি প্রাথমিকভাবে মাদারবোর্ডের জন্য উপলব্ধ যা Intel® Xeon® স্কেলেবল প্রসেসর সমর্থন করে। ডিফল্টরূপে, VROC উপলব্ধ নয়। এটি সক্রিয় করতে, আপনাকে একটি VROC হার্ডওয়্যার লাইসেন্স কী ইনস্টল করতে হবে৷

স্ট্যান্ডার্ড VROC লাইসেন্স আপনাকে 0, 1 এবং 10 RAID লেভেল সহ ডিস্ক অ্যারে তৈরি করতে দেয়। প্রিমিয়াম সংস্করণ RAID5 সমর্থন সহ এই তালিকাটি প্রসারিত করে।

আধুনিক মাদারবোর্ডে Intel® VROC প্রযুক্তি Intel® ভলিউম ম্যানেজমেন্ট ডিভাইস (VMD) এর সাথে একত্রে কাজ করে, যা NVMe ড্রাইভের জন্য হট-সোয়াপ ক্ষমতা প্রদান করে।

NVMe তে RAID অ্যারেIntel® VROC স্ট্যান্ডার্ড লাইসেন্স সার্ভার বুট হলে সেটআপ ইউটিলিটির মাধ্যমে অ্যারেগুলি কনফিগার করা হয়। ট্যাবে অগ্রসর CPU আইটেমে Intel® ভার্চুয়াল RAID প্রদর্শিত হয়, যেখানে আপনি ডিস্ক অ্যারে কনফিগার করতে পারেন।

NVMe তে RAID অ্যারেদুটি ড্রাইভে একটি RAID1 অ্যারে তৈরি করা হচ্ছে
Intel® VROC টেকনোলজির নিজস্ব আস্তানা রয়েছে। VROC ব্যবহার করে নির্মিত ডিস্ক অ্যারেগুলি Linux সফ্টওয়্যার RAID এর সাথে সামঞ্জস্যপূর্ণ। এর মানে হল যে অ্যারেগুলির অবস্থা /proc/mdstat-এ নিরীক্ষণ করা যেতে পারে এবং mdadm এর মাধ্যমে পরিচালনা করা যেতে পারে। এই "বৈশিষ্ট্য" আনুষ্ঠানিকভাবে ইন্টেল দ্বারা সমর্থিত। সেটআপ ইউটিলিটিতে RAID1 একত্রিত করার পরে, আপনি OS এ ড্রাইভের সিঙ্ক্রোনাইজেশন পর্যবেক্ষণ করতে পারেন:

root@grindelwald:~# cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md126 : active raid1 nvme2n1[1] nvme1n1[0]
      1855832064 blocks super external:/md127/0 [2/2] [UU]
      [>....................]  resync =  1.3% (24207232/1855832064) finish=148.2min speed=205933K/sec
      
md127 : inactive nvme1n1[1](S) nvme2n1[0](S)
      10402 blocks super external:imsm
       
unused devices: <none>

মনে রাখবেন যে আপনি mdadm ব্যবহার করে VROC এ অ্যারে একত্র করতে পারবেন না (একত্রিত অ্যারেগুলি হবে Linux SW RAID), তবে আপনি তাদের মধ্যে ডিস্ক পরিবর্তন করতে পারেন এবং অ্যারেগুলিকে বিচ্ছিন্ন করতে পারেন।

LSI MegaRAID 9460-8i

NVMe তে RAID অ্যারেLSI MegaRAID 9460-8i কন্ট্রোলারের উপস্থিতি
RAID কন্ট্রোলার একটি স্বতন্ত্র হার্ডওয়্যার সমাধান। কন্ট্রোলার শুধুমাত্র সরাসরি এটির সাথে সংযুক্ত ড্রাইভের সাথে কাজ করে। এই RAID কন্ট্রোলার 24টি NVMe ড্রাইভ পর্যন্ত সমর্থন করে। এটি NVMe সমর্থন যা এই নিয়ামকটিকে অন্য অনেকের থেকে আলাদা করে।

NVMe তে RAID অ্যারেহার্ডওয়্যার কন্ট্রোলারের প্রধান মেনু
UEFI মোড ব্যবহার করার সময়, কন্ট্রোলার সেটিংস সেটআপ ইউটিলিটিতে একত্রিত হয়। VROC এর তুলনায়, হার্ডওয়্যার কন্ট্রোলার মেনু অনেক বেশি জটিল দেখায়।

NVMe তে RAID অ্যারেদুটি ডিস্কে RAID1 তৈরি করা হচ্ছে
একটি হার্ডওয়্যার কন্ট্রোলারে কীভাবে ডিস্ক অ্যারে কনফিগার করবেন তা ব্যাখ্যা করা একটি বরং সূক্ষ্ম বিষয় এবং এটি একটি পূর্ণাঙ্গ নিবন্ধের কারণ হতে পারে। এখানে আমরা কেবল ডিফল্ট সেটিংস সহ RAID0 এবং RAID1 তৈরি করতে নিজেদেরকে সীমাবদ্ধ করব।

হার্ডওয়্যার কন্ট্রোলারের সাথে সংযুক্ত ডিস্কগুলি অপারেটিং সিস্টেমে দৃশ্যমান নয়। পরিবর্তে, কন্ট্রোলার সমস্ত RAID অ্যারেকে SAS ড্রাইভ হিসাবে "মাস্ক" করে। নিয়ামকের সাথে সংযুক্ত ড্রাইভগুলি, কিন্তু ডিস্ক অ্যারের অংশ নয়, OS দ্বারা অ্যাক্সেসযোগ্য হবে না৷

root@grindelwald:~# smartctl -i /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-48-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               AVAGO
Product:              MR9460-8i
Revision:             5.14
Compliance:           SPC-3
User Capacity:        1,999,844,147,200 bytes [1.99 TB]
Logical block size:   512 bytes
Rotation Rate:        Solid State Device
Logical Unit id:      0x000000000000000000000000000000
Serial number:        00000000000000000000000000000000
Device type:          disk
Local Time is:        Sun Oct 11 16:27:59 2020 MSK
SMART support is:     Unavailable - device lacks SMART capability.

SAS ড্রাইভের ছদ্মবেশে থাকা সত্ত্বেও, NVMe অ্যারেগুলি PCIe গতিতে কাজ করবে। যাইহোক, এই বৈশিষ্ট্যটি আপনাকে উত্তরাধিকারে NVMe থেকে বুট করার অনুমতি দেয়।

পরীক্ষা স্ট্যান্ড

ডিস্ক অ্যারে সংগঠিত করার প্রতিটি পদ্ধতির নিজস্ব শারীরিক সুবিধা এবং অসুবিধা রয়েছে। কিন্তু ডিস্ক অ্যারেগুলির সাথে কাজ করার সময় একটি কর্মক্ষমতা পার্থক্য আছে?

সর্বাধিক ন্যায্যতা অর্জনের জন্য, সমস্ত পরীক্ষা একই সার্ভারে পরিচালিত হবে। এর কনফিগারেশন:

  • 2x Intel® Xeon® 6240;
  • 12x DDR4-2666 16 GB;
  • LSI MegaRAID 9460-8i;
  • Intel® VROC স্ট্যান্ডার্ড হার্ডওয়্যার কী;
  • 4x Intel® SSD DC P4510 U.2 2TB;
  • 1x Samsung 970 EVO Plus M.2 500GB।

পরীক্ষার ইউনিটগুলি হল P4510, যার একটি অর্ধেক মাদারবোর্ডের সাথে সংযুক্ত এবং বাকি অর্ধেকটি RAID কন্ট্রোলারের সাথে। M.2 উবুন্টু 20.04 চালাচ্ছে এবং পরীক্ষাগুলি fio সংস্করণ 3.16 ব্যবহার করে চালানো হবে।

পরীক্ষামূলক

প্রথমত, ডিস্কের সাথে কাজ করার সময় বিলম্ব পরীক্ষা করা যাক। পরীক্ষাটি এক থ্রেডে সম্পাদিত হয়, ব্লকের আকার 4 KB। প্রতিটি পরীক্ষা 5 মিনিট স্থায়ী হয়। শুরু করার আগে, সংশ্লিষ্ট ব্লক ডিভাইসটি I/O সময়সূচী হিসাবে কোনটিতে সেট করা নেই। fio কমান্ড এই মত দেখায়:

fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio  --iodepth=1 --loops=1000 --runtime=300  --rw=<mode> --filename=<blkdev>

fio ফলাফল থেকে আমরা 99.00% ক্ল্যাট নিই। ফলাফল নীচের টেবিলে দেখানো হয়।

এলোমেলো পড়া, μs
র্যান্ডম রেকর্ডিং, μs

ডিস্ক
112
78

লিনাক্স SW RAID, RAID0
113
45

VROC, RAID0
112
46

LSI, RAID0
122
63

লিনাক্স SW RAID, RAID1
113
48

VROC, RAID1
113
45

LSI, RAID1
128
89

ডেটা অ্যাক্সেস করার সময় বিলম্ব ছাড়াও, আমি ভার্চুয়াল ড্রাইভের কার্যকারিতা দেখতে চাই এবং একটি শারীরিক ডিস্কের কর্মক্ষমতার সাথে তাদের তুলনা করতে চাই। fio চালানোর জন্য কমান্ড:

fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio  --loops=1000 --runtime=300  --iodepth=<threads> --rw=<mode> --filename=<blkdev>

কর্মক্ষমতা I/O অপারেশন পরিপ্রেক্ষিতে পরিমাপ করা হয়. ফলাফল নীচের টেবিলে উপস্থাপন করা হয়.

র্যান্ডম রিড 1 থ্রেড, IOPS
র্যান্ডম লিখুন 1 থ্রেড, IOPS
র্যান্ডম রিড 128 থ্রেড, IOPS
র্যান্ডম লিখুন 128 থ্রেড, IOPS

ডিস্ক
11300
40700
453000
105000

লিনাক্স SW RAID, RAID0
11200
52000
429000
232000

VROC, RAID0
11200
52300
441000
162000

LSI, RAID0
10900
44200
311000
160000

লিনাক্স SW RAID, RAID1
10000
48600
395000
147000

VROC, RAID1
10000
54400
378000
244000

LSI, RAID1
11000
34300
229000
248000

এটি দেখা সহজ যে একটি হার্ডওয়্যার কন্ট্রোলার ব্যবহার করার ফলে সফ্টওয়্যার সমাধানগুলির তুলনায় লেটেন্সি বৃদ্ধি পায় এবং পারফরম্যান্স হিট হয়৷

উপসংহার

দুটি ডিস্ক থেকে ডিস্ক অ্যারে তৈরি করতে হার্ডওয়্যার সমাধান ব্যবহার করা অযৌক্তিক দেখায়। যাইহোক, এমন কিছু কাজ আছে যেখানে RAID কন্ট্রোলারের ব্যবহার ন্যায়সঙ্গত। NVMe ইন্টারফেস সমর্থনকারী কন্ট্রোলারের আবির্ভাবের সাথে, ব্যবহারকারীদের তাদের প্রকল্পগুলিতে দ্রুত SSD ব্যবহার করার সুযোগ রয়েছে।

NVMe তে RAID অ্যারে

শুধুমাত্র নিবন্ধিত ব্যবহারকারীরা জরিপে অংশগ্রহণ করতে পারবেন। সাইন ইন করুনকরুন।

আপনি RAID সমাধান ব্যবহার করছেন?

  • 29,6%হ্যাঁ, হার্ডওয়্যার সমাধান 32

  • 50,0%হ্যাঁ, সফ্টওয়্যার সমাধান54

  • 16,7%No18

  • 3,7%কোন RAID প্রয়োজন নেই4

108 জন ব্যবহারকারী ভোট দিয়েছেন। 14 জন ব্যবহারকারী বিরত ছিলেন।

উত্স: www.habr.com

একটি মন্তব্য জুড়ুন