====== Создание программного 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%%'' — поздравляем, ваше сетевое хранилище работает идеально!