Refactor code structure for improved readability and maintainability

This commit is contained in:
ada
2025-08-22 22:16:55 +03:00
parent 6ea0858f6e
commit 61c42be7b9
7 changed files with 323 additions and 6 deletions
+6 -6
View File
@@ -59,8 +59,8 @@ defaults:
toc: true # оглавление справа
toc_sticky: true
author_profile: false
show_date: false
show_date_modified: false
show_date: true
show_date_modified: true
- scope:
path: ""
type: "posts"
@@ -71,8 +71,8 @@ defaults:
toc: true # оглавление справа
toc_sticky: true
author_profile: true
show_date: false
show_date_modified: false
show_date: true
show_date_modified: falturse
- scope:
path: ""
type: "pages"
@@ -83,8 +83,8 @@ defaults:
toc: false # оглавление справа
toc_sticky: false
author_profile: true
show_date: false
show_date_modified: false
show_date: true
show_date_modified: true
obsidian:
vault: "_notes" # где лежат md-файлы Obsidian
@@ -0,0 +1,95 @@
---
title: "RAID — Redundant Array of Independent Disks"
description: "Заметки по теме RAID"
---
**RAID** — технология объединения нескольких физических дисков в единый логический массив для повышения:
- надёжности хранения,
- скорости работы,
- отказоустойчивости.
> 🧠 Полное название: *Redundant Array of Independent Disks* — избыточный массив независимых дисков.
---
## 📊 Уровни RAID
### 🔹 RAID 0 — *Striping*
- Данные разбиваются на блоки и записываются параллельно на все диски массива
- **Преимущество**: высокая скорость записи и чтения
- **Недостаток**: нет отказоустойчивости — сбой одного диска приводит к потере всех данных
> 💡 Используется там, где важна производительность, а не надёжность (например, временные рендер-файлы)
---
### 🔹 RAID 1 — *Mirroring*
- Полная зеркализация данных на два диска
- При записи информация дублируется
- **Преимущество**: высокая надёжность (один диск может выйти из строя)
- **Недостаток**: в 2 раза меньше доступного объёма (50% от общего)
> 💡 Подходит для критичных систем с небольшими объёмами
---
### 🔹 RAID 10 (1+0) — *Комбинация зеркалирования и чередования*
- Минимум 4 диска
- Два массива RAID 1, объединённые в RAID 0
- **Преимущество**: высокая скорость + высокая надёжность
- **Недостаток**: половина пространства теряется
> 💡 Один из самых сбалансированных по цене/производительности уровней RAID
---
### 🔹 RAID 5 — *Striping with Parity*
- Минимум 3 диска
- Данные и контрольные суммы (чётность) распределяются между всеми дисками
- **Преимущество**: выдерживает отказ одного диска
- **Недостаток**: при восстановлении возможны просадки в скорости
> 💡 Очень популярен в корпоративных хранилищах
---
### 🔹 RAID 6 — *Striping with Double Parity*
- Минимум 4 диска
- Использует два блока чётности, может выдержать отказ двух дисков
- **Преимущество**: высокая надёжность
- **Недостаток**: больше вычислительная нагрузка на запись
> 💡 Используется в критичных системах с большим объёмом данных
![alt text](<../../../assets/cache/IT-School/Pasted image 20250723233130.png>)
---
## ⚙️ Аппаратный vs программный RAID
| Тип | Преимущества | Недостатки |
|------------|--------------------------------------|--------------------------------|
| **Аппаратный** | Выделенный RAID-контроллер, кэш, батарея | Дороже, сложнее заменить |
| **Программный**| Не требует спец. оборудования | Загрузка на CPU, меньше функций|
---
## 🧠 Ключевые понятия
- **Чётность (Parity)** — метод вычисления контрольных сумм для восстановления данных
- **Hot Spare** — резервный диск, который автоматически заменяет вышедший из строя
- **Rebuild** — процесс восстановления массива после сбоя
---
## ✅ Итоги
| Уровень RAID | Мин. дисков | Скорость | Надёжность | Эффективность |
|--------------|-------------|----------|-------------|----------------|
| RAID 0 | 2 | ⭐⭐⭐⭐ | ❌ | 100% |
| RAID 1 | 2 | ⭐⭐ | ✅✅ | 50% |
| RAID 10 | 4 | ⭐⭐⭐ | ✅✅✅ | 50% |
| RAID 5 | 3 | ⭐⭐⭐ | ✅ | ~6780% |
| RAID 6 | 4 | ⭐⭐ | ✅✅ | ~5075% |
> 💬 Выбор RAID зависит от задач: хранения логов, БД, виртуализации, архивов и т.д.
@@ -0,0 +1,47 @@
---
title: "Split-brain"
layout: single
---
**Split-brain** — ситуация, при которой узлы кластера теряют связь друг с другом и каждый считает себя активным. В результате возникает конфликт за управление ресурсами.
---
## ⚠️ Почему это опасно
- Два узла работают с одним ресурсом одновременно
- Возможна потеря, дублирование или порча данных
- Нарушение целостности и доступности системы
---
## 🧪 Типовой сценарий
1. Узлы теряют связь между собой
2. Каждый считает, что другой "упал"
3. Оба активируют сервисы
4. Сервис работает параллельно на двух узлах → конфликт
---
## 🛠️ Способы предотвращения
- **Quorum (кворум)** — решение принимает большинство узлов
- **STONITH (Shoot The Other Node In The Head)** — принудительное выключение "лишнего" узла
- **Arbiter (арбитр)** — третий узел/устройство для голосования
- **Shared storage lock** — блокировка доступа на уровне хранилища
---
## 🧰 Примеры технологий с защитой от split-brain
- Pacemaker + Corosync (STONITH, quorum)
- Ceph (кворум через CRUSH)
- Galera Cluster (wsrep-cluster)
- DRBD (dual-primary блокировка)
---
## 🔗 См. также:
- [[Кластеры высокой доступности]]
- [[Геораспределённые кластеры и ЦОД]]
@@ -0,0 +1,73 @@
---
title: "Виды кластеров высокой доступности"
layout: single
---
Кластер — группа серверов, объединённых логически и работающих как единый ресурс. Применяются для обеспечения высокой доступности, отказоустойчивости и масштабируемости.
---
## 🔁 Активный / Пассивный
- Один узел активен, другие — в ожидании (standby)
- Пассивный включается при сбое активного
- Прост в реализации, но ресурсы используются неэффективно
📌 Примеры: Microsoft Failover Cluster, Patroni
---
## 🧭 Активный / Активный
- Все узлы обрабатывают запросы одновременно
- При отказе одного — нагрузка перераспределяется
- Требует балансировки и синхронизации
📌 Примеры: Galera Cluster, MySQL Group Replication, Kubernetes
---
## 🧩 Модульная избыточность
- Все узлы дублируют друг друга и одновременно выполняют одинаковые действия
- Система сохраняет работоспособность при отказе одного или нескольких узлов
📌 Применяется в критически важных системах (финансы, медицина)
---
## 🌍 Геораспределённый кластер
- Узлы размещены в разных дата-центрах или городах
- Обеспечивает катастрофоустойчивость
- Использует синхронную или асинхронную репликацию
📌 Примеры: VMware vSAN Stretch Cluster, Ceph, DRBD
---
## ⚙️ Кластеры вычислений (HPC)
- Для параллельных и ресурсоёмких расчётов
- Используются в научных и аналитических задачах
📌 Примеры: SLURM, Apache Mesos
---
## 📊 Сравнение
| Тип | Использование ресурсов | Время реакции | Сложность | Назначение |
|----------------------|------------------------|---------------|-----------|-----------------------------|
| Активный/пассивный | частичное | секунды | низкая | Отказоустойчивость |
| Активный/активный | полное | мгновенное | средняя | HA + масштабирование |
| Модульная избыточность | полное (дублирование) | мгновенное | высокая | Критичные задачи |
| Геораспределённый | полное | зависит от сети | высокая | Катастрофоустойчивость |
| HPC | полное | зависит от задач | средняя | Высокопроизводительные вычисления |
---
## 🔗 См. также:
- [[Кластеры высокой доступности]]
- [[Геораспределённые кластеры и ЦОД]]
@@ -0,0 +1,67 @@
---
title: "Геораспределённые кластеры и ЦОД"
layout: single
---
**Геораспределённые центры обработки данных (ЦОД)** — это архитектура, в которой компоненты ИТ-инфраструктуры размещены на **нескольких географически удалённых площадках**, обеспечивая высокую отказо- и катастрофоустойчивость.
---
## 🖧 Геораспределённый кластер
**Геораспределённый кластер** — кластер, растянутый на несколько площадок (обычно 2+ ЦОД), синхронизированных между собой.
📌 Цель: сохранить работоспособность даже при **полной недоступности одной площадки**.
---
## ⚙️ Особенности
- Используется **синхронная или асинхронная репликация**
- Узлы кластера распределены по площадкам
- Обычно реализуется в модели HA или DR
- Требует стабильного и быстрого канала связи
---
## 🔁 Репликация
- **Синхронная** — запись данных на обе площадки одновременно
✅ Минимальные потери данных
⚠️ Зависимость от сетевой задержки
- **Асинхронная** — запись на вторую площадку с задержкой
✅ Быстрее и надёжнее при плохой связи
⚠️ Возможна потеря последних транзакций
---
## 📦 Примеры реализации
- **Stretch Cluster** (VMware, Windows Server)
- **Ceph RADOS + multisite**
- **PostgreSQL с Patroni + WAL shipping**
- **DRBD + Pacemaker**
- **GlusterFS Geo-Replication**
---
## 🧠 Преимущества
- Катастрофоустойчивость (даже при потере ЦОД)
- Балансировка нагрузки между площадками
- Возможность переключения с минимальным RTO/RPO
---
## ⚠️ Сложности
- Увеличенные затраты (две площадки, каналы)
- Настройка quorum и репликации
- Сложность тестирования DR-сценариев
---
## 🔗 См. также:
- [[Кластеры высокой доступности]]
@@ -0,0 +1,35 @@
---
title: "Публичные выступления"
description: "Заметки по теме публичных выступлений"
---
## 🔑 Основные цели:
- Научиться эффективно **передавать идею** аудитории.
- Убедить слушателей в **ценности и реализуемости проекта**.
- Развить **уверенность** и **структурность** в речи.
## 🧩 Структура питча (pitch):
1. **Проблема** — почему это важно?
2. **Решение** — что вы предлагаете?
3. **Ценность** — в чём польза?
4. **Реализация** — как это работает?
5. **Призыв к действию** — что вы хотите от слушателя?
## 📌 Советы:
- **Начинайте сильно** — заинтересуйте с первой фразы.
- Используйте **истории и примеры** для вовлечения.
- Говорите **ясно и уверенно**, избегайте «эээ», «ну».
- **Контролируйте время**: 1 минута = 150 слов.
- **Практикуйтесь** — только практика делает вас уверенным.
## 🎯 Ошибки, которых стоит избегать:
- Перегруз фактами без структуры.
- Чтение с листа или слайдов.
- Монотонная речь без акцентов.
- Отсутствие ясной цели выступления.
## 💡 Ресурсы для улучшения навыков:
- Тренировки перед зеркалом или на камеру.
- Обратная связь от коллег или наставников.
- Изучение TED-выступлений как примеров.
Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB