GH GambleHub

Object Storage: MinIO, S3

Live ռեզյումե

Օբյեկտի պահեստը մրցույթի հարթ տարածքն է (bucket/object), որը հասանելի է S3 API-ի միջոցով, բարձր երկարությամբ և հորիզոնական մասշտաբով։ MinIO-ն ապահովում է S3-համատեղելիությունը on-35m/Kubernetes-ում։ Amazon S3-ը ամպի ստանդարտ է հարուստ էկոհամակարգով։ Հիմնական լուծումները 'ձախողման (կրկնօրինակման/ԵՄ), անվտանգության քաղաքականությունը, պահպանման դասերը և կյանքի ցիկլերը, ինչպես նաև SLO-ը լատենտության/աշխատանքային կարողությունների և արժեքի վրա 1 TB/mes։

Ճարտարապետությունն ու սկզբունքները

Միավորներ ՝ bucket probject (բանալին), մետատվյալներ (ETag, վարկածներ, թեգեր), ACL/քաղաքականություն։

API: PUT/GET/MSETE, Multipart Upload, Presigned URL, Copy, ListV2, Notification։

Համաձայն 'ժամանակակից S3/MinIO-ը ձայնագրման/կարդալու վիրահատությունների համար ուժեղ համաձայնություն է (read-after-write)։

vs հասանելիությունը 'հասնում են կրկնօրինակման/erasure coding, տարածումը հանգույցներով/գոտիներով/տարածություններով։

Ապրանքի օգտագործման տարբերակները

Մեդիա/բովանդակություն (արվեստ, ավելի բարձր, ռուսական և պրովայդերներ) 'էժան պահեստավորում + CDN։

Լոգի/հում իրադարձություններ/ֆիչեստորներ 'էժան ingest, www.Parquet/JSON։

Bakaps/BD և արտեֆակտներ 'տարբերակումը + Object Prok (WORM)։

ML/վերլուծաբան 'թվասետներ, մոդելներ, chekpoints; presigned URL-ը անվտանգ ինտեգրման համար։

Հաշվետվություններ/համադրություններ 'իմունաբելություն և քաղաքական գործիչներ։

Ընտրություն ՝ S3 (ամպ) vs MinIO (on-24m/K8s)

S3 (ամպը)

Պլյուսներ ՝ ոչ վիրահատություն, պահեստավորման դասարաններ (Standard/IA/Glacier-նման), ներկառուցված անջատողականությունը, էկոհամակարգը։

Մինուսները 'աղբյուրի արժեքը, տվյալների ավելացման պահանջները։

MinIO (on-prem/K8s):
  • Պլյուսներ 'վերահսկել տվյալները/աշխարհագրությունը/ցանցերը/արժեքները, NVMe-ի բարձր արտադրողականությունը, մուլտֆիլմը։
  • Մինուսները 'ձեր կողմում գործողությունը (apreads, դիտարկումը, սկավառակները/ցանցերը)։

Ձախողման սխեմաներ և կայունություն

Կրկնօրինակը (N օրինակ) պարզ է, բայց անարդյունավետ է։

Erasure Coding (EC k + m), կիսում է օբյեկտը + m կոդային բլոկների տվյալների վրա։ անցնում է մերժումների և խնայում է տեղը համեմատած N-կարճ կրկնօրինակի հետ։

MinIO-ի տեղաբանությունը 'erasure-ը (սկավառակների հավաքածու), որը տեղադրված է պուլայում։ ցանկացողները 244 հանգույց են, սկավառակները տարբեր մրցույթներում/դարակներում։

Անջատողականությունը/բազմապատկումը 'օձերի/տարածաշրջանների կրկնօրինակումը, ռուսական բակտերիաները, որոնք են հակամարտությունների լուծմամբ տարբերակներով։

Անվտանգություն և հասանելիություն

Վավերացում և իրավունք

Root/Windows Users, IAM քաղաքականություն (JSON), STS-ը ռուսական մրցույթի համար (ստորագրված դերեր)։

Բաքերի քաղաքական գործիչները ՝ «s3: GetObject», «s3: PutObject», «s3: MedeteObject», նախածանցների/թեստերի պայմանները/Source IP/Referer։

IAM քաղաքականության օրինակ (կարդալ միայն նախածանցից)

json
{
"Version":"2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action":["s3:GetObject","s3:ListBucket"],
"Resource":[
"arn:aws:s3:::media-bucket",
"arn:aws:s3:::media-bucket/public/"
],
"Condition":{"StringLike":{"s3:prefix":["public/"]}}
}]
}

Կոդավորումը

SSE-S3 'սերվերային բանալիներ։

SSE-KEA: բանալիներ արտաքին/ներկառուցված KFC (Vox, cloud KLS), ռոտացիայի և միգրացիայի վերահսկումը։

SSE-C 'բանալին տալիս է հաճախորդը (ռուսական ճանապարհների վրա)։

«Թռիչքի մեջ» կոդավորումը ՝ TFC, mTSA ծառայությունների/գեյթվեյի միջև։

Իմպուտաբելություն

Բաքի տարբերակումը (պաշտպանություն 108/վերաշարադրումից)։

Object Lock (WORM): режим Governance/Compliance, поля `RetentionUntilDate` и Legal Hold.

Կյանքի ցիկլի քաղաքականությունը և պահպանման դասերը

Lifecycle: Անցումը «տաք/սառը» դասին, հին տարբերակների հեռացումը, պահեստավորման ժամանակահատվածը գերազանցելով/ֆայլերը։

Տիրինգ MinIO: on-24m-ը ամպի S3-դաս/արտաքին բաքը; ընտրություն նախածանցների/թեստերի վերաբերյալ։

Lifecycle-ի օրինակը (հեռացնել անսովոր տարբերակները 30 օրվա ընթացքում, արխիվը 90-ից հետո)

xml
<LifecycleConfiguration>
<Rule>
<ID>archive-90</ID><Status>Enabled</Status>
<Filter><Prefix>logs/</Prefix></Filter>
<NoncurrentVersionExpiration><NoncurrentDays>30</NoncurrentVersionExpiration>
<Expiration><Days>365</Days></Expiration>
</Rule>
</LifecycleConfiguration>

Վերափոխում և մուլտսայթ

CRR/MSR 'միջբակտետային կրկնօրինակը (Cross/Same-Region), ընտրովի նախածանցներ/թեգեր։

Active-Action: Debunau կրկնօրինակը տարբերակով։ կարևոր է նշել գերակայությունները/հակամարտությունները։

Վալիդացիան և լագը 'հետամնացության մետրեր, անտեղի ալտերտեր։

Նոտիֆիկացում և կոմպոզիցիա (event-driven)

MinIO Bucket Notifications: Kafka, NATS, Webhook, AMQP, MQTT, Elasticsearch.
Триггеры: `s3:ObjectCreated:`, `s3:ObjectRemoved:`, `s3:Replication:`.

Patterns: Ավտո արտադրություն ավելի բարձր, ETL-ը MSH-ում, ֆիչեստորի նորարարությունը, ազդանշանը հակաֆրոդի մեջ։

Օրինակ 'webhook։

bash mc event add my/minio/media arn:minio:sqs::WEBHOOK:thumbs \
--event put --prefix uploads/

Արտադրողականության պրոֆիլները

Լատենտ ՝ p95/p99 GET/PUT; API-ի տաք ճանապարհների նպատակը p95 GET 3530-50 Ms տեղական COD-ում։

Թողունակություն ՝ Multipart-PUT (8-64 MB), զուգահեռ բեռնումներ, փոխակրիչներ։

Ցանցը ՝ 25-100 GbE, jumbo MTU գործարանի ներսում, RFC/RPS NIC-ում, NUMA-affinoly-ում։

Սկավառակներ ՝ NVMe տաք working-2019, HDD արխիվի տակ։ MinIO-ը erasure-2019 սկավառակների սիմետրիկություն է։

Հաճախորդի թյունինգը 'ավելացնել «max _ concurrency» CPK, reuse TCP, ճիշտ թայմաուտներ և backoff։

Դիտողությունն ու ալերտինգը

MinIO/S3: Վիրահատություններ (PUT/GET/MSETE/List), բայթեր, սխալներ, լատենտ, լագ, healing։

System/սկավառակներ ՝ SMART/ջերմաստիճան, I/O-հերթեր, drops/retransmit։

SLO (օրինակներ)

Տանկի հասանելիությունը 3699 է։ 95 %/30 օր։

P95 GET 3550 ms (տեղական), p95 PUT 35150 ms (multipart)։

Replant 2499 հաջողությունը։ 9 տոկոսը, լագը 60-ը p95-ից։

Թերի սկավառակի վերականգնման ժամանակը 24 ժամ է (healing չի «սպանում»)։

FinOps և տնտեսագիտություն

Արժեքը 1 TB/mes: սկավառակ + ամորտիզացիա + էներգիա + ցանցը + օպերացիա (on-24m)։

Egress-ի արժեքը 'ամպում պլանավորեք քաշ/CDN, նախադիտման օֆլոադ։

Տիրինգ/լայֆսիքլ 'սառը տվյալների ագրեսիվ տեղաշարժը, սեղմումը/կուսակցությունը (Parquet)։

Քվոտաները և բյուջեները ՝ per-ten.ru սահմանափակումներ տանկերի/բայթերի/RPS, հաշվետվությունները «դոլար/1 M հարցումներ»։

Spot/Systemptible հաշվարկները ETL-ի համար. Եթե ձգում եք MinIO-ի մոտ։

Depla MinIO

Bare-metal (պարզեցված EC կլաստեր)

bash minio server http://node{1...4}/export{1...8} \
--console-address ":9001" --address ":9000"

Առաջարկություններ

244 հանգույց, 8-12 սկավառակ հանգույցի վրա; նույն չափսը/սկավառակի արագությունը։

Բաժանել դիմացկուն/սնուցում/սվիտեր։

Reverse-proxy/Ingress (TLS 1. 2+/1. 3, HSTS), mTSA ներքին հաճախորդների համար։

Kubernetes (Tenants)

NVIDIA/MinIO Operator (CRD `Tenant`), StatefulSet с дисками, PV/PVC, anti-affinity, topology spread.

Resources: CPU-puls ցանցային հոսքերի համար, բարձր «ulimit» (FD), առանձին storage դասարաններ (NVMe/HDD)։

Նորարարություններ 'ևս, healing/replant և SLO-ի վերահսկմամբ։

Գործիքներ 'MinIO Client (MinIO Client)

bash alias mc alias set my https://minio. example KEY SECRET

create bucket, enable versioning and WORM mc mb my/media mc version enable my/media mc retention set --default COMPLIANCE 365d my/media

read-only policy for public/
mc policy set json./policy. json my/media

replication to cloud bucket mc replicate add my/media --remote s3/backup --replicate "delete, metadata, delete-marker"

Kafka mc event add my/media arn: minio: sqs:: kafka: k1 --event put, delete

Patternes ներմուծվում է ապրանքի մեջ

Presigned URLL-ը բեռնելու/ներբեռնելու համար առանց ուղղակի կոդավորման։

Բովանդակության վալիդացիան 'չափի/տեսակի սահմանաչափեր, նոթատետրերում հակավիրուսային սկաներ։

Մետատվեներ/թեգեր 'lifecycle/արխիվների/մոդերնիզացիայի համար։

CDN-ը օբյեկտի առջև 'egress-ի նվազեցումը և հետաձգումը վերջնական հաշվարկներով։

RAG/ML 'սաղմդինգի/շարդի պահպանումը, դանիացիների մանիֆեստները, մոդելների տարբերակները (Model Registry վերևում S3)։

Անվտանգություն և ընկերակցություն

Ամսագրերը նշում են, որ ով/ինչ/երբ (PUT/GET/MSETE), անփոփոխ լոգները առանձին WORM բաքում։

Network network 2019: MSAN/VRF, Directups/ACL, մասնավոր endpoinae։

KFC-ը և մրցույթի լուծարումը 'տարեկան միգրացիայի քաղաքականությունը, DMS-24l unseal-ը։

PII/PCI 'բաքերի հատվածը, հասանելիության խիստ քաղաքականությունը (ABAC տվյալների թեորեմներով), Object Prok-ը հաշվետվության համար։

Չեկի թուղթ

  • Նախագծված են erasure-sets և հանգույցների քանակը։ ձախողումների թեստեր։
  • TFC/mTSA, KFC, IAM/STS, բաքերի քաղաքականությունը և տարբերակումը։
  • Lifecycle/տիրինգը և կրկնապատկումը; Object Cork-ը կրիտիկական տանկերի համար։
  • Նոտիացիան Kafka/Webhook-ում; հակավիրուսներ/ETL/ավարտ։
  • Express (վիրահատություններ, վերարտադրողական լամպ, սկավառակներ, ցանցեր), ալտերտեր և դաշբորդներ։
  • Rolling/rolling պլանը, runbook healing/rebal.ru։
  • Քվոտաներ/բիլինգ/per-tenae հաշվետվություններ։
[Ընտրվել են տվյալների դասարաններ 'տաք/տաք/սառը; RPO/RTO/SLO նպատակները։

Տիպիկ սխալներ

NVMe-ի և HDD-ի խառնուրդը մեկ erasure-2019-ում անկանխատեսելի լատենտ է։
Չկա տարբերակման/Retention-ը հավանություն է տալիս կորստի/ծածկագրողների վտանգին։
Multipart անջատված/մասերը չափազանց փոքր են, ցածր անցք։
Ոչ ռեզիդենտ բաքեր կրիտիկական տվյալների հետ։
Թեստերի բացակայությունը DR/վերականգնել և վերահսկել egress արժեքը։

Հատուկ iGaming/fintech համար

Լոգի/հում իրադարձություններ ՝ Parquet + lifecycle (տաք 7-30 օր, ապա արխիվ/տիրինգ)։
Մեդիա բովանդակություն և պրովայդերներ ՝ presigned GET, CDN, ագրեսիվ cache-portl։
Դրամապանակների/BD 'տարբերակումը + WORM, www.DR ուսուցումները, մեկուսացված հաշիվը/կլաստերը կրկնությունների համար։
Հակաֆրոդ/ֆիչեստորներ 'ցածր ընթերցանության լատենտ (տեղական MinIO), իրադարձություններ Kafka-ում մրցույթի համար։
Հաշվետվությունները և կարգավորիչները ՝ Object Systek (Compliance), անփոփոխ լոգները, հստակ ռետեն քաղաքականությունը։

Արդյունքը

S3 համատեղելի օբյեկտի պահեստը ժամանակակից պլատֆորմի հիմնական «աղյուսն» է։ ԵՄ/վերարտադրման ճիշտ սխեման, կոշտ IAM/կոդավորումը/Retention, մտածված lifecycle/tiring-ը և նոտացիան այն վերածում են հուսալի «պասիվ սկավառակի» լրատվամիջոցների, լոգարանների, բեքապների և ML տվյալների համար։ MinIO-ում դուք ստանում եք վերահսկողություն և արագություն on-35m/K8s; S3-ում ամպերի մասշտաբն ու էկոհամակարգը։ Գրանցեք ամեն ինչ IaC-ում, չափեք SLO-ը և արժեքը, և օբյեկտը կդառնա կանխատեսելի, անվտանգ և տնտեսական աջակցություն ապրանքների համար։
Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Telegram
@Gamble_GC
Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։