ذخیرهسازی اتکاپذیر با SotoonCSI
در دنیای کوبرنتیز، برای کار با دیسکهای مانا و راحتی در ایجاد و استفاده از آنها از CSI استفاده میکنیم.
هنگامی که در ستون یک کلاستر جدید کوبرنتیز میسازید، به صورت پیشفرض، Sotoon Container Storage Interface (SotoonCSI) برای شما نصب و پیکربندی میشود. شما میتوانید جزئیات SotoonCSI را در نیماسپیس sotoon-csi مشاهده کنید.
نکته: از آنجایی که SotoonCSI به صورت یک DaemonSet بر روی کلاستر شما نصب میشود، روی هر ماشین worker، یک پاد از SotoonCSI وجود دارد و باید ریسورس کافی برای اجرا در آن نود برای پاد SotoonCSI وجود داشته باشد.
- این CSI تحت مدیریت ستون است و عملیات نگهداری و بهروزرسانی آن را تیم ستون به صورت خودکار برای کلاستر شما انجام میدهد.
- میتوان از PVها snapshot گرفت.
- میتوان از PVها clone گرفت.
- بهصورت پیشفرض، SotoonCSI از دیسکهای تحت مدیریت Compute استفاده میکند و کاملا یکپارچه با compute شما صحبت میکند.
- هزینهی PVCهایی که میسازید به صورت pay as you go محاسبه میشوند.
ساخت یک کلاستر کوبرنتیز: شما میتوانید از طریق پنل، به راحتی یک کلاستر کوبرنیتز جدید بسازید.
پس از ساخت کلاستر، SotoonCSI به صورت خودکار بر روی کلاستر شما پیکربندی میشود. پیش از ادامه مسیر، مطمئن شوید که تمامی پادهای نیماسپیس sotoon-csi در حالت ready و running هستند.
میتوانید مانند مثال زیر، یک PVC بر روی کلاستر بسازید:
دقت کنید که StorageClassای به نام remote-disk هنگام نصب SotoonCSI برای شما ساخته میشود که میتوانید از آن برای مقدار دهی فیلد spec.storageCLassName در PVCهای خود استفاده کنید.
در صورت نیاز میتوانید به پشتیبانی ستون درخواست دهید تا storageClass: remote-disk به عنوان پیشفرض کلاستر شما تنظیم شود تا PVCها به صورت پیشفرض توسط SotoonCSI مدیریت شوند.
میتوانید با ساخت پاد زیر، دیسکی را که پیشتر Provision کردید را مصرف کنید.
پس از ساخت پاد، دیسک شما در پاد mount شده و میتوانید دادههای خود را در آن ذخیره کنید.
کوبرنتیز ستون برای ارائهی دیسک مانا از High-Operations SSD استفاده میکند که شامل (Tier)های مطابق زیر است. در حالت پیشفرض، PVهای کوبرنتیز ستون با ردهی Premium ساخته میشوند. توصیه میشود ردهی هر PVC را بنا به نوع و میزان باری که روی آن است، تنظیم نمایید.
- دیسک Standard
- 100 IOPS
- Bandwidth 50Mi
- دیسک Premium
- 500 IOPS
- Bandwidth 200Mi
- دیسک Ultra
- 5000 IOPS
- Bandwidth 500Mi
رده یا tier هر PersistentVolume به راحتی و بدون هیچ وقفهای (Zero-Downtime) تنها با یک انوتیشن قابل تنظیم است.
درایور SotoonCSI به طور کامل از APIهای Snapshot در کوبرنتیز پشتیبانی میکند. همچنین در کلاستر شما به صورت پیشفرض یک volumeSnapshotClass با نام remote-disk وجود دارد که میتوانید از آن برای ساخت snapshot استفاده کنید.
توجهکنید که snapshotهایی که با sotoonCSI میسازید Copy on Write هستند.
برای اطلاعات بیشتر در مورد ساخت snapshot در کوبرنتیز میتوانید این داک را مطالعه کنید.
درایور SotoonCSI به طور کامل از APIهای Volume Clonning در کوبرنتیز پشتیبانی میکند. برای گرفتن یک clone از volumeهای خود میتوانید از این داک استفاده کنید.
- چه accessModesهایی توسط SotoonCSI پشتیبانی میشود؟
- تنها حالت ReadWriteOnce توسط SotoonCSI پشتیبانی میشود.
- آیا default storage class توسط SotoonCSI مقدار دهی میشود؟
- خیر، شما میتوانید در صورت نیاز خودتان، remote-disk را به عنوان default storage class قرار دهید ولی این storage class در زمان پیکربندی به عنوان default storage class مقداردهی نمیشود.
- آیا میتوان از reclaimPolicyهای دیگر در SotoonCSI استفاده کرد؟
- بله، reclaimPolicy در remote-disk به صورت Delete است ولی شما میتوانید این reclaimPolicy را در کلاستر خود عوض کنید تا دیسکها پس از پاک شدن پاد، باقی بمانند.
- همچنین میتوانید یک storage class جدید بسازید و مقدار reclaimPolicy آن را متفاوت مقدار دهی کنید.
- هنگام ساخت یک PV از طریق SotoonCSI، دیسک مانای متناظر آن در Compute از چهکلاسی است؟
- دیسکهای مانا با کلاس premium ساخته میشوند.
- چگونه میتوانم PVای که در کلاستر ساختهام را به دیسکهای مانا Compute نظیر کنم؟
- از طریق پنل کامپیوت میتوانید لیست دیسکهای مانای خود را مشاهده کنید و از روی نام کلاستر و برچسب دیسک متصل، دیسک مانای معادل کامپیوت آن را پیدا کنید.

- پس از پاککردن یک کلاستر، چرا همچنان هزینه دیسکهای مانا برای من حساب میشود؟
- به صورت پیشفرض، دیسکهای مانای شما پس از پاکشدن کلاستر میمانند و شما میتوانید از طریق compute، به آنها دسترسی پیدا کرده و یا آنها را پاک کنید. درصورتی که میخواهید با پاک شدن، دیسکهای مانا نیز پاک شوند، باید از در کلاستر خود قابلیت destroy را فعال کنید.
- هنگام ساخت پاد جدیدی که دارای دیسک است، با خطای timeout در mountکردن دیسک روبهرو میشوم.
معمولا این نوع از خطا زمانی رخ میدهد که پاد sotoon-csi-controller-plugin دچار خطا شده باشد و در حال اجرا نباشد.
- ابتدا از بالا بودن پادهای SotoonCSI مطمئن شوید، ممکن است پاد sotoon-csi-controller-plugin به دلیل جابهجایی، در وضعیت containerCreating باشد. تا بالا آمدن کامل این پاد صبر کنید و یا در صورتی که مشکلی پیشآمدهاست، تیکت ثبت کنید.
- پس از بالا آمدن پادهای SotoonCSI، پاد مورد نظر را پاک کنید تا دوباره ساخته شود.
- هنگام ساخت پاد جدیدی که دارای دیسک است، با خطای MultiAttach در mountکردن دیسک روبهرو میشوم.
خطای بالا در ۲ حالت شکل میگیرد:
- همانطور که پیشتر گفتیم، SotoonCSI تنها از دیسکهای ReadWriteOnce پشتیبانی میکند. پس اگر دو pod به طور همزمان بخواهند از یک PV استفاده کنند این خطا پیش میآید.
- در این حالت باید یکی از پادها را پاک کنید تا PV تنها در اختیار یک پاد باشد.
- زمانی که یکی از ماشینهای کلاستر به صورت ناقص از کلاستر خارج شده باشد (خاموش شدن بدون خارج شدن، پاک کردن VM به صورت دستی از طریق پنل، …).
- در این مورد باید یک تیکت ثبت کنید تا متخصصین ما کلاستر شما را recover کنند.
- همانطور که پیشتر گفتیم، SotoonCSI تنها از دیسکهای ReadWriteOnce پشتیبانی میکند. پس اگر دو pod به طور همزمان بخواهند از یک PV استفاده کنند این خطا پیش میآید.