Кратко — что нужно знать перед созданием RAID из SSD
- RAID — это объединение дисков для скорости (RAID0), надёжности (RAID1, RAID10) или сочетания (RAID5). RAID — не замена резервного копирования.
- Решите цель: скорость (RAID0), отказоустойчивость (RAID1/5/10) или компромисс.
- Убедитесь, что все SSD одинакового типа/размера/интерфейса по возможности и что у вас есть резервная копия данных.
- Выберите тип реализации: аппаратный RAID (контроллер/аппаратный RAID на плате), прошивочный RAID (UEFI/Intel RST) или программный RAID (Windows Storage Spaces / Linux mdadm). Программный RAID чаще проще, гибче и переносимее.
Ниже — пошаговые инструкции и примеры для популярных сценариев: создание RAID в UEFI/Intel RST (Windows), Windows Storage Spaces, и Linux mdadm. Также — советы по SSD (выравнивание, TRIM), мониторингу и восстановлению.
Выбор уровня RAID — коротко
- RAID0 (striping): максимальная скорость, нет избыточности — потеря любого диска = потеря данных.
- RAID1 (mirror): полная зеркализация → отказоустойчивость, скорость чтения↑, запись≈одинакова.
- RAID5 (parity): минимум 3 диска, одна паритетная информация → экономия места, отказоустойчивость 1 диск; падение производительности записи.
- RAID6: как RAID5, но с двойной паритетной защитой (устойчив к 2 дискам).
- RAID10 (1+0): минимум 4 диска — зеркалирование + стрипинг: высокая скорость + отказоустойчивость.
Подготовка SSD перед RAID
1. Сделайте резервную копию.
2. Убедитесь, что в BIOS/UEFI включён AHCI (или RAID‑режим, если используете материнский RAID). Переключение режима после установки ОС может привести к неработающей системе.
3. Рекомендуем выравнивание разделов на границе 1 MiB (стандартный современный подход) — избегает write amplification:
- В Linux parted и в Windows современные утилиты создают 1 MiB alignment по умолчанию.
4. Убедитесь в актуальности прошивок SSD и BIOS/UEFI.
Вариант A — Программный RAID в Linux (mdadm) — пример создания RAID1 и RAID0
1) Установите mdadm:
bash
sudo apt install mdadm # Debian/Ubuntu
2) Подготовьте диски (например /dev/sdb и /dev/sdc). Рекомендуется создать одинаковые GPT‑разделы с выравниванием 1MiB:
bash
пример создания одного раздела на весь диск с выравниванием 1MiB
sudo parted /dev/sdb --script mklabel gpt mkpart primary 1MiB 100%
sudo parted /dev/sdc --script mklabel gpt mkpart primary 1MiB 100%
разделы будут /dev/sdb1 и /dev/sdc1
3) Создание массива:
- RAID1 (mirror):
bash
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
- RAID0 (stripe) с размером чанка 64K:
bash
sudo mdadm --create /dev/md0 --level=0 --raid-devices=2 --chunk=64 /dev/sdb1 /dev/sdc1
- RAID5 (3 диска):
bash
sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 --chunk=64 /dev/sdb1 /dev/sdc1 /dev/sdd1
4) Следите за статусом:
bash
cat /proc/mdstat
sudo mdadm --detail /dev/md0
5) Создайте файловую систему и смонтируйте:
bash
sudo mkfs.ext4 /dev/md0
sudo mkdir -p /mnt/raid
sudo mount /dev/md0 /mnt/raid
Получите UUID для /etc/fstab
blkid /dev/md0
Добавьте в /etc/fstab запись по UUID.
6) Сохраните конфигурацию mdadm для загрузки:
bash
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u
7) TRIM и SSD:
- Для RAID0/1 обычно `fstrim` работает; используйте `fstrim -v /mnt/raid` регулярно (cron).
- Для RAID5/6 исторически были ограничения; в современных ядрах (и mdadm) поддержка discard улучшилась, но проверьте: `cat /sys/block/md0/queue/discard_max_bytes` и `cat /sys/block/md0/queue/discard_granularity`. Если discard=0 — fstrim не поддерживается. Лучше запускать `fstrim` и проверить успешность.
Источник и подробности: [Arch Wiki — RAID](https://wiki.archlinux.org/title/RAID) и [mdadm man page](https://man7.org/linux/man-pages/man8/mdadm.8.html).
Вариант B — Windows: Intel RST (UEFI/BIOS) — аппарат/прошивочный RAID (чтобы загрузиться с RAID)
> Примечание: переключайте SATA/RAID режим в BIOS до установки ОС. Если Windows уже установлена в AHCI, переключение в RAID без подготовки приведёт к BSOD.
1) В BIOS/UEFI переключите SATA Mode → RAID (или Intel RST).
2) Перезагрузите, войдите в Intel RST / Option ROM (обычно при загрузке клавиша Ctrl+I или соответствующая утилита UEFI).
3) Создайте массив: выберите диски, задайте тип RAID (RAID0/1/5/10), размер stripe (chunk). Подтвердите создание (внимание: все данные будут удалены).
4) Установите Windows (если создаёте загрузочный RAID): установщик Windows с драйвером Intel RST увидит массив как один диск. В некоторых случаях требуется загрузить драйвер RST при установке.
5) После установки установите драйверы Intel RST в Windows и утилиту Intel Rapid Storage Technology для управления.
TRIM: Современные версии Intel RST поддерживают TRIM на RAID0/NVMe в ряде конфигураций — смотрите документацию Intel и версию драйверов.
Официальная ссылка: [Intel RST](https://www.intel.com/content/www/us/en/support/articles/000005538/memory-and-storage.html)
---
Вариант C — Windows Storage Spaces (рекомендуется вместо динамических дисков)
Storage Spaces даёт гибкость и разные уровни (Simple = RAID0, Mirror ~ RAID1/10, Parity ~ RAID5).
Пример создания зеркального пула и виртуального диска (PowerShell, все данные будут удалены):
powershell
показать доступные физические диски, которые можно добавить
Get-PhysicalDisk | Where-Object CanPool -eq $true
создать пул
$pd = Get-PhysicalDisk -CanPool $true
New-StoragePool -FriendlyName "Pool1" -StorageSubSystemFriendlyName "Storage Spaces*" -PhysicalDisks $pd
создать виртуальный диск зеркального типа (Mirror)
New-VirtualDisk -StoragePoolFriendlyName "Pool1" -FriendlyName "VD1" -Size 2TB -ResiliencySettingName Mirror -NumberOfDataCopies 2 -ProvisioningType Fixed
Инициализация диска и формат
Get-VirtualDisk -FriendlyName "VD1" | Get-Disk | Initialize-Disk -PartitionStyle GPT
New-Partition -DiskNumber <num> -UseMaximumSize -AssignDriveLetter | Format-Volume -FileSystem NTFS -NewFileSystemLabel "RAID_Mirror"
Пошаговая инструкция: [Microsoft Docs — Storage Spaces](https://learn.microsoft.com/windows-server/storage/storage-spaces/).
Настройка параметров (stripe/ chunk size и выравнивание)
- Chunk/stripe size влияет на производительность: большие (128KB–512KB) для больших последовательных операций (медиа/рендер), меньшие (16KB–64KB) — для множества мелких IO (базы данных). Для игр и общих задач часто 64KB–128KB.
- В mdadm: `--chunk=64` означает 64 KiB. В Intel RST/RAID UI обычно есть выбор stripe size при создании массива.
Мониторинг, алерты и восстановление
- Linux/mdadm:
- Проверка статуса: `cat /proc/mdstat`, `mdadm --detail /dev/md0`.
- Восстановление: после замены диска:
bash
sudo mdadm --manage /dev/md0 --add /dev/sdc1
следить за rebuild: cat /proc/mdstat
- SMART: проверяйте SMART на SSD:
- SATA: `smartctl -a /dev/sdb` (smartmontools).
- NVMe: `smartctl -a /dev/nvme0n1` или `nvme smart-log /dev/nvme0n1` (nvme-cli).
- Windows: Intel RST UI / Storage Spaces Health в PowerShell (Get-StoragePool / Get-VirtualDisk).
Практические рекомендации и подводные камни
- RAID0 увеличивает скорость, но удваивает риск потери данных — используйте только при наличии резервных копий.
- RAID5/6 с SSD: будьте внимательны к нагрузке на паритет и возможным write-amplification; для высоконагруженных SSD‑систем RAID10 часто предпочтительнее.
- Для NVMe RAID на матплатах: некоторые реализации (например, Intel VROC) требуют лицензии и имеют свои нюансы (TRIM, bootability).
- TRIM: проверьте конкретную конфигурацию (RAID‑опция/драйвер/ядро) — не во всех случаях discard поддерживается. Регулярно используйте fstrim или schedule TRIM в Windows (есть по умолчанию).
- Всегда иметь резервное копирование до создания/перестроения массива.
Короткий чек‑лист действий (быстро)
1. Резервная копия данных.
2. Решите уровень RAID и реализацию (mdadm / Intel RST / Storage Spaces / аппаратный контроллер).
3. Подготовьте одинаковые SSD, обновите BIOS/firmware.
4. Создайте разделы с выравниванием 1MiB.
5. Создайте массив (пример mdadm/Intel RST/Storage Spaces).
6. Отформатируйте, настройте fstab/инициализацию и настроьте TRIM/планировщик fstrim.
7. Настройте мониторинг SMART и слежение за RAID (уведомления).
8. Тестируйте (чтение/запись, восстановление).