با توجه به اینکه محافظت از دادهها در دنیای امروز IT دارای اهمیت فراوانی میباشد، شرکت مایکروسافت نیز اقدام به ارائهی Storage Space Direct در Windows Server 2016 نموده است. در قسمت اول از این سری مقالات به بررسی مزایای کلی و کارایی این قابلیت پرداختیم. در این مقاله که قسمت دوم (پایانی) میباشد، به معرفی تکنیک LRC و بررسی قابلیت خود ترمیمی آن میپردازیم.
Storage Spaces در Windows Server 2016 به معرفی یک تکنیک پیشرفته به نامLocal Reconstruction Codes یا به اختصار LRC میپردازد که این تکنیک توسط مرکز تحقیقات مایکروسافت ارائه شده است. در مقیاس بزرگ، Dual Parity از LRC استفاده نموده و فرآیند کدگذاری و کدبرداری را به گروههای کوچکتر تقسیم مینماید تا سرباری که در طی فرآیند Write نمودن یا انجام بازیابی پس از Failure ایجاد میشود را کاهش دهد.
هر گروه در Hard Disk Drive یا به اختصار HDD، دارای 4 سمبل و در Solid-State Drive یا به اختصار SSD، دارای 6 سمبل میباشد. برای مثال در شکل زیر که به صورت HDD بوده و دارای 12 عدد Hardware Fault Domain (به معنای 12 سرور) میباشد، دو گروه با چهار سمبل داده وجود دارد و منجر به 72.7 درصد کارایی در Storage دست میگردد.
قابلیت خودترمیمی به صورت ترکیبی
Storage Spaces Direct Volume ارائه شده درWindows Server 2016 را میتوان به دو بخش Mirror و Parity تقسیم نمود. فرآیند Write در ابتدا در بخش Mirror بوده و سپس به تدریج وارد بخشParity میگردد. به این ترتیب، از فرآیند Mirroring جهت تسریع فرآیند Erasure Coding استفاده میگردد.
باید در نظر داشت که جهت ترکیب Three-Way Mirror و Dual Parity حداقل چهار Fault Domain مورد نیاز است که به معنای 4 سرور میباشد.
کارایی Storage در قابلیت خودترمیمی (Resiliency) به صورت ترکیبی، متوسط کارایی در حالتی است که به طور کامل از Mirror یا Parity استفاده میشود و به نسبت انتخابی آن دو بستگی دارد.
در این بخش مواردی همچون انواع قابلیتهای خودترمیمی (Resiliency) قابل دسترس در Storage Spaces Direct، حداقل الزامات برای استفاده از هر یک از انواع آنها، تعداد Failureهای قابل تحمل و کارایی Storage مربوطه مطرح میگردد.
انواع خودترمیمی
در زیر به انواع خود ترمیمی یا Resiliency و تحمل خرابی آن می پردازیم:
خودترمیمی | تحمل خرابی | کارایی Storage |
Two-way mirror | 1 | 50.0% |
Three-way mirror | 2 | 33.3% |
Dual parity | 2 | 50.0% – 80.0% |
Mixed | 2 | 33.3% – 80.0% |
نیازمندیهای کمترین مقیاس
خودترمیمی | حداقل Fault Domain مورد نیاز |
Two-way mirror | 2 |
Three-way mirror | 3 |
Dual parity | 4 |
Mixed | 4 |
تعداد Fault Domain بیانگر تعداد سرورها میباشد مگرآنکه از Chassis یا Rack Fault Tolerance استفاده شود. ضمن اینکه تا زمانی که حداقل الزامات مورد نیاز Storage Spaces Direct تامین گردد، تعداد درایوها در هر سرور نمیتواند نوع قابلیت خودترمیمی مورد استفاده را تحت تاثیر قرار دهد.
کارایی Dual Parity برای پیادهسازی به صورت ترکیبی
در جدول زیر، کارایی Storageدر Dual Parity و Local Reconstruction Codes جهت پیادهسازی ترکیبی در هر یک از مقیاسها نشان داده میشود که شامل HDD و SSD میگردد.
Fault Domain | Layout | کارایی |
2 | – | – |
3 | – | – |
4 | RS 2+2 | 50.0% |
5 | RS 2+2 | 50.0% |
6 | RS 2+2 | 50.0% |
7 | RS 4+2 | 66.7% |
8 | RS 4+2 | 66.7% |
9 | RS 4+2 | 66.7% |
10 | RS 4+2 | 66.7% |
11 | RS 4+2 | 66.7% |
12 | (LRC (8, 2, 1 | 72.7% |
13 | (LRC (8, 2, 1 | 72.7% |
14 | (LRC (8, 2, 1 | 72.7% |
15 | (LRC (8, 2, 1 | 72.7% |
16 | (LRC (8, 2, 1 | 72.7% |
کارایی Dual Parity برای پیادهسازی به صورت All-Flash
در جدول زیر، کارایی Storage در Dual Parity و Local Reconstruction Codes جهت پیادهسازی به صورت All-Flash در هریک از مقیاسها نشان داده میشود که صرفا شامل SSD میباشد. Parity میتواند در گروههای بزرگتر به کار برده و به کارایی بیشتر Storage در پیکربندی All-Flash منجر گردد.
کارایی | Layout | Fault Domain |
– | – | 2 |
– | – | 3 |
50.0% | RS 2+2 | 4 |
50.0% | RS 2+2 | 5 |
50.0% | RS 2+2 | 6 |
66.7% | RS 4+2 | 7 |
66.7% | RS 4+2 | 8 |
75.0% | RS 6+2 | 9 |
75.0% | RS 6+2 | 10 |
75.0% | RS 6+2 | 11 |
75.0% | RS 6+2 | 12 |
75.0% | RS 6+2 | 13 |
75.0% | RS 6+2 | 14 |
75.0% | RS 6+2 | 15 |
80.0% | (LRC (12, 2, 1 | 16 |
در زیر به بررسی چند مثال کاربردی در این زمینه می پردازیم.
در صورتی که کاربر بیش از دو سرور در اختیار داشته باشد، توصیه میگردد که به دلیل تحمل خطای بیشتر از Three-Way Mirroring و یا Dual Parity استفاده نماید. بدین ترتیب امنیت و قابلیت دسترسی دادهها حتی زمانی که دو Fault Domain همراه با Storage Spaces Direct (یعنی دو سرور) تحت تاثیر Failureهای همزمان قرار میگیرند، تضمین میگردد.
حال به بررسی شرایطی میپردازیم که در صورت بروز Failure نیز تمام Volumeها به صورت آنلاین باقی میمانند:
مواردی که بیانگر قابلیت تحمل Three-Way Mirroring و Dual Parity میباشند:
1- از دست رفتن یک درایو (شامل درایوهایCache )
2- از دست رفتن یک سرور
3- از دست رفتن یک سرور و یک درایو
4- از دست رفتن دو درایو در سرورهای مختلف
5- از دست رفتن بیش از دو درایو و تاثیرپذیری حداکثر دو سرور
6- از دست رفتن دو سرور
در تمامی موارد فوق، تمامی Volumeها آنلاین خواهند ماند (کلاستر باید در حالت Quorum باشد.)
در شرایط زیر تمامی Volumeها به حالت آفلاین در میآیند:
Storage Spaces قادر است در طول عمر خود هر تعدادی از Failure را تحمل نماید، زیرا بعد از هر Failure در صورت در اختیار داشتن زمان کافی میتواند به طور کامل قابلیت خودترمیمی را بازیابی نماید. با این وجود، حداکثر دو Fault Domain به صورت ایمن و در زمان مورد نظر تحت تاثیر Failureها قرار خواهند گرفت. با توجه به موارد مذکور، در ادامه نمونههایی ارائه میگردد که Three-Way Mirroring و یا Dual Parity قادر به تحمل آن نمیباشند:
7- از دست رفتن درایوها در سه یا تعداد بیشتری سرور به صورت همزمان
8- از دست رفتن سه یا تعداد بیشتری از سرورها به صورت همزمان
ــــــــــــــــــــــــــــــــــــــــــــــــــــــ
بررسی قابلیت Fault Tolerance در Storage Spaces Direct – قسمت اول
بررسی قابلیت Fault Tolerance در Storage Spaces Direct – قسمت دوم (پایانی)