пятница, 24 января 2020 г.

NFS сервер с софт рейдом на старом железе (FreeBSD 12.1)

С течением времени на предприятии накапливается устаревшее оборудование, которому сложно найти место в современной ИТ инфраструктуре предприятия. Например, есть у нас старенький сервер


  • Процессор Xeon E5310 1.6
  • RAM 1Gb
  • SAS HDD 72Gb -2 шт.
На борту имеется интеловский RAID, с который настроятельно не рекомендуют использовать в современных системах, поскольку он с одной стороны софтовый, а с другой аппаратно зависимый.
Возникла идея поднять на нем NFS сервер для организации общего хранилища Proxmox VE.
Ввиду малого количества памяти ZFS использовать не буду, а по старинке использую UFS + GEOM. Задача получить систему на mirror и после подкинуть второй.Технология устаревшая, если есть 4Gb памяти есть смысл делать ZFS mirror. Я последний раз что то подобное делал больше 10 лет назад.

Установка FreeBSD 12.1 на mirror

  1. В биосе выключаем использование Intel RAID для SAS и SATA и ставим FreeBSD 12.1 (базовая установка) на первый винт. Единственное выбираем GPT разметку, остальное по умолчанию. 
  2. Базовую систему буду ставить на софтовое зеркало, используя gmirror
    Для этого, после загузки с CD(или загрузочной флэшки) с FreeBSD,необходимо выбрать пункт меню 'Shell'
  3. Подгружаем модуль ядра:
    gmirror load
  4. Удаляем разметку дисков
    gpart destroy -F da0
    gpart destroy -F da1
  5. Создаем зеркало на сырых дисках:
    gmirror label -v gm0 /dev/da0 /dev/da1
    Metadata value stored on /dev/da0.
    Metadata value stored on /dev/da1.
    Done.
  6. Создаем на зеркале GPT разметку:
    gpart create -s GPT /dev/mirror/gm0
  7. Выходим из консоли при помощи exit и выбираем пункт меню 'Install'
  8. Когда установка доходит до выбора диска выбираем пункт 'Manual' и на gm0 создаем нужную разметку диска.
    Примерно так выглядит минимальный вариант:
    Раздел mirror/gm0p3 имеет mountpoint /
    Если нужна более продвинутая разметка подробности здесь.
  9. Дальнейшая установка идет стандартно: настраиваем пароль root, сеть, создаем пользователя и т.д.
  10. В конце установки будет предложено зайти в Shell, для внесения послеинсталляционных настроек - необходимо согласиться, после чего в консоли выполнить:
    mount /dev/mirror/gm0p3 /media/
    echo 'geom_mirror_load="YES"' >> /media/boot/loader.conf
    Таким образом мы добавим модуль gmirror в авторзагрузку.
  11. Перегружаемся и получаем систему, работающую на софт mirror
    Для проверки:
    # mount
    /dev/mirror/gm0p3 on / (ufs, local, journaled soft-updates)
    devfs on /dev (devfs, local, multilabel)

Создание mirror для хранения данных

Для хранения данных добавляю 2 диска по 2Tb и так же делаю на них зеркало
  1. Диски определились как /dev/da2 и /dev/da3
    Если необходимо, убиваем разметку:
    gpart destroy -F da2
    gpart destroy -F da3
  2. Инициализируем зеркало:
    # gmirror label -v gm1 /dev/da2 /dev/da3
    Metadata value stored on /dev/da2.
    Metadata value stored on /dev/da3.
    Done.
  3. Создаем GPT разметку:
    # gpart create -s GPT /dev/mirror/gm1
    mirror/gm1 created
  4. Создаем UFS раздел:
    gpart add -t freebsd-ufs mirror/gm1
    mirror/gm1p1 added
  5. Добавляем файловую систему:
    newfs -U /dev/mirror/gm1p1
  6. Создаем точку монтирования:
    mkdir /data
  7. Монтируем в /data свой mirror:
    mount /dev/mirror/gm1p1 /data
  8. Для монтирования при перезагрузке добавляем в /etc/fstab:
    echo '/dev/mirror/gm1p1 /data/ ufs rw 1 1' >> /etc/fstab

Настраиваем NFS сервер

  1. Прописываем экспортируемые файловые системы в /etc/exports
    echo '/data -alldirs -maproot=root ip1 ip2 ip3' >> /etc/exports
    где ip1, ip2, ip3 - адреса клиентов
  2. Добавляем в /etc/rc.conf запуск необходимых для NFS сервера демонов:
    rpcbind_enable="YES"
    nfs_server_enable="YES"
    mountd_flags="-r"
  3. Перегружаемся или стартуем их вручную:
    service nfsd start
    service mountd reload
Все, хранилище для бэкапов готово!

Комментариев нет:

Отправить комментарий