docs: сравнение схем RAID1+RAID10 vs единый RAID10

Схема B (4 диска RAID10 + Hot Spare) рекомендована по умолчанию. Схема A — раздельно для тяжёлых БД.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
PTah
2026-07-09 11:02:06 +10:00
parent d93660c817
commit 50616e6aa8
3 changed files with 218 additions and 122 deletions
+186 -111
View File
@@ -4,7 +4,7 @@
| Параметр | Значение |
|----------|----------|
| Версия | 1.1 |
| Версия | 1.2 |
| Дата | 09.07.2026 |
| Связанный документ | [Техническое задание](TZ-proxmox-konsolidaciya.md) |
@@ -16,9 +16,10 @@
2. [Фаза 0 — Подготовка](#2-фаза-0--подготовка)
3. [Фаза 1 — Установка Proxmox VE](#3-фаза-1--установка-proxmox-ve)
- [3.1. Настройка MegaRAID (BIOS контроллера)](#31-настройка-megaraid-bios-контроллера)
- [3.2. Разбивка дисков (8 дисков)](#32-разбивка-дисков-8-дисков)
- [3.3. Установка Proxmox VE](#33-установка-proxmox-ve)
- [3.4. Подключение RAID10 под базы данных](#34-подключение-raid10-под-базы-данных)
- [3.2. Выбор схемы разбивки дисков](#32-выбор-схемы-разбивки-дисков)
- [3.3. Схема «A» — RAID1 + RAID10 (раздельно)](#33-схема-a--raid1--raid10-раздельно)
- [3.4. Схема «B» — один RAID10 на всё (рекомендуется)](#34-схема-b--один-raid10-на-всё-рекомендуется)
- [3.5. Установка Proxmox VE](#35-установка-proxmox-ve)
4. [Фаза 2 — Настройка IOMMU и VFIO (Вариант А)](#4-фаза-2--настройка-iommu-и-vfio-вариант-а)
5. [Фаза 3 — Создание виртуальных машин](#5-фаза-3--создание-виртуальных-машин)
6. [Фаза 4 — Установка Windows 10](#6-фаза-4--установка-windows-10)
@@ -159,72 +160,205 @@ storcli64 /c0/cv show
---
### 3.2. Разбивка дисков (8 дисков)
### 3.2. Выбор схемы разбивки дисков
Рекомендуемая схема для серверной конфигурации с 8 физическими SSD/SAS-дисками:
Перед созданием массивов в MegaRAID выберите одну из двух схем.
#### Сравнение схем
| Критерий | **Схема A:** RAID1 + RAID10 | **Схема B:** один RAID10 на всё |
|----------|----------------------------|----------------------------------|
| Сложность | Выше (2 VD, 2 хранилища Proxmox, 2 диска на ВМ) | **Ниже** (1 VD, `local-lvm`, один диск на ВМ) |
| Минимум дисков | 6 (2+4) + spare | **6** (4+2 spare) |
| IOPS для БД | Максимум (отдельный RAID10) | Хороший (общий RAID10) |
| Изоляция нагрузки | БД не конкурируют с ОС/ВМ за диски | Общая очередь I/O |
| Ёмкость при 8×960 ГБ | ~0,9 + ~1,9 = **~2,8 ТБ** | **~1,9 ТБ** (4 диска в массиве) |
| Hot Spare при 8 дисках | 2 spare | **4 spare** (избыточно, но допустимо) |
| Когда выбирать | Тяжёлые БД, доказанная высокая запись | **По умолчанию** для данного проекта |
#### Рекомендация для СКАДА / ЛЭРС / «Меркурия»
> **Схема B (4 диска RAID10 + Hot Spare)** — рекомендуемый вариант по умолчанию.
Текущая нагрузка (3 ПК на i5-7400 / 8 ГБ) умеренная. Один RAID10 из 4 SSD с write-back кэшем MegaRAID **достаточен** для Proxmox, дисков Windows и баз данных одновременно. Схема проще в установке, миграции и сопровождении.
**Схему A** выбирайте, если:
- базы СКАДА/ЛЭРС уже сейчас активно упираются в диск;
- планируется сильный рост архивов;
- нужна жёсткая изоляция: сбой/нагрузка на БД не должны затрагивать загрузку Windows.
#### Сводная таблица по количеству дисков
| Всего дисков | Схема B (рекомендуется) | Схема A (раздельно) |
|-------------|------------------------|---------------------|
| **6** | 4 → RAID10 (всё) + 2 Hot Spare | 2 → RAID1 + 4 → RAID10, spare нет* |
| **8** | 4 → RAID10 (всё) + 4 Hot Spare | 2 → RAID1 + 4 → RAID10 + 2 Hot Spare |
| **4** | 4 → RAID10 (всё), без spare | — |
| **2** | — | 2 → RAID1 (всё), без spare |
\*При 6 дисках и схеме A spare не остаётся — допустимо для бюджетной конфигурации, но лучше 8 дисков.
---
### 3.3. Схема «A» — RAID1 + RAID10 (раздельно)
Proxmox и системные диски ВМ — на **RAID1**. Базы данных и рабочие файлы — на **отдельном RAID10**.
```
Диски 1, 2 → RAID 1 → VD0 → Proxmox VE (ext4) + системные диски ВМ (Windows 10)
Диски 3–6 → RAID 10 → VD1 → Только базы данных (СКАДА, ЛЭРС, «Меркурий»)
Диски 7, 8 → Global Hot Spare → Автозамена при отказе любого из дисков 1–6
Диски 1, 2 → RAID 1 → VD0 → Proxmox + диски Windows (система)
Диски 3–6 → RAID 10 → VD1 → Базы СКАДА, ЛЭРС, «Меркурий», рабочие файлы
Диски 7, 8 → Global Hot Spare
```
| VD | RAID | Физические диски | Назначение | Примерный объём* |
|----|------|-----------------|------------|-----------------|
| VD0 | RAID1 | 1, 2 | ОС Proxmox, `local-lvm`системные диски ВМ | ~960 ГБ (из 2× 960 ГБ) |
| VD1 | RAID10 | 3, 4, 5, 6 | Активно пишущиеся БД | ~1,9 ТБ (из 4× 960 ГБ) |
| Hot Spare | — | 7, 8 | Global Hot Spare | — |
| VD | RAID | Диски | Назначение в Proxmox | Примерный объём* |
|----|------|-------|---------------------|-----------------|
| VD0 | RAID1 | 1, 2 | Установка Proxmox, `local-lvm``scsi0` ВМ (Windows) | ~960 ГБ |
| VD1 | RAID10 | 36 | Хранилище `data-db``scsi1` ВМ (БД и данные) | ~1,9 ТБ |
| — | Hot Spare | 7, 8 | Автозамена | — |
\*При дисках 960 ГБ. Для 1,92 ТБ — пропорционально.
#### Создание в MegaRAID BIOS
#### Создание массивов в MegaRAID BIOS
1. **VD0:** диски 1, 2 → RAID **1** → политики из п. 3.1.
2. **VD1:** диски 3, 4, 5, 6 → RAID **10** → политики из п. 3.1.
3. **Hot Spare:** диски 7, 8 → **Make Global Hot Spare**.
1. **VD0 (RAID1):** выбрать диски 1 и 2 → RAID Level **1** → применить политики из п. 3.1.
2. **VD1 (RAID10):** выбрать диски 3, 4, 5, 6 → RAID Level **10** → применить политики из п. 3.1.
3. **Hot Spare:** диски 7 и 8 → **Make Global Hot Spare** (на обоих).
При отказе любого диска из VD0 или VD1 контроллер **автоматически** начнёт rebuild на hot spare без участия оператора.
#### Создание через StorCLI (альтернатива, после загрузки с Live-USB)
#### StorCLI
```bash
# Пример (номера enclosure/slot уточнить: storcli64 /c0/eall/sall show)
# RAID1 — диски 0:0 и 0:1
storcli64 /c0 add vd r1 drives=0:0,0:1 writepolicy=wb readpolicy=ra
# RAID10 — диски 0:20:5
storcli64 /c0 add vd r10 drives=0:2,0:3,0:4,0:5 writepolicy=wb readpolicy=ra
# Global Hot Spare — диски 0:6 и 0:7
storcli64 /c0/e0/s6 add spares
storcli64 /c0/e0/s7 add spares
```
#### Упрощённые схемы (если дисков меньше 8)
#### Установка Proxmox (схема A)
| Дисков | Схема |
|--------|-------|
| 4 | RAID10 (все 4) → один VD → ext4 + LVM-thin (см. [ТЗ 3.1](TZ-proxmox-konsolidaciya.md#31-подсистема-хранения-общая-для-обоих-вариантов)) |
| 2 | RAID1 → один VD → ext4 + LVM-thin |
| 2× NVMe (tower, без RAID-контроллера) | ZFS mirror при установке Proxmox — бюджетная альтернатива |
1. Установить Proxmox на **VD0 (RAID1)** → ext4 → LVM-thin (`local-lvm`).
2. **VD1 не форматировать** при установке.
3. После установки — подключить VD1 как хранилище `data-db` (п. 3.5, шаг «Схема A»).
#### Размещение дисков ВМ (схема A)
| ВМ | scsi0 (`local-lvm`, RAID1) | scsi1 (`data-db`, RAID10) |
|----|---------------------------|--------------------------|
| VM-101 | Windows 10 + программы, 80–100 ГБ | БД СКАДА + «Меркурий», 100+ ГБ |
| VM-102 | Windows 10 + ЛЭРС, 6080 ГБ | БД ЛЭРС, 60+ ГБ |
| VM-103 | Windows 10 + лифты, 60–80 ГБ | БД (если есть), по необходимости |
```bash
# Пример VM-101
qm set 101 --scsi0 local-lvm:100,iothread=1,discard=on,ssd=1
qm set 101 --scsi1 data-db:100,iothread=1,discard=on,ssd=1
```
В Windows: перенести каталоги баз данных на диск D: (`scsi1`).
---
### 3.3. Установка Proxmox VE
### 3.4. Схема «B» — один RAID10 на всё (рекомендуется)
Все данные — Proxmox, диски ВМ, базы, рабочие файлы — на **одном RAID10**. Оставшиеся диски — **Global Hot Spare**.
```
Диски 1–4 → RAID 10 → VD0 → Proxmox + все диски ВМ + все БД
Диски 58 → Global Hot Spare (при 8 дисках; при 6 — диски 5–6)
```
| Всего дисков | RAID10 | Hot Spare | Полезный объём* |
|-------------|--------|-----------|----------------|
| 6 | 4 диска | 2 | ~1,9 ТБ |
| 8 | 4 диска | 4 | ~1,9 ТБ |
\*При 4× 960 ГБ SSD. Для 4× 1,92 ТБ → ~3,8 ТБ.
> **Почему не все 8 дисков в RAID10?** RAID10 из 8 дисков дал бы ~3,8 ТБ, но для данного проекта избыточен. 4 диска в RAID10 + 4 spare дают **быструю автозамену** при отказе (два spare на один массив) без усложнения. Если нужен объём, а не spare — можно 6 или 8 дисков в RAID10 (см. ниже).
#### Создание в MegaRAID BIOS (6 дисков)
1. **VD0:** диски 1, 2, 3, 4 → RAID **10** → политики из п. 3.1.
2. **Hot Spare:** диски 5, 6 → **Make Global Hot Spare**.
#### Создание в MegaRAID BIOS (8 дисков)
1. **VD0:** диски 1, 2, 3, 4 → RAID **10**.
2. **Hot Spare:** диски 5, 6, 7, 8 → **Make Global Hot Spare**.
#### StorCLI
```bash
# RAID10 — 4 диска
storcli64 /c0 add vd r10 drives=0:0,0:1,0:2,0:3 writepolicy=wb readpolicy=ra
# Hot Spare (6 дисков: 2 spare; 8 дисков: 4 spare)
storcli64 /c0/e0/s4 add spares
storcli64 /c0/e0/s5 add spares
# при 8 дисках дополнительно:
storcli64 /c0/e0/s6 add spares
storcli64 /c0/e0/s7 add spares
```
#### Установка Proxmox (схема B)
1. Установить Proxmox на **VD0 (RAID10)****ext4** → LVM-thin (`local-lvm`).
2. Все диски ВМ создавать на `local-lvm`**один диск на ВМ**, без разделения.
3. Базы данных хранить на том же диске Windows (или вынести в отдельный каталог на `C:` / `D:` внутри одного виртуального диска).
```bash
# Пример VM-101 — один диск на всё
qm set 101 --scsi0 local-lvm:200,iothread=1,discard=on,ssd=1
```
#### Вариант: 6–8 дисков целиком в RAID10 (максимум объёма, без spare)
Если hot spare не нужен, а важен объём:
| Дисков | RAID10 | Полезный объём (4×960 база) |
|--------|--------|------------------------------|
| 6 | 6 дисков (3 пары) | ~2,8 ТБ |
| 8 | 8 дисков (4 пары) | ~3,8 ТБ |
```bash
# 8 дисков в одном RAID10 (без spare)
storcli64 /c0 add vd r10 drives=0:0,0:1,0:2,0:3,0:4,0:5,0:6,0:7 writepolicy=wb readpolicy=ra
```
> Без hot spare при отказе диска массив уходит в **Degraded** до ручной замены. Для диспетчерской рекомендуется хотя бы **2 Global Hot Spare**.
---
### 3.5. Установка Proxmox VE
#### Общие шаги (обе схемы)
1. Загрузиться с ISO Proxmox VE 8.x.
2. На экране выбора диска выбрать **VD0 (RAID1)** первый виртуальный диск MegaRAID.
3. **Тип файловой системы:** **ext4** (или **xfs** — допустимая альтернатива).
2. На экране выбора диска выбрать **VD0** (единственный или первый виртуальный диск MegaRAID).
3. **Тип файловой системы:** **ext4** (или **xfs**).
4. **Не выбирать ZFS** при аппаратном RAID.
5. Proxmox автоматически создаст структуру **LVM-thin** (`local-lvm`) для дисков виртуальных машин.
6. Задать:
- Hostname: `pve-scada`
- IP: `192.168.10.10/24`
- Gateway, DNS — по сети заказчика
5. Proxmox автоматически создаст **LVM-thin** (`local-lvm`) для дисков виртуальных машин.
6. Задать hostname `pve-scada`, IP `192.168.10.10/24`, gateway, DNS.
7. Завершить установку, перезагрузить.
> **VD1 (RAID10)** на этом этапе **не трогаем** — он будет подключён после установки (п. 3.4).
#### Дополнительно для схемы A: подключение VD1 (RAID10) под БД
Выполнить **после** установки Proxmox, если выбрана схема A:
```bash
# VD1 обычно /dev/sdb
lsblk
storcli64 /c0/vall show
parted /dev/sdb mklabel gpt
parted /dev/sdb mkpart primary ext4 0% 100%
mkfs.ext4 -L pve-data-db /dev/sdb1
mkdir -p /mnt/pve/data-db
echo 'LABEL=pve-data-db /mnt/pve/data-db ext4 defaults,noatime 0 2' >> /etc/fstab
mount -a
pvesm add dir data-db --path /mnt/pve/data-db --content images,backup --maxfiles 0
```
Для схемы B этот шаг **не выполняется**.
#### Первичная настройка хоста
@@ -256,78 +390,18 @@ storcli64 /c0/eall/sall show
**Datacenter → Storage → Add → NFS/CIFS** — указать путь к NAS для vzdump.
---
### 3.4. Подключение RAID10 под базы данных
VD1 (RAID10) предназначен **только для активно пишущихся баз данных** СКАДА, ЛЭРС и «Меркурия». Системные диски Windows остаются на VD0 (`local-lvm`).
#### Шаг 1. Разметка VD1 на хосте
#### Проверка I/O (опционально)
```bash
# Убедиться, что VD1 виден (обычно /dev/sdb)
lsblk
storcli64 /c0/vall show
# Схема B — тест на local-lvm
fio --name=pve-test --directory=/var/lib/vz --rw=randwrite --bs=4k \
--numjobs=4 --iodepth=32 --size=1G --runtime=30 --time_based
# Создать раздел и файловую систему
parted /dev/sdb mklabel gpt
parted /dev/sdb mkpart primary ext4 0% 100%
mkfs.ext4 -L pve-data-db /dev/sdb1
# Точка монтирования
mkdir -p /mnt/pve/data-db
echo 'LABEL=pve-data-db /mnt/pve/data-db ext4 defaults,noatime 0 2' >> /etc/fstab
mount -a
```
#### Шаг 2. Добавить хранилище в Proxmox
**Datacenter → Storage → Add → Directory:**
| Параметр | Значение |
|----------|----------|
| ID | `data-db` |
| Directory | `/mnt/pve/data-db` |
| Content | Disk image, VZDump backup file |
| Shared | No |
Или через CLI:
```bash
pvesm add dir data-db --path /mnt/pve/data-db --content images,backup --maxfiles 0
```
#### Шаг 3. Разделение дисков ВМ
Для каждой ВМ создаются **два диска**:
| ВМ | Диск 1 (система) | Диск 2 (базы данных) |
|----|-----------------|---------------------|
| VM-101 (СКАДА + «Меркурий») | `local-lvm`, 80100 ГБ | `data-db`, 100+ ГБ |
| VM-102 (ЛЭРС) | `local-lvm`, 6080 ГБ | `data-db`, 60+ ГБ |
| VM-103 (Лифты) | `local-lvm`, 6080 ГБ | `data-db` — только если БД на этом диске |
Пример добавления диска БД к VM-101:
```bash
qm set 101 --scsi1 data-db:100,iothread=1,discard=on,ssd=1
```
В Windows:
- Диск 0 (VirtIO SCSI) — система Windows 10 + программы.
- Диск 1 (VirtIO SCSI) — папки баз данных (перенести каталоги СКАДА/ЛЭРС/«Меркурия» на этот том).
#### Шаг 4. Проверка I/O
```bash
# Быстрый тест записи на RAID10
# Схема A — сравнить RAID1 и RAID10
fio --name=db-test --directory=/mnt/pve/data-db --rw=randwrite --bs=4k \
--numjobs=4 --iodepth=32 --size=1G --runtime=30 --time_based
```
Ожидаемый результат: существенно выше random write IOPS на `/mnt/pve/data-db`, чем на `local-lvm` (RAID1).
---
## 4. Фаза 2 — Настройка IOMMU и VFIO (Вариант А)
@@ -447,7 +521,8 @@ modprobe vendor-reset
## 5. Фаза 3 — Создание виртуальных машин
> При схеме **8 дисков** (раздел 3.2): `scsi0` — системный диск на `local-lvm` (RAID1), `scsi1` — диск БД на `data-db` (RAID10).
> При схеме **A** (RAID1+RAID10): `scsi0` — система на `local-lvm`, `scsi1` — БД на `data-db`.
> При схеме **B** (один RAID10): только `scsi0` на `local-lvm` — один диск на всё.
### 5.1. Создание через CLI (пример VM-101)