|
1 | 1 | --- |
2 | | -title: "待翻译" |
3 | | -description: "此文档正在翻译中" |
| 2 | +title: "Проверка объектов и автоматическое восстановление" |
| 3 | +description: "Описание функции самовосстановления объектов в RustFS в архитектуре один сервер–много дисков: назначение, принципы,流程,配置 и故障排查." |
4 | 4 | --- |
5 | 5 |
|
6 | | -# 此文档正在翻译中 |
| 6 | +# Проверка объектов и автоматическое восстановление |
7 | 7 |
|
8 | | -请稍后查看更新。 |
| 8 | +## Обзор |
| 9 | + |
| 10 | +## Архитектура RustFS и дизайн самовосстановления |
| 11 | + |
| 12 | +### Архитектура один сервер – много дисков |
| 13 | + |
| 14 | +RustFS использует дизайн одного сервера с множеством дисков, объединяя диски в общий логический пул, чтобы предоставить сервис объектного хранилища. При записи каждый объект разбивается на несколько фрагментов данных (shards) и избыточные фрагменты, которые распределяются по разным дискам для повышения надежности и производительности. |
| 15 | + |
| 16 | +### Принципы дизайна самовосстановления |
| 17 | + |
| 18 | +1. Проверка целостности данных: комбинирование контрольных сумм (checksum) для обеспечения一致ности данных фрагментов при чтении. Например, ZFS проверяет checksum каждого блока при чтении и выполняет восстановление при сбое проверки. |
| 19 | +2. Избыточность и стирающее кодирование: с помощью erasure coding генерируются избыточные фрагменты. При потере или повреждении части фрагментов исходный объект восстанавливается из избыточных данных. |
| 20 | +3. Многоуровневое срабатывание: онлайн-восстановление при чтении, фоновое сканирование и ручной запуск, чтобы сбалансировать производительность и надежность. |
| 21 | + |
| 22 | +## Принципы самовосстановления объектов |
| 23 | + |
| 24 | +### Проверка и стирающее кодирование |
| 25 | + |
| 26 | +На этапе записи RustFS разбивает объект на k фрагментов данных и m избыточных фрагментов, распределяя их по n=k+m устройствам согласно заданным параметрам EC. При чтении, если обнаруживается повреждение или потеря фрагмента, восстановление выполняется из оставшихся корректных фрагментов. |
| 27 | + |
| 28 | +### Проверка данных и ремонт (Scrub & Repair) |
| 29 | + |
| 30 | +RustFS периодически выполняет легкую проверку (light scrub) и глубокую проверку (deep scrub) над пулом хранения: |
| 31 | +- Легкая проверка: сравнение метаданных объекта и размеров фрагментов, оперативная маркировка повреждений. |
| 32 | +- Глубокая проверка: побитовое чтение и проверка checksum, выявление и ремонт скрытых bad blocks или bit rot. |
| 33 | + |
| 34 | +При обнаружении несоответствий RustFS автоматически запускает процесс Repair, восстанавливая поврежденные фрагменты из избыточных и записывая их обратно на исходный либо резервный диск, чтобы обеспечить исправность данных при следующем доступе. |
| 35 | + |
| 36 | +## Процессы самовосстановления |
| 37 | + |
| 38 | +### Онлайн-восстановление при чтении |
| 39 | + |
| 40 | +При каждом `GET` или `HEAD` запросе клиентом RustFS вначале проверяет все фрагменты данных соответствующего объекта: |
| 41 | +1. Если все фрагменты в порядке — возвращаются данные напрямую. |
| 42 | +2. Если есть потерянные/поврежденные фрагменты — система восстанавливает недостающие части из избыточных и возвращает клиенту целый объект. |
| 43 | +Эта схема, аналогичная чтению-с-восстановлением в MinIO, прозрачно исправляет ошибки без ущерба для запроса клиента. |
| 44 | + |
| 45 | +### Фоновое сканирование и восстановление |
| 46 | + |
| 47 | +Встроенный сканер объектов RustFS хешированно обходит 1/1024 объектов в пуле хранения для проверки целостности: |
| 48 | +- Регулярно (настраиваемая частота) выполняет легкую проверку; |
| 49 | +- При обнаружении повреждений немедленно инициирует процесс восстановления. |
| 50 | +По умолчанию глубокая проверка на bit rot отключена для снижения накладных расходов; при необходимости ее можно включить. |
| 51 | + |
| 52 | +### Ручной запуск восстановления |
| 53 | + |
| 54 | +Администратор может запустить полнообъемное восстановление с помощью CLI: |
| 55 | + |
| 56 | +```bash |
| 57 | +rc admin heal start --all |
| 58 | +``` |
| 59 | + |
| 60 | +Операция сканирует весь пул хранения и выполняет полную проверку и ремонт всех объектов; ресурсозатратно, рекомендуется выполнять в непиковое время. |
| 61 | + |
| 62 | +## Примеры использования |
| 63 | + |
| 64 | +```bash |
| 65 | +# Просмотр текущего статуса самовосстановления |
| 66 | +rc admin heal status |
| 67 | +# Запуск восстановления для указанного bucket |
| 68 | +rc admin heal start --bucket photos |
| 69 | +# Остановка текущей задачи восстановления |
| 70 | +rc admin heal stop |
| 71 | +``` |
| 72 | + |
| 73 | +## Итоги |
| 74 | + |
| 75 | +Самовосстановление объектов в RustFS объединяет зрелые решения MinIO, Ceph и ZFS. За счет многоуровневого триггера проверки и восстановления RustFS эффективно противостоит повреждению фрагментов, отказам дисков и bit rot как в одноузловой многодисковой, так и многосерверной архитектуре, обеспечивая высокую надежность и доступность объектного хранилища. |
9 | 76 |
|
0 commit comments