Блоги

Бюджетный NAS сервер для систем видеонаблюдения на базе Убунту 16.04

    Не всегда есть возможность использовать полноценные NAS сервера, и причина, как правило, в высокой стоимости... 


    Вот и у нас на объекте встала необходимость большого файлового хранилища. В системе видеонаблюдения "Линия", возможно использовать множество хранилищ, но с разделением по камерам. Т.е. определенные камеры пишутся на определенные диски, решение, конечно логичное, но не всегда удобное.

 

    Для таких задач логично использовать NASы, но цены на них сейчас не реально высокие.

    Для сохранения бюджета заказчика, было принято решение, использовать файловое хранилище на базе материнской платы Supermicro, и 10 4Tb HDD, что обеспечивает приличное резервирование, и существенно снижает стоимость. Так уж повелось, что давным давно, для изучения, был выбран дистрибутив Ubuntu, в настоящий момент последняя LTS версия 16.04.

   Установку и  настройку подробно описывать не имеет смысла. А вот с настройкой LVM, возникли некоторые сложности. Основным инструментом для изучения теории, и практики, как всегда стал великий ресурс для всех айтишников, конечно же ХАБР.

    И так, что же такое LVM?


  • Logical Volume Management или Управление Логическими Томами.


    LVM — Дополнительная абстракция от железа. LVM решает необходимые нам задачи, позволяет собрать кучи разнородных дисков в один, и затем снова разбить этот один именно так как нам хочется.

Существуют 3 уровня:


  1. PV(Physical Volume) — физические тома (это могут быть разделы или целые «неразбитые» диски)
    2. VG (Volume Group) — группа томов (объединяем физические тома (PV) в группу, создаём единый диск, который будем дальше разбивать так, как нам хочется)
    3. LV (Logical Volume) — логические разделы, собственно раздел нашего нового «единого диска» Группы Томов, который мы потом форматируем и используем как обычный раздел, обычного жёсткого диска.



Теория, это хорошо, но когда ее не много!

Самое интересное, это практика!

Проверяем какие диски установлены в системе:

sudo fdisk -l

Как обычно, создаем необходимые разделы, если они еще не созданы. Либо, используем полностью диск.

В нашем случае есть диски:

/dev/sda     диск на котором установленна система, с созданными разделами:

sda1

sda2

sda3

/dev/sdb     диск под архив с созданным разделом

sdb1 Раздел gpt, ntfs, NTFS выбран, во избежание возможных, ночных танцев с бубном вокруг сервера.

/dev/sdс Диск под архив с созданным разделом

sdc1 так же gpt, ntfs

и далее по аналогии другие диски.

для работы, конечно же нужны пакеты lvm2 и root доступ: 

$ sudo -s

# apt-get install lvm2

И так, после установки, мы создаем физические тома (PV) для LVM, при этом не забываем про wipe, который неизбежен, о чем вас предупредит система.

# pvcreate/dev/sdb1

# pvcreate /dev/sdс1

и т.д.

Создаём группу томов VG, например «ws», чтобы когда мы перетащим данный диск на другую машину не было конфликтов с именами групп томов:

# vgcreate ws /dev/sdb1 /dev/sdc1

и.т.д.

если потом необходимо добавить диск или раздел в группу томов, то добавляем командой:

# vgextend ws /dev/sdz

Просмотреть можно соответственно командами:

# vgdisplay

# pvdisplay

# lvdisplay

Вот и настала пора добавить логический том

lvcreate -n archive1 -L10T ws

-L10T это соответсвенно размер необходимого логического тома.

Далее, форматируем вновь созданный том.

Расшариваем его, для доступа по сети, настраиваем безопасность, и наслаждаемся полученным результатом) А бюджетный NAS, это отличный результат!

И на будущее,  крутая фишка, когда начинает умирать один из жестких дисков:

Допустим у нас есть данные, а жёсткий диск начал сбоить, тогда мы можем без перезагрузки переместить всё  на другой жёсткий диск/раздел:

# Далее рассмотрим, ка же это делается)
# pvcreate /dev/sda1 # наш сбойный диск
Physical volume "/dev/sda1" successfully created

# pvcreate /dev/sdb1 # наш спасательный диск.
Physical volume "/dev/sdb1" successfully created

# vgcreate vg0 /dev/sda1 # создаем группу томов vg0
Volume group «vg0» successfully created

# lvcreate -n test -L10G vg0 #создаем раздел для «важной» инфы
Logical volume «test» created

# mkfs.ext2 /dev/vg0/test # создаем файловую систему на разделе
# mount /dev/mapper/vg0-test /mnt/tmp/ #монтируем раздел 
… # заполняем его информацией, открываем на нем несколько файлов и т.п.

# vgextend vg0 /dev/sdb1 # расширяю нашу групу томов на «спасательный» диск
Volume group «vg0» successfully extended

root@work:~# pvmove /dev/sda1 /dev/sdb1 #передвигаем содержимое с «умирающего» диска на «спасательный»
/dev/sda1: Moved: 0.9%
/dev/sda1: Moved: 1.8%

/dev/sda1: Moved: 99.7%
/dev/sda1: Moved: 100.0%

# vgreduce vg0 /dev/sda1 # убираем «умирающий» диск из группы томов.
Removed "/dev/sda1" from volume group «vg0»


С уважением

Вячеслав Сергеевич Савин

Технический директор ООО "Авелиск"


 

Нет комментариев

Добавить комментарий