راهنمای جامع Ceph
Englishشروع کنید

Replication یا erasure coding

در کتاب: فصل ۱۳

آزمایشگاه

Replication یا erasure coding

k، m و plugin را انتخاب کنید و ظرفیت قابل‌استفاده، سربار، خرابی‌های قابل‌تحمل و هزینهٔ بازسازی یک chunk را مقایسه کنید.

۷۶۸ TBظرفیت خام
۸failure domainها

EC isa k=4 m=2

قابل‌استفاده
۵۱۲ TB (۶۶٫۷٪)
تا nearfull (۸۵٪)
۴۳۵٫۲ TB
بایت خام به ازای هر بایت مفید
۱٫۵×
از دست رفتن OSD/host بدون از دست رفتن داده
۲
size / min_size
۶ / ۵
از دست رفتن با ادامهٔ I/O
۱
خواندن برای بازسازی یک chunk
۴ chunk

تکراری، size برابر ۳

قابل‌استفاده
۲۵۶ TB (۳۳٫۳٪)
تا nearfull (۸۵٪)
۲۱۷٫۶ TB
بایت خام به ازای هر بایت مفید
۳×
از دست رفتن OSD/host بدون از دست رفتن داده
۲
size / min_size
۳ / ۲
از دست رفتن با ادامهٔ I/O
۱
خواندن برای بازسازی یک chunk
۱ chunk
usable = raw × k / (k + m) · EC min_size = k + min(1, m − 1) = 5 · replicated min_size = size − ⌊size / 2⌋ = 2 · repair read = k
ceph osd erasure-code-profile set prof-4-2 plugin=isa k=4 m=2 crush-failure-domain=host
ceph osd pool create ecpool erasure prof-4-2
ceph osd pool set ecpool allow_ec_overwrites true   # RBD, CephFS

profile پیش‌فرض در main برابر plugin=isa technique=reed_sol_van k=2 m=2 است؛ profile را پس از آن‌که poolی از آن استفاده کرد نمی‌توان تغییر داد.

مطابق با:

  • src/mon/OSDMonitor.cc :: prepare_pool_size size و min_size یک pool تازه
  • src/common/options/global.yaml.in :: osd_pool_default_erasure_code_profile, mon_osd_nearfull_ratio profile پیش‌فرض و نسبت‌های پرشدگی
  • src/erasure-code/lrc/ErasureCodeLrc.cc :: parse_kml قاعده‌های k، m و l در LRC
  • src/erasure-code/clay/ErasureCodeClay.cc :: parse بازهٔ d در CLAY
  • src/erasure-code/shec/ErasureCodeShec.cc :: parse قاعدهٔ c در SHEC
  • src/osd/OSDMap.cc :: pool_raw_used_rate فضای خام به ازای هر بایت (size یا (k+m)/k)
تصویری ثابت از شبیه‌ساز؛ نسخهٔ تعاملی در آزمایشگاه نسخهٔ وب است. آزمایشگاه تعاملی: Replication یا erasure coding