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-ը և արժեքը, և օբյեկտը կդառնա կանխատեսելի, անվտանգ և տնտեսական աջակցություն ապրանքների համար։