docs: сравнение схем RAID1+RAID10 vs единый RAID10
Схема B (4 диска RAID10 + Hot Spare) рекомендована по умолчанию. Схема A — раздельно для тяжёлых БД. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+186
-111
@@ -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 | 3–6 | Хранилище `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:2–0: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 + ЛЭРС, 60–80 ГБ | БД ЛЭРС, 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 + все диски ВМ + все БД
|
||||
Диски 5–8 → 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`, 80–100 ГБ | `data-db`, 100+ ГБ |
|
||||
| VM-102 (ЛЭРС) | `local-lvm`, 60–80 ГБ | `data-db`, 60+ ГБ |
|
||||
| VM-103 (Лифты) | `local-lvm`, 60–80 ГБ | `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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user