S3 ENDPOINT · backups.petronet.mn
Хамгийн ихдээ нэг өдөр
Өгөгдлийн сан уствал энэ платформын алдах бүхэн нь сүүлийн 03:15-аас хойшхи ажил. Байгууллага, гишүүнчлэл, эрх, баримт, гарын үсэг, audit мөр — үлдсэн бүх зүйл шифрлэгдсэн, устгагдах боломжгүй хуулбар дээр байна.
Бүтэлгүйтэх хүртэл нь хэвийн харагддаг ганц систем
Сервер унавал мэднэ. Диск дүүрвэл мэднэ. Нөөцлөлт ажиллахаа болбол юу ч болохгүй — сэргээх өдөр хүртэл.
Дахин бичих боломжгүй 61 хүснэгт
Гурван schema: workspace 32, registry 22,
operator 7. Байгууллага, хүн, гишүүнчлэл, эрх, суулгасан
апп, баримт, гарын үсэг, audit мөр.
Кодыг git-ээс сэргээнэ, серверийг дахин үүсгэнэ. Эдгээрийг хаанаас ч авахгүй.
Өдөрт 46 KB — эсвэл бүх зүйл
Нэг өдрийн нөөцлөлт нь 46 килобайт ба хэдхэн секунд. Байхгүй байхын үнэ нь платформын бүх түүх.
Мэдээллийн технологид ийм тэгш бус харьцаа ховор. Тиймээс энд асуулт «хийх үү» биш, «яагаад өчигдөр хийгээгүй байсан бэ» байсан.
Хэмжигдээгүй нөөц бол нөөц биш
cron бүтэлгүйтэхдээ хашгирдаггүй. Тиймээс ажиллагаа бүр Prometheus руу дөрвөн хэмжүүр бичдэг: хамгийн сүүлд хэзээ ажилласан, хэзээ амжилттай болсон, хэмжээ нь хэд, өөр байршилд хүрсэн эсэх.
«Нөөцлөлт байхгүй» гэдэг нь одоо сэрэмжлүүлэг дуугардаг байдал.
Энэ платформ дээр нөөцлөлт огт байгаагүй
Онолын жишээ биш. Энэ хостыг шалгахад cron бичлэг байгаагүй, скрипт
байгаагүй, /var/backups хоосон, platform_backups
хүснэгтэд нэг ч мөр байгаагүй. Ямар нэг зүйл эвдэрсэн бол буцаах зүйл
байхгүй байсан — тэр өдрийг хүртэл хэн ч мэдэхгүй байх байсан.
- cron — байхгүй
- скрипт — байхгүй
- /var/backups — хоосон
- platform_backups — 0 мөр
Нэг файлын анатоми
Өргөтгөл бүр юу болсныг хэлдэг тул нэр өөрөө түүх өгүүлнэ.
nexus-20260830-062805.sql.gz.age
- .sql
Өдөр бүр 03:15-д авсан бүтэн pg_dump.
- .gz
Шахагдсан. Энэ суулгацынх ойролцоогоор 46 KB.
- .age
Хостыг орхихоосоо өмнө шифрлэгдсэн. Тайлах түлхүүр энд байхгүй.
Объект бүрийн үнэн
Гурван шинж чанар, ач холбогдлын дарааллаар.
Хостыг орхихоосоо өмнө шифрлэгдэнэ
Эх сервер дээр зөвхөн age-ийн нийтийн түлхүүр байдаг.
Эвдэрсэн платформ өөрийн урьд илгээсэн зүйлээ уншиж чадахгүй, энэ
санг барьсан хэн ч уншиж чадахгүй. Хувийн түлхүүр операторт байна.
Эх сервер түүхээ устгаж чадахгүй
Bucket нь хувилбартай, суулгац бүрийн түлхүүр нь бичих, унших, жагсаах эрхтэй — устгах эрхгүй. Гараас нь атгасан хост нэмж чадна, арилгаж чадахгүй.
✓ DeleteObject → Access Denied
Зөвхөн энэ API гадагш харна
Энэ домэйн нь S3-той нийцэх endpoint. Санг удирдах консол нь loopback дээр үлддэг: тэр нь хоёр дахь нэвтрэх гадаргуу бөгөөд ард нь бүх суулгацын өгөгдөл байна.
03:15 цагт юу болдог вэ
Хост бүр дээр нэг cron мөр. Дараалал нь чухал — алхам бүр өмнөхийнхөө үр дүнг нэрэндээ авч үлддэг.
-
pg_dump
Бүтэн dump. 10 KB-аас жижиг гаралтыг скрипт өөрөө татгалзана — алдаагүй дуусаад юу ч бичээгүй pg_dump бол амжилттай харагдах бүтэлгүйтэл.
-
Шахалт, дараа нь шифрлэлт
Энэ дарааллаар: шифрлэгдсэн өгөгдөл шахагддаггүй.
-
Хоёр газар бичигдэнэ
Хостын диск дээр нэг хуулбар, энэ санд нэг. Дискэн дээрх нь хурдан сэргээхэд, эндэх нь тэр дискийг алдсан үед.
-
Үр дүн нь хэмжигдэнэ
Prometheus руу дөрвөн хэмжүүр. Бүтэлгүйтсэн ажиллагаа өмнөх амжилтын мөчийг хадгална — эс бөгөөс нэг бүтэлгүйтэл нь «хэзээ ч амжилттай болоогүй»-тэй ялгагдахаа болино.
Өгөгдлөө буцааж авах
Сэргээж үзээгүй нөөцлөлт бол нөөцлөлт биш, зөвхөн итгэл найдвар. Дараах алхмуудыг хаях зориулалттай сан дээр ажиллуулж баталгаажуулсан.
# 1 — сангаас татах mc cp store/nexus-backups-nexus/nexus-….sql.gz.age . # 2 — хувийн түлхүүрээр тайлах age -d -i backups-age-key.txt nexus-….sql.gz.age > dump.sql.gz # 3 — хаях зориулалттай санд сэргээж шалгах createdb restore_check gunzip -c dump.sql.gz | psql -d restore_check psql -d restore_check -c 'SELECT count(*) FROM registry.tenants'
Хувийн түлхүүрээ алдвал бүх нөөц ашиггүй болно. Тэр файлыг нөөц байгаа машин дээр биш, нууц үгийн менежерт эсвэл офлайн хадгална. Хостод үлдээвэл шифрлэлт нь утгагүй болно.
Юунаас хамгаалахгүй вэ
Nexus-ийн өөрийн хуулбарын хувьд энэ сан нь тэр платформтой нэг машин дээр байна. Хүснэгт устгасан, буруу migration, volume дахин үүсгэснээс хамгаална — хостоо бүхэлд нь алдахаас хамгаалахгүй.
Өөр хост дээрх суулгацуудын хувьд энэ нь жинхэнэ өөр байршил юм. Сүүлийн цоорхойг хаах алхам нь энэ санг өөр газар руу толилуулах.