mirror of
https://github.com/ada-dmitry/ada-dmitry.github.io.git
synced 2026-09-24 01:10:35 +00:00
Refactor code structure for improved readability and maintainability
This commit is contained in:
+6
-6
@@ -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 диска
|
||||
- Использует два блока чётности, может выдержать отказ двух дисков
|
||||
- **Преимущество**: высокая надёжность
|
||||
- **Недостаток**: больше вычислительная нагрузка на запись
|
||||
|
||||
> 💡 Используется в критичных системах с большим объёмом данных
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Аппаратный vs программный RAID
|
||||
|
||||
| Тип | Преимущества | Недостатки |
|
||||
|------------|--------------------------------------|--------------------------------|
|
||||
| **Аппаратный** | Выделенный RAID-контроллер, кэш, батарея | Дороже, сложнее заменить |
|
||||
| **Программный**| Не требует спец. оборудования | Загрузка на CPU, меньше функций|
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Ключевые понятия
|
||||
|
||||
- **Чётность (Parity)** — метод вычисления контрольных сумм для восстановления данных
|
||||
- **Hot Spare** — резервный диск, который автоматически заменяет вышедший из строя
|
||||
- **Rebuild** — процесс восстановления массива после сбоя
|
||||
|
||||
---
|
||||
|
||||
## ✅ Итоги
|
||||
|
||||
| Уровень RAID | Мин. дисков | Скорость | Надёжность | Эффективность |
|
||||
|--------------|-------------|----------|-------------|----------------|
|
||||
| RAID 0 | 2 | ⭐⭐⭐⭐ | ❌ | 100% |
|
||||
| RAID 1 | 2 | ⭐⭐ | ✅✅ | 50% |
|
||||
| RAID 10 | 4 | ⭐⭐⭐ | ✅✅✅ | 50% |
|
||||
| RAID 5 | 3 | ⭐⭐⭐ | ✅ | ~67–80% |
|
||||
| RAID 6 | 4 | ⭐⭐ | ✅✅ | ~50–75% |
|
||||
|
||||
> 💬 Выбор 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 |
Reference in New Issue
Block a user