Хранение сайтов ISPmanager отдельно на другом диске (RAID-массиве)

admin

Anabolic Gontarski
Команда форума
Администрация
Доверенный
Новичок

ISPmanager ssd.jpg

Практическая схема: RAID-10 + XFS + bind-mount​


(проверено на Ubuntu 24.04 и ISPmanager)

Обратите внимание! Эти манипуляции с подключением второго диска или массива надо делать ДО УСТАНОВКИ ISPManager, чтобы панель правильно подхватила смонтированный диск/массив и другую инфу по железу сервера. Если будете подключать диск/массив после установки ISPManager, то панель придется переустанавливать.

🔍 Зачем вообще выносить сайты и БД с системного диска?​


По умолчанию ISPmanager:

  • устанавливается на диск с ОС (/usr/local/mgr5)
  • сайты хранит в /var/www
  • базы данных и сервисы — в /var/lib

Это удобно, но не оптимально, если:

  • есть отдельный быстрый массив (RAID-10, SSD)
  • хочется изолировать данные сайтов от ОС
  • важно упростить бэкапы и восстановление
  • нужна высокая надёжность и производительность

👉 Решение — оставить ОС на своём диске, а сайты и БД вынести на отдельный массив прозрачно для системы и панели.

🧠 Ключевая идея (самое важное)​


ISPmanager не позволяет менять пути:

  • /var/www
  • /var/lib

Но Linux позволяет сделать bind-mount — подмену каталогов, при которой:

  • система думает, что пишет в /var/www
  • физически данные лежат на другом диске

👉 Это официально поддерживаемый и безопасный способ.

🧩 Исходные условия​


  • Ubuntu Server 24.04
  • ISPmanager
  • Отдельный RAID-массив (в моём случае RAID-10)
  • Файловая система: XFS
  • Массив смонтирован в /srv/raid10

🔹 Шаг 1. Подготовка структуры на RAID​


Bash:
sudo mkdir -p /srv/raid10/www
sudo mkdir -p /srv/raid10/lib

sudo chmod 755 /srv/raid10
sudo chmod 755 /srv/raid10/www
sudo chmod 755 /srv/raid10/lib

Проверяем:

Bash:
ls -lah /srv/raid10

🔹 Шаг 2. Копируем текущие данные (ВАЖНО)

Копируем сайты:​


Bash:
sudo rsync -aAX /var/www/ /srv/raid10/www/

Копируем базы и сервисы:

Bash:
sudo rsync -aAX /var/lib/ /srv/raid10/lib/

📌
  • используется rsync -aAX
  • сохраняются права, ACL и расширенные атрибуты
  • ничего не удаляется, только копируется

🔹 Шаг 3. Подключаем bind-mount (тестовый режим)

Bash:
sudo mount --bind /srv/raid10/www /var/www
sudo mount --bind /srv/raid10/lib /var/lib

🔹 Шаг 4. Проверка монтирования

Bash:
mount | grep raid10

Ожидаемый результат:

Bash:
/dev/sdX on /srv/raid10
/srv/raid10/www on /var/www
/srv/raid10/lib on /var/lib

🔹 Шаг 5. Финальный тест записи

Bash:
sudo touch /var/www/WRITE_TEST
sudo touch /var/lib/WRITE_TEST

Проверяем:

Bash:
ls -lah /srv/raid10/www | grep WRITE
ls -lah /srv/raid10/lib | grep WRITE

Если файлы появились — всё работает правильно 🎯

✅ Что мы получили в итоге​

  • ✔️ ISPmanager работает без изменений
  • ✔️ Сайты и БД реально хранятся на RAID-массиве
  • ✔️ ОС, обновления и панель изолированы
  • ✔️ Можно делать бэкап только RAID
  • ✔️ В случае переустановки ОС данные не теряются
  • ✔️ Максимальная производительность и надёжность
 
Последнее редактирование:

🔧 Правильное оформление /etc/fstab для RAID-массива с сайтами ISPmanager​


После форматирования RAID-массива и ручного монтирования важно зафиксировать конфигурацию в /etc/fstab, чтобы:

  • массив автоматически подключался при загрузке системы;
  • сайты (/var/www) и данные сервисов (/var/lib) всегда оказывались на RAID, а не на системном диске;
  • избежать аварийной загрузки (emergency mode) из-за ошибок монтирования.

Ниже — проверенный и безопасный вариант, используемый в продакшене.


📌 Исходная архитектура​


В примере используется следующая схема:

  • RAID-10 (аппаратный) → XFS
  • основной mount:
Bash:
/dev/sdb1 → /srv/raid10

каталоги внутри массива:

Код:
/srv/raid10/www  → сайты
/srv/raid10/lib  → базы данных, почта, сервисы

bind-mount:

Bash:
/srv/raid10/www → /var/www
/srv/raid10/lib → /var/lib

Такой подход позволяет:

  • держать ОС отдельно;
  • не вмешиваться в логику ISPmanager;
  • легко переносить данные или делать бэкапы.

🧷 Почему важно использовать UUID​


В /etc/fstab нельзя указывать /dev/sdX — имена устройств могут меняться при перезагрузке или изменении конфигурации.


UUID получаем командой:

Bash:
blkid /dev/sdb1

Пример:

UUID=cc5ec667-37kd-0jdr-8j5f-8467jumh48i8

✅ Рекомендуемое содержимое /etc/fstab:

Bash:
# RAID10 XFS – основной массив под сайты и данные
UUID=cc5ec667-37kd-0jdr-8j5f-8467jumh48i8  /srv/raid10  xfs  defaults,noatime,nodiratime  0  2

# Bind mounts for ISPmanager
/srv/raid10/www  /var/www  none  bind  0  0
/srv/raid10/lib  /var/lib  none  bind  0  0

🔍 Пояснения к параметрам​


noatime,nodiratime​

  • отключают обновление времени доступа к файлам и каталогам;
  • уменьшают количество операций записи;
  • особенно актуально для SSD и RAID-массивов.

fs_passno = 2​


Bash:
0 2

  • означает проверку файловой системы после корневой (/);
  • XFS не использует классический fsck, но порядок обязателен.

Почему без nofail


Bind-mount’ы /var/www и /var/lib не должны игнорироваться, если основной диск не смонтирован.
В случае проблем корректнее получить ошибку загрузки, чем запускать ISPmanager с пустыми каталогами.

🧪 Проверка перед перезагрузкой (обязательно)​


После сохранения /etc/fstab:

Bash:
sudo mount -a

Если ошибок нет — проверяем:

Код:
df -h | egrep 'raid10|var/www|var/lib'
mount | egrep 'raid10|var/www|var/lib'

Файлы, созданные в /var/www и /var/lib, должны физически появляться в /srv/raid10.

✅ Итог​


Если:
  • RAID автоматически монтируется;
  • /var/www и /var/lib указывают на RAID;
  • ISPmanager и сайты запускаются корректно —

значит конфигурация /etc/fstab оформлена правильно и безопасно.

Такой вариант не конфликтует с обновлениями панели.
 
Назад
Сверху