Original Title: Reliable, Parallel Storage Architecture: RAID & Beyond
Source: www.cs.cmu.edu
Document Type: Textbook / Educational Material
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original material for complete content.

ស្ថាបត្យកម្មផ្ទុកទិន្នន័យស្របគ្នា និងអាចទុកចិត្តបាន៖ RAID និងលើសពីនេះ

ចំណងជើងដើម៖ Reliable, Parallel Storage Architecture: RAID & Beyond

អ្នកនិពន្ធ៖ Garth Gibson (Carnegie Mellon University)

ឆ្នាំបោះពុម្ព៖ 1995 ISCA Reliable, Parallel Storage Tutorial

វិស័យសិក្សា៖ Computer Science

១. សេចក្តីសង្ខេប (Overview)

ប្រធានបទ (Topic)៖ ឯកសារនេះដោះស្រាយពីបញ្ហាប្រឈមក្នុងដំណើរការនៃប្រព័ន្ធផ្ទុកទិន្នន័យ RAID ជាពិសេសការធ្លាក់ចុះល្បឿនពេលសរសេរទិន្នន័យតូចៗ (Small-write penalty) ក្នុង RAID 5 និងការថយចុះដំណើរការយ៉ាងខ្លាំងនៅពេលមានថាសរឹងខូច។ វាក៏ឆ្លើយតបទៅនឹងគម្លាតដែលចេះតែកើនឡើងរវាងទំហំផ្ទុក និងល្បឿននៃការចូលប្រើប្រាស់ទិន្នន័យនៃថាសរឹងផងដែរ។

រចនាសម្ព័ន្ធ (Structure)៖ បទបង្ហាញនេះធ្វើការវាយតម្លៃលើបច្ចេកវិទ្យាថាសរឹង កម្រិត RAID ផ្សេងៗ និងស្នើឡើងនូវស្ថាបត្យកម្មថ្មីៗដើម្បីបង្កើនប្រសិទ្ធភាពនៃប្រព័ន្ធផ្ទុកទិន្នន័យ។

ចំណុចសំខាន់ៗ (Key Takeaways)៖

២. គោលបំណងសិក្សា (Learning Objectives)

បន្ទាប់ពីអានឯកសារនេះ អ្នកគួរអាច៖

  1. ស្វែងយល់ពីមូលដ្ឋានគ្រឹះនៃបច្ចេកវិទ្យា RAID និងកម្រិតផ្សេងៗរបស់វា (RAID Levels 1, 3, 5) ព្រមទាំងអត្ថប្រយោជន៍ និងចំណុចខ្សោយរបស់កម្រិតនីមួយៗ។
  2. វិភាគពីនិន្នាការនៃបច្ចេកវិទ្យាថាសរឹង (Magnetic disk trends) និងគម្លាតរវាងទំហំផ្ទុក និងល្បឿនដំណើរការក្នុងការបញ្ជូនទិន្នន័យ។
  3. សិក្សាពីដំណោះស្រាយចំពោះបញ្ហានៃការសរសេរទិន្នន័យតូចៗ (Small-write problem) តាមរយៈការប្រើប្រាស់បច្ចេកទេសដូចជា Parity Logging និង Writeback Caching។
  4. វាយតម្លៃពីប្រព័ន្ធការពារភាពរអាក់រអួល និងការសង្គ្រោះទិន្នន័យនៅពេលមានបញ្ហា (Fault tolerance and online recovery) នៅក្នុងបណ្ដាញថាសរឹង (Disk arrays)។

ឯកសារនេះបង្ហាញពីការវិវឌ្ឍនៃស្ថាបត្យកម្មប្រព័ន្ធផ្ទុកទិន្នន័យ ជាពិសេសផ្តោតលើបច្ចេកវិទ្យា RAID (Redundant Array of Independent Disks) និងដំណោះស្រាយចំពោះបញ្ហាគម្លាតនៃការអនុវត្តរវាងស៊ីភីយូ (CPU) និងថាសរឹង។ វាគ្របដណ្តប់លើមូលដ្ឋានគ្រឹះនៃ RAID ការវាយតម្លៃលើភាពគួរឱ្យទុកចិត្ត (Reliability) និងយុទ្ធសាស្រ្តក្នុងការដោះស្រាយបញ្ហាយឺតយ៉ាវពេលសរសេរទិន្នន័យតូចៗ ដើម្បីធានាបាននូវការផ្ទុកទិន្នន័យប្រកបដោយសុវត្ថិភាពនិងល្បឿនលឿន។

៣. គោលគំនិតសំខាន់ៗ (Key Concepts)

គោលគំនិត (Concept) ការពន្យល់ (Explanation) ឧទាហរណ៍ (Example)
Data Striping
ការបំបែកទិន្នន័យ (Data Striping)
ជាបច្ចេកទេសបែងចែកទិន្នន័យជាចំណែកតូចៗ ហើយរក្សាទុកវានៅលើថាសរឹង (Disks) ជាច្រើនក្នុងពេលតែមួយ ដើម្បីបង្កើនល្បឿនក្នុងការអាននិងសរសេរ ព្រមទាំងជួយសម្រួលបន្ទុកការងារឱ្យមានតុល្យភាព។ ប្រតិបត្តិការអានឬសរសេរឯកសារតែមួយ អាចប្រព្រឹត្តទៅស្របគ្នានៅលើថាសរឹងច្រើនក្នុងពេលតែមួយ។ ការផ្ទុកឯកសារវីដេអូធំមួយ ដោយបំបែកវាទៅដាក់លើថាសរឹងចំនួន៤ផ្សេងគ្នា ធ្វើឱ្យការទាញយកវីដេអូនោះមកបង្ហាញវិញមានល្បឿនលឿនជាងមុន៤ដង ដោយសារថាសរឹងទាំង៤ធ្វើការអានទិន្នន័យព្រមៗគ្នា។
Parity and RAID 5
បច្ចេកទេស Parity ក្នុង RAID 5
Parity គឺជាកូដបន្ថែមដែលគណនាចេញពីទិន្នន័យដើម ដែលជួយការពារការបាត់បង់ទិន្នន័យនៅពេលមានថាសរឹងណាមួយខូច។ ក្នុង RAID 5, ទិន្នន័យ Parity ត្រូវបានចែកចាយពាសពេញគ្រប់ថាសរឹងទាំងអស់ ដែលជួយសន្សំសំចៃទំហំផ្ទុកជាងការចម្លងទុកទាំងស្រុង (Mirroring ឬ RAID 1) តែនៅតែផ្តល់នូវសុវត្ថិភាពទិន្នន័យ។ ប្រសិនបើថាសរឹងទី១ខូច ប្រព័ន្ធអាចប្រើប្រាស់ទិន្នន័យដែលនៅសល់លើថាសរឹងផ្សេងទៀត និងទិន្នន័យ Parity (គណនាតាមរយៈប្រតិបត្តិការកុំព្យូទ័រ XOR) ដើម្បីទាញយកទិន្នន័យដែលបាត់បង់មកវិញបានដោយស្វ័យប្រវត្តិ ដោយមិនធ្វើឱ្យបាត់បង់ឯកសារឡើយ។
The Small-Write Problem
បញ្ហានៃការសរសេរទិន្នន័យតូចៗ (Small-Write Problem)
នៅក្នុងប្រព័ន្ធ RAID 5 ការសរសេរទិន្នន័យតូចៗថ្មីមួយចូលទៅក្នុងប្រព័ន្ធ ទាមទារឱ្យមានដំណើរការច្រើនដំណាក់កាល គឺត្រូវអានទិន្នន័យចាស់ អាន Parity ចាស់ សរសេរទិន្នន័យថ្មី និងសរសេរ Parity ថ្មី ដែលការងារទាំងអស់នេះប្រើប្រាស់ Disk Access ដល់ទៅ៤ដង ធ្វើឱ្យប្រព័ន្ធដើរយឺតយ៉ាងខ្លាំង។ នៅក្នុងប្រព័ន្ធគ្រប់គ្រងទិន្នន័យ (Database) របស់ធនាគារ រាល់ការកត់ត្រាប្រតិបត្តិការផ្ទេរប្រាក់តូចៗតែមួយដង ធ្វើឱ្យប្រព័ន្ធ RAID 5 ត្រូវធ្វើការអាននិងសរសេរកែប្រែ Parity ជាន់គ្នាច្រើនដង នាំឱ្យមានភាពយឺតយ៉ាវ (Bottleneck)។
Parity Logging
ការកត់ត្រា Parity (Parity Logging)
ជាបច្ចេកទេសមួយដើម្បីដោះស្រាយបញ្ហា Small-Write ខាងលើ ដោយវាធ្វើការប្រមូលផ្តុំរាល់បម្រែបម្រួលនៃ Parity ទុកសិន មុននឹងធ្វើការកត់ត្រាបញ្ចូលគ្នា (Reintegration) ទៅក្នុងទម្រង់ Parity ពេញលេញម្តងតែម្ដង ដើម្បីកាត់បន្ថយការអាននិងសរសេរឡើងវិញជាន់គ្នាច្រើនដងលើថាសរឹង។ ជំនួសឱ្យការកែប្រែ Parity រាល់ពេលមានការផ្លាស់ប្តូរទិន្នន័យបន្តិចបន្តួចប្រព័ន្ធរង់ចាំរហូតដល់មានប្រតិបត្តិការផ្លាស់ប្តូរច្រើន ទើបបញ្ជូនទិន្នន័យដែលបានផ្លាស់ប្តូរទាំងនោះចូលទៅកែប្រែក្នុងថាសរឹងក្នុងពេលតែមួយ ដែលជួយឱ្យល្បឿនកើនឡើងជាង ៨ដង។
Writeback Caching
ការចងចាំបណ្តោះអាសន្នពេលសរសេរ (Writeback Caching)
ការប្រើប្រាស់បច្ចេកទេសនេះ គឺប្រព័ន្ធរក្សាទុកទិន្នន័យបណ្តោះអាសន្ននៅក្នុងអង្គចងចាំដែលមានល្បឿនលឿន (NVRAM) ជាមុនសិន រួចឆ្លើយតបទៅកម្មវិធីភ្លាមៗថាការសរសេរបានជោគជ័យ (Zero Latency Writes) មុននឹងប្រព័ន្ធចាត់ចែងបញ្ជូនទិន្នន័យនោះទៅរក្សាទុកក្នុងថាសរឹងជាក់ស្តែងនៅពេលវាទំនេរ។ ពេលអ្នកប្រើប្រាស់ចុច Save ឯកសារទៅក្នុងប្រព័ន្ធផ្ទុកទិន្នន័យ ប្រព័ន្ធនឹងប្រាប់ថា Save រួចរាល់ភ្លាមៗក្នុងរយៈពេលប៉ុន្មានមិល្លីវិនាទី ទោះបីជាទិន្នន័យពិតប្រាកដមិនទាន់ត្រូវបានសរសេរចូលទៅក្នុងថាសរឹងពេញលេញក៏ដោយ ធ្វើឱ្យអ្នកប្រើប្រាស់មានអារម្មណ៍ថាប្រព័ន្ធដើរលឿនបំផុត។

៤. ភាពពាក់ព័ន្ធសម្រាប់កម្ពុជា (Cambodia Relevance)

ការយល់ដឹងពីស្ថាបត្យកម្មនៃការផ្ទុកទិន្នន័យកម្រិតខ្ពស់ (RAID Storage Architecture) មានសារៈសំខាន់ណាស់សម្រាប់ប្រទេសកម្ពុជា ស្របពេលដែលស្ថាប័នរដ្ឋនិងឯកជនកំពុងផ្លាស់ប្តូរយ៉ាងលឿនទៅកាន់ប្រព័ន្ធឌីជីថល (Digitalization) ដែលទាមទារការរក្សាទុកទិន្នន័យធំៗប្រកបដោយល្បឿន និងសុវត្ថិភាពខ្ពស់។

ការអនុវត្ត (Applications)៖

ចំណេះដឹងពីស្ថាបត្យកម្ម RAID ផ្ដល់ជាមូលដ្ឋានគ្រឹះដ៏រឹងមាំសម្រាប់និស្សិតកម្ពុជាជំនាញព័ត៌មានវិទ្យា ក្នុងការក្លាយខ្លួនជាអ្នកគ្រប់គ្រងប្រព័ន្ធ (System Administrators) និងវិស្វករទិន្នន័យមជ្ឈមណ្ឌល (Data Center Engineers) ដែលមានសមត្ថភាពអាចរៀបចំប្រព័ន្ធម៉ាស៊ីនមេកម្រិតស្តង់ដារអន្តរជាតិបាន។

៥. មគ្គុទ្ទេសក៍សិក្សា (Study Guide)

លំហាត់ និងសកម្មភាពសិក្សាដើម្បីពង្រឹងការយល់ដឹង៖

  1. ការក្លែងធ្វើប្រព័ន្ធ RAID (RAID Array Simulation in Linux): និស្សិតត្រូវប្រើប្រាស់កម្មវិធីសាកល្បងដូចជាបញ្ជា 'mdadm' លើប្រព័ន្ធប្រតិបត្តិការ Linux ដើម្បីបង្កើត Virtual RAID 0, RAID 1, និង RAID 5 ដោយប្រើប្រាស់ USB Drives ធាតុតូចៗ។ បន្ទាប់មកសាកល្បងដក Virtual Disk ណាមួយចេញ ដើម្បីសង្កេតមើលដំណើរការនៃការសង្គ្រោះទិន្នន័យ (Data Recovery Process) ថាតើប្រព័ន្ធនៅអាចដំណើរការបានឬអត់។
  2. ការគណនាការបែងចែក Parity (Parity Logic Calculation Exercise): ផ្តល់លំហាត់ដែលមានទិន្នន័យជាប្រព័ន្ធគោលពីរ (Binary Data) ដល់និស្សិត រួចឱ្យពួកគេគណនារកកូដ Parity ដោយធ្វើដោយដៃ (ប្រើប្រាស់ប្រតិបត្តិការ Logic XOR)។ សកម្មភាពនេះជួយឱ្យនិស្សិតយល់ច្បាស់ពីយន្តការគណិតវិទ្យាដែល RAID 5 និង RAID 6 ប្រើប្រាស់ដើម្បីការពារទិន្នន័យនៅពេលមានថាសរឹងណាមួយបរាជ័យ។
  3. ការវិភាគលើការអនុវត្តរបស់ថាសរឹង (Disk Performance Benchmarking): ប្រើប្រាស់កម្មវិធីវាស់ស្ទង់ល្បឿន (Benchmarking tools) ដូចជា 'fio' លើ Linux ឬ 'CrystalDiskMark' លើ Windows ដើម្បីវាស់ស្ទង់ និងប្រៀបធៀបល្បឿននៃការសរសេរទិន្នន័យតូចៗ (Random Small-Writes) រវាងការកត់ត្រាផ្ទាល់ទៅកាន់ថាសរឹងធម្មតា ធៀបនឹងប្រព័ន្ធដែលប្រើប្រាស់បច្ចេកវិទ្យា Caching ដើម្បីបង្ហាញពីទ្រឹស្តី Small-Write Problem។
  4. ទស្សនកិច្ចសិក្សានៅមជ្ឈមណ្ឌលផ្ទុកទិន្នន័យ (Data Center Field Trip): សាកលវិទ្យាល័យគួររៀបចំដំណើរទស្សនកិច្ចទៅកាន់ Data Center របស់ក្រុមហ៊ុនផ្តល់សេវាអ៊ីនធឺណិត (ISP) ឬក្រុមហ៊ុនទូរគមនាគមន៍ ដើម្បីឱ្យនិស្សិតពិនិត្យមើលផ្ទាល់នូវការរៀបចំប្រព័ន្ធម៉ាស៊ីនមេ ការប្រើប្រាស់ Hardware RAID Controllers ប្រព័ន្ធខ្សែ Fiber និងស្ថាបត្យកម្ម Storage Area Network (SAN) នៅក្នុងពិភពការងារជាក់ស្តែង។

៦. វាក្យសព្ទបច្ចេកទេស (Technical Glossary)

ពាក្យបច្ចេកទេស (English) ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Data Striping ជាបច្ចេកទេសក្នុងការបែងចែកទិន្នន័យជាចំណែកតូចៗ (Stripe Units) ហើយរក្សាទុកវានៅលើថាសរឹង (Disks) ជាច្រើនក្នុងពេលតែមួយ ដើម្បីអនុញ្ញាតឱ្យមានការអាននិងសរសេរទិន្នន័យព្រមៗគ្នា ដែលជួយបង្កើនល្បឿនរួមរបស់ប្រព័ន្ធផ្ទុកទិន្នន័យ។ ដូចជាការបែងចែកកិច្ចការផ្ទះដែលមានច្រើនទំព័រឱ្យមិត្តភក្តិ៣នាក់ជួយសរសេរក្នុងពេលតែមួយ ដើម្បីឱ្យការងារនោះឆាប់រួចរាល់ជាជាងការសរសេរតែម្នាក់ឯង។
Parity គឺជាកូដបន្ថែមដែលបង្កើតឡើងតាមរយៈប្រតិបត្តិការគណិតវិទ្យា Logic XOR លើទិន្នន័យដើម។ វាត្រូវបានប្រើប្រាស់នៅក្នុងប្រព័ន្ធ RAID (ដូចជា RAID 5 និង RAID 6) សម្រាប់សង្គ្រោះទិន្នន័យដែលបាត់បង់មកវិញដោយស្វ័យប្រវត្តិ នៅពេលដែលមានថាសរឹងណាមួយរងការខូចខាត។ ដូចជាការរក្សាទុកសមីការ A + B = C ប្រសិនបើអ្នកបាត់ឯកសារ A អ្នកនៅតែអាចរកវាឃើញវិញដោយយក C ដក B។
Mirroring (RAID 1) ជាយន្តការថតចម្លងទិន្នន័យដូចគ្នាបេះបិទទៅកាន់ថាសរឹងមួយផ្សេងទៀតក្នុងពេលដំណាលគ្នា។ វាផ្តល់នូវសុវត្ថិភាពទិន្នន័យខ្ពស់បំផុត ប៉ុន្តែវាត្រូវចំណាយទំហំផ្ទុកទិន្នន័យទ្វេដង ពោលគឺ ៥០% នៃទំហំសរុបត្រូវបានបាត់បង់សម្រាប់ការចម្លង។ ដូចជាការថតចម្លងឯកសារអត្តសញ្ញាណប័ណ្ណទុកមួយច្បាប់ទៀតនៅកន្លែងផ្សេង ដើម្បីការពារក្រែងលោច្បាប់ដើមបាត់បង់ឬរហែក។
Small-Write Problem ជាបញ្ហាប្រឈមធំមួយនៅក្នុងប្រព័ន្ធ RAID 5 នៅពេលមានការសរសេរទិន្នន័យទំហំតូច។ ដំណើរការនេះតម្រូវឱ្យប្រព័ន្ធធ្វើការអានទិន្នន័យចាស់ អាន Parity ចាស់ សរសេរទិន្នន័យថ្មី និងសរសេរ Parity ថ្មី ដែលការងារនេះប្រើប្រាស់ប្រតិបត្តិការថាសរឹងដល់ទៅ៤ដង ធ្វើឱ្យប្រព័ន្ធដើរយឺតយ៉ាងខ្លាំង។ ដូចជាការកែអក្ខរាវិរុទ្ធតែមួយពាក្យក្នុងសៀវភៅ តែតម្រូវឱ្យអ្នកអានមួយទំព័រពេញ លុបចោលទាំងស្រុង ហើយសរសេរទំព័រនោះឡើងវិញ។
Writeback Caching ជាបច្ចេកទេសផ្ទុកទិន្នន័យបណ្តោះអាសន្នទៅក្នុងអង្គចងចាំ (ដូចជា RAM ឬ NVRAM) ដែលមានល្បឿនលឿន ដើម្បីឆ្លើយតបទៅកម្មវិធីវិញថាការសរសេរបានជោគជ័យភ្លាមៗ (Zero Latency Writes) មុនពេលប្រព័ន្ធរៀបចំបញ្ជូនទិន្នន័យទាំងនោះទៅរក្សាទុកក្នុងថាសរឹងពិតប្រាកដនៅពេលក្រោយ។ ដូចជាអ្នករត់តុការកត់ត្រាការកម្ម៉ង់ម្ហូបរបស់អតិថិជនចូលក្នុងសៀវភៅព្រាងសិន ដើម្បីកុំឱ្យអតិថិជនចាំយូរ រួចទើបយកទៅវាយបញ្ចូលក្នុងប្រព័ន្ធកុំព្យូទ័រពេលរៀងទំនេរ។
Parity Logging ជាវិធីសាស្ត្រមួយសម្រាប់ដោះស្រាយបញ្ហា Small-Write ដោយវាធ្វើការប្រមូលផ្តុំរាល់ការផ្លាស់ប្តូរនៃទិន្នន័យ Parity ទុកសិន រួចទើបធ្វើការសរសេរ (Update) ចូលទៅក្នុងថាសរឹងក្នុងពេលតែមួយជាទម្រង់ដុំធំ (Cylinder rates) ដែលជួយកាត់បន្ថយបន្ទុកនៃការអាននិងសរសេរចុះឡើងៗ។ ដូចជាការសន្សំសំរាមទុកក្នុងធុងតូចក្នុងផ្ទះសិន រហូតដល់ពេញទើបយកទៅចោលក្នុងធុងធំនៅក្រៅផ្ទះម្តង ដើម្បីកុំឱ្យខាតពេលដើរចេញទៅក្រៅញឹកញាប់ពេក។
Parity Declustering គឺជាការរៀបចំរចនាសម្ព័ន្ធបំបែក Parity និងទិន្នន័យទៅលើថាសរឹងចំនួនច្រើនជាងចំនួនដែលត្រូវការក្នុងមួយក្រុមធម្មតា។ វិធីនេះជួយកាត់បន្ថយបន្ទុកការងារ និងបង្កើនល្បឿនយ៉ាងខ្លាំងនៅពេលប្រព័ន្ធកំពុងស្ថិតក្នុងទម្រង់សង្គ្រោះទិន្នន័យ (Degraded mode) ពីថាសរឹងដែលខូច។ ដូចជាការបែងចែកការងាររបស់បុគ្គលិកម្នាក់ដែលឈប់សម្រាក ទៅឱ្យបុគ្គលិក១០នាក់ផ្សេងទៀតជួយធ្វើម្នាក់បន្តិច ជាជាងទម្លាក់ការងារនោះទៅឱ្យមនុស្សតែ៣នាក់ដែលធ្វើឱ្យពួកគេរវល់ខ្លាំងពេក។
Prefetching ជាយន្តការទាញយកទិន្នន័យពីថាសរឹងមករក្សាទុកក្នុងអង្គចងចាំ (Cache) ជាមុន មុនពេលដែលកម្មវិធី (Application) ទាមទារប្រើប្រាស់វាជាក់ស្តែង។ វាជួយកាត់បន្ថយពេលវេលារង់ចាំ (I/O Stall Time) និងធ្វើឱ្យដំណើរការកម្មវិធីលឿនជាងមុន។ ដូចជាចុងភៅដែលរៀបចំគ្រឿងផ្សំនិងហាន់បន្លែទុកជាមុន មុនពេលអតិថិជនកម្ម៉ង់ម្ហូប ដើម្បីឱ្យការចម្អិនមានភាពរហ័សនិងទាន់ចិត្ត។

៧. ប្រធានបទពាក់ព័ន្ធ (Further Reading)

អត្ថបទដែលបានបោះពុម្ពនៅលើ KhmerResearch ដែលទាក់ទងនឹងប្រធានបទនេះ៖

ប្រធានបទ និងសំណួរស្រាវជ្រាវដែលទាក់ទងនឹងឯកសារនេះ ដែលអ្នកអាចស្វែងរកបន្ថែម៖