мета-данные страницы
Создание программного RAID и NFS
Создание программного RAID и раздача по NFS
Инструкция по объединению дисков в массив mdadm и настройке сетевого хранилища с автомонтированием systemd.
Часть 1: Подготовка дисков в гипервизоре
Если вы работаете в виртуальной среде (например, Proxmox, VMware, VirtualBox), добавьте два новых виртуальных диска к вашей виртуальной машине. Обязательно включите кэширование (Write back) и Advanced-опции при необходимости.
После добавления дисков и загрузки ОС, проверьте, как система их определила:
Copy
lsblk
Запомните имена новых устройств (в примерах ниже мы будем называть их /dev/sdX и /dev/sdY).
Часть 2: Сборка программного RAID 0
Мы создадим массив нулевого уровня (Stripe) с помощью утилиты mdadm. Параметры команды: --create — создать, -l 0 — уровень RAID 0, -n 2 — количество дисков.
Copy
mdadm --create /dev/md0 -l 0 -n 2 /dev/sdX /dev/sdY
Обязательно сохраните текущую конфигурацию массивов в системный файл, чтобы RAID собирался автоматически после перезагрузки:
Copy
mdadm --detail --scan --verbose >> /etc/mdadm.conf
Часть 3: Разметка и форматирование
Создадим на нашем новом RAID-устройстве (/dev/md0) современную таблицу разделов GPT и один большой раздел на всё доступное место с помощью утилиты fdisk:
Copy
fdisk /dev/md0 # Внутри fdisk введите последовательность: # g (создать новую GPT) # n (новый раздел) # Enter (номер по умолчанию) # Enter (первый сектор по умолчанию) # Enter (последний сектор по умолчанию - на весь диск) # w (записать изменения и выйти)
Теперь отформатируем созданный раздел (обычно он получает имя /dev/md0p1) в надежную файловую систему ext4:
Copy
mkfs.ext4 /dev/md0p1
Часть 4: Локальное монтирование RAID
Создайте директорию, куда будет смонтирован ваш дисковый массив (например, /raid):
Copy
mkdir /raid
Добавьте запись в файл /etc/fstab, чтобы диск монтировался автоматически при старте сервера:
Copy
vim /etc/fstab # Добавьте следующую строку: /dev/md0p1 /raid ext4 defaults 0 0
Примените настройки fstab без перезагрузки и проверьте результат:
Copy
mount -av df -h -T touch /raid/a && ls /raid/a
Часть 5: Настройка сервера NFS
Теперь превратим наш сервер с RAID в сетевое хранилище. Установите необходимые пакеты (имя может отличаться в зависимости от дистрибутива, например nfs-server nfs-utils или nfs-kernel-server):
Copy
apt-get update && apt-get install -y nfs-server nfs-utils
Создадим папку специально для сетевой шары внутри нашего RAID-массива:
Copy
mkdir /raid/nfs
Настроим права доступа к шаре. Откройте файл экспорта /etc/exports и добавьте конфигурацию (rw: чтение и запись, sync: синхронный режим записи для надежности, no_root_squash: полный доступ для root клиента, subtree_check: проверка доступа к подкаталогам):
Copy
vim /etc/exports # Формат: /путь IP_адрес_сети/маска(опции) /raid/nfs вась айписник(rw,sync,no_root_squash,subtree_check)
Примените файл экспорта, добавьте службу в автозагрузку и перезапустите её:
Copy
exportfs -a systemctl enable nfs-server && systemctl restart nfs-server
Часть 6: Настройка NFS-клиента (Автомонтирование)
Перейдите на клиентскую машину, которой нужно получить доступ к хранилищу. Установите клиентские пакеты и включите службу маппинга RPC:
Copy
apt-get install nfs-utils systemctl enable rpcbind && systemctl restart rpcbind
Создайте точку монтирования на клиенте и выдайте ей максимальные права для избежания проблем с доступом на этапе настройки:
Copy
mkdir /mnt/nfs && chmod 777 /mnt/nfs
Вместо обычного монтирования мы настроим «умное» монтирование средствами systemd. Диск будет монтироваться только при попытке обратиться к папке, и не будет блокировать загрузку ОС в случае недоступности сервера.
Copy
vim /etc/fstab # Формат: IP_сервера:/путь_до_шары /локальная_точка nfs опции 0 0 # Обратите внимание на ключи: _netdev (сетевой диск), x-systemd.automount (монтировать при обращении), noauto (не монтировать при старте системы жестко) вась айписник:/raid/nfs /mnt/nfs nfs _netdev,x-systemd.automount,noauto 0 0
Примените настройки fstab, перезагрузите демоны systemd и запустите сервис автомонтирования (имя сервиса генерируется на основе пути: /mnt/nfs превращается в mnt-nfs.automount):
Copy
mount -av systemctl daemon-reload systemctl start mnt-nfs.automount
Часть 7: Проверка работы
Чтобы убедиться, что всё настроено верно, выполните простое действие на клиентской машине. В момент выполнения команды touch, systemd автоматически прозрачно примонтирует диск:
Copy
touch /mnt/nfs/a
Затем вернитесь на сервер и убедитесь, что файл физически появился на вашем RAID массиве:
Copy
ls /raid/nfs/
Если вы видите файл hello_world.txt — поздравляем, ваше сетевое хранилище работает идеально!