Bosh sahifa Wiki Ceph

Ceph

Ceph — block, object va file storage xizmatlarini bitta distributed storage platformada taqdim etadigan ochiq kodli tizim. U ko‘p server va disklarni yagona storage clusterga birlashtiradi. Ceph katta private cloud, virtualization, Kubernetes va data center infratuzilmalarida ishlatiladi.

Ceph markaziy bitta storage controllerga tayanmasdan ma’lumotni cluster bo‘ylab taqsimlashga intiladi.

RADOS

Cephning asosiy storage qatlami RADOS deb ataladi.

U objectlarni cluster bo‘ylab saqlaydi va replication yoki erasure coding bilan himoya qiladi.

Yuqori qatlamlar block, object va file APIlarini shu asosda taqdim etadi.

RADOS client ma’lumot joylashuvini cluster map orqali topadi.

OSD

Object Storage Daemon disk yoki storage device’ni boshqaradi.

OSD:

vazifalarida qatnashadi.

Ko‘pincha har disk uchun alohida OSD ishlatiladi.

Monitor

Ceph Monitor cluster map va quorumni saqlaydi.

U OSD, monitor va boshqa service holatini biladi.

Bir nechta monitor quorum hosil qiladi.

Monitor barcha data trafikini o‘tkazmaydi; client map olgach OSDlar bilan bevosita ishlaydi.

Manager

Ceph Manager runtime metric, module va boshqaruv imkoniyatlarini taqdim etadi.

Dashboard, monitoring exporter va orchestrationga oid funksiyalar manager moduli orqali ishlashi mumkin.

Manager failure data pathni darhol to‘xtatmasligi mumkin, ammo boshqaruv imkoniyatlari cheklanadi.

Placement Group

Objectlar bevosita har bir OSDga qo‘lda map qilinmaydi.

Ular placement grouplarga biriktiriladi.

Placement grouplar keyin OSD setlariga joylashtiriladi.

Bu millionlab objectni boshqarish va rebalancingni soddalashtiradi.

PG soni noto‘g‘ri tanlansa performance va operatsion muammo yuz beradi.

CRUSH

CRUSH algoritmi object joylashuvini hisoblaydi.

U fizik topology’ni hisobga olishi mumkin:

  • disk;
  • host;
  • rack;
  • room;
  • data center.

Replication nusxalari bir xil host yoki rackda qolib ketmasligi uchun failure domain rule bilan belgilanadi.

Pool

Pool objectlar uchun mantiqiy storage hududi.

Har pool:

  • replication yoki erasure coding;
  • placement rule;
  • PG soni;
  • quota;
  • application type

ga ega.

RBD, CephFS va object gateway alohida poollardan foydalanishi mumkin.

Replication

Replicated pool bir objectning bir nechta nusxasini turli OSDlarda saqlaydi.

Masalan, uch nusxali model disk yoki host failure’iga chidamlilik beradi.

Storage xarajati yuqori.

Write acknowledgement policy durability va latencyga ta’sir qiladi.

Erasure coding

Data va parity shardlarga bo‘linadi.

Replicationga qaraganda kamroq storage overhead bilan fault tolerance beradi.

CPU va network xarajati yuqoriroq bo‘lishi mumkin.

Kichik random write va metadata workloadlar uchun alohida replicated pool kerak bo‘lishi ehtimoli bor.

RBD

RADOS Block Device virtual machine yoki container uchun block volume beradi.

RBD image:

bilan ishlashi mumkin.

Hypervisor yoki Kubernetes CSI orqali ulanadi.

CephFS

POSIXga yaqin distributed file system.

Metadata server file nomi, directory va permissionlarni boshqaradi.

File data RADOS poolda saqlanadi.

Metadata server HA va cache behaviori file workload performance’iga ta’sir qiladi.

Object Gateway

S3 va Swiftga yaqin object API taqdim etuvchi gateway qatlam mavjud.

Bucket, user, policy va multipart upload bilan ishlaydi.

Gateway stateless tarzda ko‘paytirilishi mumkin.

Metadata va objectlar Ceph poollarida saqlanadi.

Recovery

OSD yo‘qolsa cluster missing replica yoki shardlarni boshqa OSDlarda tiklaydi.

Recovery network va disk I/O’ni band qiladi.

Client workload bilan recovery o‘rtasida priority va throttle sozlanadi.

Failure vaqtida performance pasayishi normal.

Rebalancing

Yangi disk qo‘shilganda yoki OSD weight o‘zgarganda data qayta taqsimlanadi.

CRUSH barcha objectni markaziy catalog orqali ko‘chirmasdan yangi placementni hisoblaydi.

Rebalancing katta clusterda uzoq davom etishi mumkin.

Capacity oldindan rejalashtiriladi.

Scrubbing

OSDlar object metadata va content consistency’sini tekshiradi.

Deep scrub checksum va diskdagi buzilishni topishga yordam beradi.

Scrub disk yukini oshiradi.

Schedule production workloadga moslanadi.

BlueStore

Ceph OSD uchun storage backend sifatida raw block device bilan ishlaydigan arxitektura qo‘llanadi.

Metadata alohida tez device’da saqlanishi mumkin.

WAL va database joylashuvi write performance’iga ta’sir qiladi.

Disk class va hardware mos tanlanadi.

Network

Ceph juda ko‘p east-west trafik yaratadi:

Past latency va yetarli bandwidth muhim.

Public va cluster network alohida bo‘lishi mumkin, ammo architecture va hardwarega bog‘liq.

Capacity

Cluster to‘lib qolsa recovery va write uchun bo‘sh joy qolmaydi.

Near-full va full thresholdlar mavjud.

Raw capacity bilan usable capacity bir xil emas.

Replication, erasure coding, reserve va metadata hisobga olinadi.

Monitoring

Muhim signallar:

  • cluster health;
  • PG holati;
  • slow operation;
  • OSD down;
  • latency;
  • capacity;
  • recovery;
  • scrub error;
  • network.

Faqat HEALTH_OK application latency’si yaxshi degani emas.

Failure domain

Replica nusxalari faqat boshqa diskda emas, boshqa host yoki rackda joylashishi kerak. CRUSH rule shu darajani belgilaydi. Uch replica bitta hostdagi uch diskda bo‘lsa host failure’da barcha nusxa yo‘qoladi.

Upgrade

Ceph service’lari rolling tarzda yangilanishi mumkin, ammo version compatibility va health talab qilinadi. Recovery yoki degraded holatda upgrade boshlash xavfli. Avval cluster sog‘lomligi va backup tekshiriladi.

Bog‘liq tushunchalar

Ceph, RADOS, OSD, Ceph Monitor, CRUSH, Placement Group, RBD, CephFS, Object Gateway, Erasure coding, Distributed storage