58 lines
4.4 KiB
XML
58 lines
4.4 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" width="720" height="1510" viewBox="0 0 720 1510" role="img" aria-labelledby="title desc">
|
|
<title id="title">Диагностика учебного restore drill</title>
|
|
<desc id="desc">Четыре вертикальные карточки связывают симптомы восстановления с причиной, проверкой и безопасным действием: неизвестный scope, несовпавший checksum, не изолированная цель и неверный результат после restore.</desc>
|
|
<defs>
|
|
<style>
|
|
.title { fill: #162e2c; font: 700 34px system-ui, -apple-system, sans-serif; }
|
|
.subtitle { fill: #46605c; font: 400 21px system-ui, -apple-system, sans-serif; }
|
|
.number { fill: #ffffff; font: 700 24px system-ui, -apple-system, sans-serif; }
|
|
.label { fill: #162e2c; font: 700 24px system-ui, -apple-system, sans-serif; }
|
|
.body { fill: #35514c; font: 400 21px system-ui, -apple-system, sans-serif; }
|
|
.action { fill: #186043; font: 700 21px system-ui, -apple-system, sans-serif; }
|
|
.footer { fill: #506a65; font: 400 20px system-ui, -apple-system, sans-serif; }
|
|
</style>
|
|
</defs>
|
|
<rect width="720" height="1510" fill="#f6faf8"/>
|
|
<rect x="40" y="36" width="640" height="142" rx="24" fill="#dff2ea"/>
|
|
<text x="72" y="88" class="title">Диагностика drill</text>
|
|
<text x="72" y="124" class="title">до и после restore</text>
|
|
<text x="72" y="154" class="subtitle">Симптом не лечим следующей командой без проверки</text>
|
|
|
|
<rect x="48" y="220" width="624" height="250" rx="22" fill="#ffffff" stroke="#81bca3" stroke-width="3"/>
|
|
<circle cx="94" cy="268" r="26" fill="#26734d"/>
|
|
<text x="86" y="276" class="number">1</text>
|
|
<text x="140" y="266" class="label">Scope не назван</text>
|
|
<text x="140" y="302" class="body">Причина: archive выбран по имени,</text>
|
|
<text x="140" y="330" class="body">а не по требуемому набору объектов.</text>
|
|
<text x="140" y="370" class="body">Проверка: includes / excludes и archive list.</text>
|
|
<text x="140" y="418" class="action">Действие: остановить restore, уточнить contract.</text>
|
|
|
|
<rect x="48" y="505" width="624" height="250" rx="22" fill="#ffffff" stroke="#81bca3" stroke-width="3"/>
|
|
<circle cx="94" cy="553" r="26" fill="#26734d"/>
|
|
<text x="86" y="561" class="number">2</text>
|
|
<text x="140" y="551" class="label">Checksum не совпал</text>
|
|
<text x="140" y="587" class="body">Причина: другие или изменённые bytes.</text>
|
|
<text x="140" y="627" class="body">Проверка: SHA-256 фактического archive.</text>
|
|
<text x="140" y="675" class="action">Действие: не использовать файл, получить доверенный.</text>
|
|
|
|
<rect x="48" y="790" width="624" height="250" rx="22" fill="#ffffff" stroke="#81bca3" stroke-width="3"/>
|
|
<circle cx="94" cy="838" r="26" fill="#26734d"/>
|
|
<text x="86" y="846" class="number">3</text>
|
|
<text x="140" y="836" class="label">Target не изолирован</text>
|
|
<text x="140" y="872" class="body">Причина: runbook не назвал безопасную цель.</text>
|
|
<text x="140" y="912" class="body">Проверка: source overwrite запрещён до команды.</text>
|
|
<text x="140" y="960" class="action">Действие: создать candidate; иначе drill не начинать.</text>
|
|
|
|
<rect x="48" y="1075" width="624" height="270" rx="22" fill="#ffffff" stroke="#81bca3" stroke-width="3"/>
|
|
<circle cx="94" cy="1123" r="26" fill="#26734d"/>
|
|
<text x="86" y="1131" class="number">4</text>
|
|
<text x="140" y="1121" class="label">Restore прошёл, checks нет</text>
|
|
<text x="140" y="1157" class="body">Причина: exit code приняли за evidence.</text>
|
|
<text x="140" y="1197" class="body">Проверка: relation, schema marker, safe count.</text>
|
|
<text x="140" y="1245" class="action">Действие: зафиксировать verdict и пробелы scope.</text>
|
|
|
|
<rect x="48" y="1372" width="624" height="98" rx="18" fill="#e8f5ef"/>
|
|
<text x="78" y="1415" class="footer">RPO/RTO требуют отдельного</text>
|
|
<text x="78" y="1444" class="footer">разрешённого учебного drill.</text>
|
|
</svg>
|