docs(deploy): MegaRAID Write Back, разбивка 8 дисков, RAID10 под БД

Добавлены настройки VD (Write Back, Adaptive Read Ahead), схема RAID1+RAID10+Hot Spare, подключение data-db, двухдисковые ВМ на local-lvm.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
PTah
2026-07-09 10:57:44 +10:00
parent d76958f651
commit d93660c817
+212 -16
View File
@@ -4,7 +4,7 @@
| Параметр | Значение |
|----------|----------|
| Версия | 1.0 |
| Версия | 1.1 |
| Дата | 09.07.2026 |
| Связанный документ | [Техническое задание](TZ-proxmox-konsolidaciya.md) |
@@ -15,6 +15,10 @@
1. [Предварительные требования](#1-предварительные-требования)
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-под-базы-данных)
4. [Фаза 2 — Настройка IOMMU и VFIO (Вариант А)](#4-фаза-2--настройка-iommu-и-vfio-вариант-а)
5. [Фаза 3 — Создание виртуальных машин](#5-фаза-3--создание-виртуальных-машин)
6. [Фаза 4 — Установка Windows 10](#6-фаза-4--установка-windows-10)
@@ -120,17 +124,109 @@ chmod +x /root/check-iommu.sh
## 3. Фаза 1 — Установка Proxmox VE
### 3.1. Установка
> Рекомендуемый путь — **аппаратный RAID** на Broadcom/LSI MegaRAID с BBU/CacheVault, **ext4 + LVM-thin**. Подробности по выбору контроллера — в [ТЗ, раздел 3.1](TZ-proxmox-konsolidaciya.md#31-подсистема-хранения-общая-для-обоих-вариантов).
### 3.1. Настройка MegaRAID (BIOS контроллера)
Перед установкой Proxmox войдите в утилиту конфигурирования контроллера (**Ctrl+R** при загрузке, или **UEFI MegaRAID Configuration Utility**).
#### Обязательные параметры Virtual Drive (VD)
Для **каждого** созданного виртуального диска (RAID1 и RAID10) выставьте:
| Параметр | Значение | Зачем |
|----------|----------|-------|
| **Write Policy** | **Write Back with BBU** (или **Write Back**, если CacheVault исправен) | Write Through снижает скорость записи в десятки раз — критично для БД СКАДА/ЛЭРС |
| **Read Policy** | **Adaptive Read Ahead** | Контроллер предугадывает чтение логов и баз данных |
| **Disk Cache Policy** | **Enabled** (или по рекомендации вендора SSD) | |
| **I/O Policy** | Direct (по умолчанию) | |
| **Access Policy** | Read/Write | |
> **Важно.** Write Back **допустим только** при исправном **BBU** или **CacheVault (CVPM02/CVPM05)**. Проверьте статус: `Optimal`, заряд кэша — `OK`. Без защиты кэша используйте Write Through (но производительность будет низкой).
#### Проверка CacheVault / BBU
В утилите MegaRAID или после установки ОС:
```bash
# После установки Proxmox (пакет storcli)
apt install storcli
storcli64 /c0 show | grep -i "cache\|bbu\|vault"
storcli64 /c0/cv show
```
Ожидаемый статус CacheVault: **Optimal**.
---
### 3.2. Разбивка дисков (8 дисков)
Рекомендуемая схема для серверной конфигурации с 8 физическими SSD/SAS-дисками:
```
Диски 1, 2 → RAID 1 → VD0 → Proxmox VE (ext4) + системные диски ВМ (Windows 10)
Диски 3–6 → RAID 10 → VD1 → Только базы данных (СКАДА, ЛЭРС, «Меркурий»)
Диски 7, 8 → Global Hot Spare → Автозамена при отказе любого из дисков 1–6
```
| 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 | — |
\*При дисках 960 ГБ. Для 1,92 ТБ — пропорционально.
#### Создание массивов в MegaRAID BIOS
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)
```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)
| Дисков | Схема |
|--------|-------|
| 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 — бюджетная альтернатива |
---
### 3.3. Установка Proxmox VE
1. Загрузиться с ISO Proxmox VE 8.x.
2. Target disk: ZFS (RAID1) — выбрать 2 NVMe.
3. Задать:
2. На экране выбора диска выбрать **VD0 (RAID1)** — первый виртуальный диск 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 — по сети заказчика
4. Завершить установку, перезагрузить.
7. Завершить установку, перезагрузить.
### 3.2. Первичная настройка хоста
> **VD1 (RAID10)** на этом этапе **не трогаем** — он будет подключён после установки (п. 3.4).
#### Первичная настройка хоста
```bash
# Обновление системы
@@ -141,9 +237,13 @@ timedatectl set-timezone Europe/Moscow
# Проверка версии
pveversion -v
# Проверка RAID
storcli64 /c0/vall show
storcli64 /c0/eall/sall show
```
### 3.3. Загрузка ISO в хранилище
#### Загрузка ISO в хранилище
Через веб-интерфейс: **Datacenter → pve-scada → local → ISO Images → Upload**
@@ -152,12 +252,84 @@ pveversion -v
- `Win10_22H2_ru.iso`
- `virtio-win-0.1.xxxx.iso`
### 3.4. Настройка хранилища (если нужен NAS для бэкапов)
#### Настройка хранилища для бэкапов (NAS)
**Datacenter → Storage → Add → NFS/CIFS** — указать путь к NAS для vzdump.
---
### 3.4. Подключение RAID10 под базы данных
VD1 (RAID10) предназначен **только для активно пишущихся баз данных** СКАДА, ЛЭРС и «Меркурия». Системные диски Windows остаются на VD0 (`local-lvm`).
#### Шаг 1. Разметка VD1 на хосте
```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
```
#### Шаг 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
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 (Вариант А)
> Для **Варианта Б (RDP)** этот раздел можно пропустить, достаточно базовой установки Proxmox.
@@ -275,6 +447,8 @@ modprobe vendor-reset
## 5. Фаза 3 — Создание виртуальных машин
> При схеме **8 дисков** (раздел 3.2): `scsi0` — системный диск на `local-lvm` (RAID1), `scsi1` — диск БД на `data-db` (RAID10).
### 5.1. Создание через CLI (пример VM-101)
```bash
@@ -285,10 +459,13 @@ qm create 101 --name vm-scada --memory 20480 --cores 6 --sockets 1 \
--net0 virtio,bridge=vmbr0,firewall=1
# EFI disk
qm set 101 --efidisk0 local-zfs:1,efitype=4m,pre-enrolled-keys=0
qm set 101 --efidisk0 local-lvm:1,efitype=4m,pre-enrolled-keys=0
# Системный диск
qm set 101 --scsi0 local-zfs:200,iothread=1,discard=on,ssd=1
# Системный диск (RAID1 / local-lvm)
qm set 101 --scsi0 local-lvm:100,iothread=1,discard=on,ssd=1
# Диск баз данных (RAID10 / data-db) — если настроен п. 3.4
qm set 101 --scsi1 data-db:100,iothread=1,discard=on,ssd=1
# CD-ROM с Windows
qm set 101 --ide2 local:iso/Win10_22H2_ru.iso,media=cdrom
@@ -313,8 +490,9 @@ qm create 102 --name vm-lers --memory 16384 --cores 4 --sockets 1 \
--cpu host --machine q35 --bios ovmf --ostype win10 \
--scsihw virtio-scsi-single --agent enabled=1 \
--net0 virtio,bridge=vmbr0,firewall=1
qm set 102 --efidisk0 local-zfs:1,efitype=4m,pre-enrolled-keys=0
qm set 102 --scsi0 local-zfs:120,iothread=1,discard=on,ssd=1
qm set 102 --efidisk0 local-lvm:1,efitype=4m,pre-enrolled-keys=0
qm set 102 --scsi0 local-lvm:80,iothread=1,discard=on,ssd=1
qm set 102 --scsi1 data-db:60,iothread=1,discard=on,ssd=1
qm set 102 --ide2 local:iso/Win10_22H2_ru.iso,media=cdrom
qm set 102 --ide0 local:iso/virtio-win-0.1.xxxx.iso,media=cdrom
qm set 102 --usb0 xhci=1 --onboot 1
@@ -324,14 +502,16 @@ qm create 103 --name vm-lifts --memory 16384 --cores 4 --sockets 1 \
--cpu host --machine q35 --bios ovmf --ostype win10 \
--scsihw virtio-scsi-single --agent enabled=1 \
--net0 virtio,bridge=vmbr0,firewall=1
qm set 103 --efidisk0 local-zfs:1,efitype=4m,pre-enrolled-keys=0
qm set 103 --scsi0 local-zfs:120,iothread=1,discard=on,ssd=1
qm set 103 --efidisk0 local-lvm:1,efitype=4m,pre-enrolled-keys=0
qm set 103 --scsi0 local-lvm:80,iothread=1,discard=on,ssd=1
qm set 103 --ide2 local:iso/Win10_22H2_ru.iso,media=cdrom
qm set 103 --ide0 local:iso/virtio-win-0.1.xxxx.iso,media=cdrom
qm set 103 --usb0 xhci=1 --onboot 1
qm set 103 --boot order=ide2\;scsi0
```
> VM-103: диск `data-db` добавлять только если база данных лифтовой системы хранится локально на диске ВМ.
### 5.2. Создание через веб-интерфейс
Для каждой ВМ (**Create VM**):
@@ -344,7 +524,8 @@ qm set 103 --boot order=ide2\;scsi0
| System | Machine | q35 |
| System | BIOS | OVMF (UEFI) |
| System | Qemu Agent | ✓ |
| Disks | Bus | SCSI, VirtIO, SSD, Discard |
| Disks | scsi0 | `local-lvm`, VirtIO SCSI, SSD, Discard — система Windows |
| Disks | scsi1 | `data-db`, VirtIO SCSI, SSD — базы данных (если настроен RAID10) |
| CPU | Type | host |
| CPU | Cores | по таблице |
| Memory | Memory | по таблице |
@@ -748,6 +929,21 @@ qmrestore /mnt/pve/nas-backup/dump/vzdump-qemu-101-*.zst 101 --force
## 12. Устранение неполадок
### 12.0. MegaRAID — degraded / rebuild
```bash
storcli64 /c0 show
storcli64 /c0/vall show
storcli64 /c0/eall/sall show
```
| Состояние | Действие |
|-----------|----------|
| **Degraded** | Проверить, сработал ли Global Hot Spare; дождаться rebuild |
| **Rebuild in progress** | Не выключать сервер; нагрузка на массив будет выше |
| **BBU/CacheVault Failed** | Немедленно переключить Write Policy на Write Through до замены модуля |
| **Predictive Failure** | Заменить диск; hot spare подхватит автоматически |
### 12.1. GPU passthrough — VM не стартует
```bash