Bosh sahifa Wiki MinIO

MinIO

MinIO — S3ga mos API taqdim etadigan yuqori unumdor object storage tizimi. U private cloud, data center, Kubernetes va edge muhitlarida bucket hamda object modelida ma’lumot saqlash uchun ishlatiladi. Media, backup, log, artifact, machine-learning dataset va data lake workloadlari MinIO’da saqlanishi mumkin.

MinIO file system yoki block storage emas; application unga object API orqali murojaat qiladi.

S3-compatible API

MinIO S3ga o‘xshash operationlarni taqdim etadi:

Bu S3 SDK va tool’larning ko‘pini private storage bilan ishlatishga yordam beradi.

“Compatible” barcha provider-specific feature aynan bir xil degani emas.

Server

MinIO server local disk yoki distributed node’lar ustida ishlaydi.

Production deploymentda bir nechta disk va node ishlatilishi mumkin.

Application endpoint orqali clusterga ulanadi.

Load balancer bir nechta server endpointini yagona manzilga birlashtirishi mumkin.

Bucket

Bucket objectlar uchun mantiqiy namespace.

Access policy, versioning, lifecycle va replication bucket darajasida sozlanadi.

Bucket nomi application contractining bir qismi bo‘lishi mumkin.

Data va environment uchun alohida bucket ishlatiladi.

Object

Object key, binary content va metadata’dan iborat.

Directory ko‘rinishi key prefix orqali yaratiladi.

Katta object multipart upload bilan yuklanadi.

ETag har doim oddiy content MD5 degani emas, ayniqsa multipart va encryption holatida.

Erasure coding

Distributed storage data va parity shardlarga bo‘linadi.

Ayrim disk yoki node yo‘qolsa qolgan shardlardan object tiklanadi.

Bu replicationdan boshqacha usul.

Fault tolerance drive soni va erasure set konfiguratsiyasiga bog‘liq.

Bit rot himoyasi

Checksum saqlangan data buzilishini aniqlashga yordam beradi.

Read yoki background healing paytida corrupt shard boshqa sog‘lom shardlardan tiklanishi mumkin.

Erasure coding disk failure’dan himoya qiladi, ammo noto‘g‘ri delete va account compromise’dan emas.

Versioning va backup kerak.

Distributed mode

Bir nechta server va disk yagona cluster sifatida ishlaydi.

Quorum metadata va write operationlar uchun muhim.

Node’larning katta qismi bir vaqtda yo‘qolsa write yoki read unavailable bo‘lishi mumkin.

Network barqaror va bandwidth yetarli bo‘ladi.

Storage disk

MinIO odatda to‘g‘ridan-to‘g‘ri local yoki dedicated disklar bilan yaxshi ishlaydi.

Tagida yana bir distributed file system qo‘yish failure semantics va performance’ni murakkablashtirishi mumkin.

Diskni boshqa application bilan aralashtirish contention yaratadi.

Hardware va filesystem tavsiyasi deploymentga mos tekshiriladi.

Identity va policy

User, group yoki external identity provider orqali authentication qilinadi.

Policy action va resource’ni belgilaydi.

Application uchun access key minimal bucket va prefixga ruxsat oladi.

Root credential kundalik applicationda ishlatilmaydi.

Temporary credential

STSga oid temporary credential external identity yoki role asosida olinishi mumkin.

U qisqa muddat amal qiladi.

Static key leak ta’sirini kamaytiradi.

Client credentialni cache va expiry bilan boshqaradi.

TLS

Client va server orasidagi trafik TLS bilan himoyalanadi.

Cluster ichidagi traffic ham encryption talab qilishi mumkin.

Certificate rotation va hostname verification to‘g‘ri ishlaydi.

Self-signed certificate barcha client trust store’iga nazoratli qo‘shiladi.

Server-side encryption

Object at-rest shifrlanishi mumkin.

Key:

bilan boshqarilishi mumkin.

Key service unavailable bo‘lsa object accessi ta’sirlanadi.

Key backup va rotation rejalashtiriladi.

Versioning

Bir key’ning eski nusxalarini saqlaydi.

Tasodifiy overwrite va delete’dan tiklash imkonini beradi.

Delete marker oldingi versionlarni yashirishi mumkin.

Lifecycle eski versionlarni belgilangan muddatdan keyin tozalaydi.

Object locking

Retention va legal hold object versionini ma’lum vaqt o‘chirish yoki o‘zgartirishdan himoya qiladi.

Compliance va ransomware himoyasida ishlatiladi.

Lock bucket yaratish va versioning configurationiga bog‘liq bo‘lishi mumkin.

Administrator huquqi ham policyga qarab cheklanadi.

Replication

Objectlar boshqa MinIO cluster yoki S3-compatible destinationga nusxalanishi mumkin.

Site replication identity va bucket configurationni ham qamrashi mumkin.

Replication asynchronous bo‘lishi ehtimoli bor.

RPO va lag monitoring qilinadi.

Lifecycle

Objectni yosh, prefix yoki tag asosida:

  • expire;
  • transition;
  • eski versionni o‘chirish;
  • incomplete uploadni tozalash

mumkin.

External tierga ko‘chirilgan object retrieval behaviori alohida.

Rule collision oldindan tekshiriladi.

Event notification

Object create va delete eventlari queue, stream yoki webhookga yuborilishi mumkin.

Consumer duplicate eventga tayyor bo‘ladi.

Event delivery muvaffaqiyatsiz bo‘lsa retry va monitoring mavjud.

Eventning o‘zi data transactioni bilan aynan bir vaqtda kelmasligi mumkin.

Monitoring

Metriclar:

Prometheusga oid monitoring va audit log ishlatilishi mumkin.

Disk to‘lishidan oldin alert beriladi.

Backup va disaster recovery

Erasure coding backup emas.

Cluster-wide delete, software bug yoki security compromise barcha shardga ta’sir qiladi.

Alohida cluster, immutable backup yoki offline copy saqlanadi.

Restore va replication failover muntazam sinovdan o‘tadi.

Namespace design

Millionlab objectni bitta prefix ostida ro‘yxatlash application operationini sekinlashtirishi mumkin. Key design tenant, vaqt va data turini aks ettiradi. Biroq object key ichiga sensitive ma’lumot yozilmaydi, chunki key audit va loglarda ko‘rinishi mumkin.

Bog‘liq tushunchalar

MinIO, Object storage, S3-compatible API, Bucket, Erasure coding, Object versioning, Object locking, Replication, Multipart upload, Private cloud, Data lake