SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
OpenFest
            Sofia, November 2011



     Снишаване на риска от загуба на
видеозаписване и данни чрез виртуализация
    на записващия сървър под FreeBSD


                          Златко Асенов

                          zlatko.asenov@gmail.com
Рискове при видеонаблюдението
●   Спиране на видеозаписването
●   Загуба на данни – видеозаписи,
    конфигурации.
Обща коренова причина
●   Загуба на електрическо захранване.


    - Решение – UPS.
Коренови причини за отделните
               рискове
●   Отпадане на видеокамера:
    - изгаряне на камера, спиране на подаване
    на видеосигнал, препречване на
    наблюдавания терен.
    - Риск: спиране на видеозаписването.
●   Отпадане на мрежа – изгаряне на мрежови
    устройства, промяна на мрежова
    конфигурация.
    - Риск: спиране на видеозаписването.
Коренови причини за отделните
               рискове
●   Отпадане на видеозаписващ сървър
    - Рискове:
      а) Спиране на видеозаписването
      б) Загуба на данни – видеозаписи,
      конфигурации.
Снишаване на риска от отпадане
   на видеозаписващ сървър
●   Намиране на кореновите причини
●   Постигане на целите:
    – свеждане на downtime на
    видеозаписването и загуба на данни до
    нула.
    - възможно най-бързо възстановяване на
    отпаднал сървър.
●   Намиране решение.
●   Изпълнение.
●   Проверка и анализ.
Коренови причини за отпадане на
       записващ сървър
●   Изгаряне на хардуерен модул, водещо до
    donwtime, както следва:
    - мрежова карта – до 2 часа.
    - друго (HDD, MB, etc.) – от 1 до 5 дни.
●   Загуба на работоспособност на
    операционната система, водеща до
    downtime от 1 до 5 дни.
●   Загуба на работоспособност на софтуера за
    видеозаписване, водеща до downtime от 1 до
    5 дни.
Намиране на решение за
●   Дублиране на видеозаписването
    - Премахва риска от отпадане на
    видезаписването.
●   Виртуализация на видеозаписването
    - Премахва риска от отпадане на
    видеозаписването
●   Взаимен backup на сървърите – всеки
    сървър съдържа настройките и копия на
    виртуалните машини на останалите.
Описание на текущото състояние
●   Видеозаписващи сървъри – 2 бр.
●   ОС – Microsoft Windows
●   Дублиране на видезаписването – частично
●   RAID – няма
●   Копие на настройки - да
Какво конкретно искаме?
●   Зареждане на host OS от произволен твърд
    диск.
●   Надежден софтуерен RAID.
●   Възможност за прехвърляне на системата на
    друг хардуер без преинсталация.
●   Бързо възстановяване при цялостно
    отпадане на хардуера.
●   Минимално харчене на ресурси.
Тествани системи
●   Debian + VMWare – не работи поради
    разлика във версиите на компилаторите.
    Ядрото и инструментите се компилират с
    различни версии на gcc.
●   Debian + VirtualBox – трудности при ъпдейт
    на ядрото. Debian може да се ъпдейтва
    автоматично. VirtualBox спира работа при
    разминаване на версията на ядро, сорс и
    версия на компилирания модул за работа с
    ядрото. Рискът е, че не знаем кога точно ще
    спре всичко едновременно.
Тествани системи
●   FreeBSD + QEMU – Изключително ниска
    производителност на виртуалната машина.
●   FreeBSD + VirtualBox – Задоволителна
    производителност. Guest машината работи с
    80% от производителността си в реална
    инсталация.
Работещо решение:
    HOST
●   FreeBSD 8.2 Stable
●   gpt
●   root on ZFS RAIDZ2
●   zfsboot
●   VirtualBox


    GUEST
●   MS Windows XP + ACTI NVR
●   MS Windows XP + GV 8.4 NVR
HOST SETUP
●   Сваляме snapshot на 8.2-STABLE
    ftp://ftp.de.freebsd.org/pub/FreeBSD/snapshots/201105/FreeBSD-8.2-STABLE-201105-amd64-memsti

●   Ползваме ето този скрипт на Philipp
    Wuensche
    http://anonsvn.h3q.com/s/gpt-zfsroot.sh

●   Настройваме параметрите в скрипта, така че да
    отговарят на нашия хардуер.
●   Рестартираме.
HOST SETUP
●   Ето как изглежда системата след
    инсталация:
    %gpart show

    =>    34 976770988 ad0 GPT (465G)

         34       128   1 freebsd-boot (64k)

         162   8388608    2 freebsd-swap (4.0G)

      8388770 62914560       3 freebsd-zfs (30G)



    =>    34 976773101 ad1 GPT (465G)

         34       128   1 freebsd-boot (64k)

         162   8388608    2 freebsd-swap (4.0G)

      8388770 62914560       3 freebsd-zfs (30G)
HOST SETUP
=>    34 976770988 ad2 GPT (465G)

     34     128   1 freebsd-boot (64k)

     162   8388608   2 freebsd-swap (4.0G)

 8388770 62914560      3 freebsd-zfs (30G)



=>    34 976773101 ad3 GPT (465G)

     34     128   1 freebsd-boot (64k)

     162   8388608   2 freebsd-swap (4.0G)

 8388770 62914560      3 freebsd-zfs (30G)
HOST SETUP
%zpool status

 pool: bigbro0

state: ONLINE

scan: scrub repaired 0 in 0h30m with 0 errors on Tue Oct 25 03:35:16 2011

config:



     NAME              STATE   READ WRITE CKSUM

     bigbro0          ONLINE        0   0   0

      raidz2-0        ONLINE        0   0   0

          gpt/system-disk0 ONLINE       0   0   0

          gpt/system-disk1 ONLINE       0   0   0

          gpt/system-disk2 ONLINE       0   0   0

          gpt/system-disk3 ONLINE       0   0   0



errors: No known data errors

%
HOST SETUP
●   Добавяме останалите дискови дялове в
    /dev/gpt чрез
    # gpart add -s 431G -t freebsd-ufs -l disk00 ad0
    Резултат :
    bigbro0# gpart show ad0

    =>    34 976770988 ad0 GPT (465G)

         34     128   1 freebsd-boot (64k)

         162   8388608   2 freebsd-swap (4.0G)

      8388770 62914560        3 freebsd-zfs (30G)

     71303330 905467692        4 freebsd-ufs (431G)



    bigbro0#
HOST SETUP
●   Base system upgrade
    # mkdir /etc/cvsup
    # cp /usr/share/examples/cvsup/stable-supfile /etc/cvsup/

    Задаваме *default host=cvsup.de.FreeBSD.org в /etc/cvsup/stable-supfile
    # csup /etc/cvsup/stable-supfile
    # cd /usr/src && make -j24 buildworld && make j24 buildkernel && make installkernel &&
    mergemaster -p && make installworld && mergemaster
    # reboot
HOST SETUP
●   ZPOOL UPGRADE
    # zpool upgrade -V 28 bigbro0
    За всеки диск се ъпдейтва MBR:

    # gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ad0

●   Инсталиране на портовете и VirtutualBox
    # portsnap fetch extract
    # cd /usr/ports/emulators/virtualbox-ose && make config install clean
    Премахнете опциите QT4, DEBUG, PULSEAUDIO, X11, CDE, NLS и изберете
    GUESTADDITIONS, DBUS, VNC, WEBSERVICE
    Добавете в /etc/rc.conf

    vboxnet_enable="YES"
    vboxheadless_user="bigbro0"
    и vboxdrv_load="YES" в /boot/loader.conf
HOST SETUP
●    Активиране на pf
    В /etc/rc.conf добавяме
●   pf_enable="YES"
●   pf_rules="/etc/pf.conf"
●   pflog_enable="YES"
●   pflog_logfile="/var/log/pflog"

    Примерна конфигурация на /etc/pf.conf
●   block in all
●   pass out all keep state
●   tcp_ssh = "{ ssh }"
●   trusted = "{192.168.1.0/24, 10.10.0.10}"
●   pass in inet proto tcp from { $trusted } to port $tcp_ssh
●   pass in inet proto icmp from { $trusted }
●   pass in inet proto tcp from 127.0.0.1 to 127.0.0.1
HOST SETUP
    # reboot
    в: Защо reboot?
    о: Защото всичко трябва да се тества :)
●   Добавяне на полезни програми:
    #pkg_add -r ifstat pftop nmap fping zfs-stats
    tmux
●   Изтегляне и преправяне за наши нужди
    portupdater script, писан от DutchDaemon:
    http://forums.freebsd.org/showpost.php?p=39092&postcount=37
●
HOST SETUP
●   Активиране на sshd в /etc/rc.conf
    sshd_enable=”YES”
●   Задаване на IP, netmask, gateway, hostname
    ifconfig_re0="inet 192.168.1.100 netmask 255.255.255.0"
    defaultrouter="192.168.1.1"
    hostname="bigbro0"
●   Позволяване на директен достъп до
    определените дялове чрез добавяне в
    /etc/rc.conf на следния ред:
    chmod 660 /dev/gpt/disk0[0-3]
HOST SETUP
●   Автоматично синхронизиране на времето
    чрез ntpdate_enable=”YES” в /etc/rc.conf и
    добавяне на:
    # ntpdate

    0    *      *   *   *   root   ntpdate 212.50.0.15


    в /etc/crontab. Откоментирайте или добавете
    желан ntp сървър в /etc/ntp.conf
●   Добавяме потребителя в съответните групи
    # pw groupmod vboxusers -m bigbro0
    # pw groupmod operators -m bigbro0
GUEST SETUP
●   Инсталиране на виртуалната ОС на машина
    с работеща графична среда, за да се спести
    време. Добавяме SATA Controller.
●   Настройваме мрежа и отдалечен достъп.
●   Export на виртуалната ОС.
●   Прехвърляне с sftp, filezilla, etc. изнесения
    файл bigbro0.ova
●   Внасяне на bigbro0.ova
    % cd
    % VBoxManage import WindowsXp.ovа
GUEST SETUP
●   Добавяне дисковите дялове за директен
    достъп
    ГРЕШНО: VBoxManage internalcommands createrawvmdk -filename
    /usr/home/bigbro0/VirtualBox VMs/bb0/data_bb0.vmdk -rawdisk /dev/ad3 -partitions 4

●   ВЯРНО:VBoxManage internalcommands createrawvmdk -filename
    /usr/home/bigbro0/VirtualBox VMs/bb0/data_bb0.vmdk -rawdisk /dev/gpt/disk00
    * в упътването пише да се прави по горния начин, но когато използваме gpt с disk
    label в /dev/gpt/disk00 например, трябва да посочим етикета вместо дяла. В противен
    случай MS Windows вижда диска, но не може да работи с него.

●   Стартиране на ВМ и форматиране
    добавените дискове. Изключваме ВМ.
Последни настройки
●   Добавяне в /etc/rc.local
●   su -c - bigbro1 '/usr/home/bigbro1/bb0.sh'

●   Създаване на изпълняем скрипт bb0.sh със
    следния запис в него:
    #!/bin/sh
    VBoxHeadless --startvm bb0 &

●   Променяне на група bigbro0 към operators на
    следните директории и файлове:
    Директория .VirtualBox
    Директория VirtualBox Vms

    Файл bb0.sh
Резултат
●   Елиминиран риск от загуба на видеозаписи
    при отпадане на записващ сървър.
●   Снишен риск от голям downtime. Вече са
    нужни най-много 10 мин. за възстановяване
    от snapshot на работила ВМ.
●   Междукомпютърна преносимост. Достатъчно
    е архитектурата да е amd64.
●   По-пълно използване на капацитета на
    компютрите.
Предимства и недостатъци на
виртуализация на видеозаписване
●   Недостатъци:
    - Понижена производителност на ВМ в
    сравнение с реална инсталация
    - Зависимост от операционната система на
    хоста и от виртуализиращия софтуер
●   Предимства
    - По-голям брой записвани камери с
    безплатен лиценз
    - Всички други ползи на виртуализацията
OpenFest
Sofia, November 2011


     Питанки?




              Златко Асенов


               zlatko.asenov@gmail.com

Mais conteúdo relacionado

Mais procurados

процесор 80486
процесор 80486процесор 80486
процесор 80486dnaidenowa
 
компютърни системи с процесори Amd k8
компютърни системи с процесори Amd k8компютърни системи с процесори Amd k8
компютърни системи с процесори Amd k8dnaidenowa
 
Chipseti za intel core 2
Chipseti za intel core 2Chipseti za intel core 2
Chipseti za intel core 2dnaidenowa
 
21.компютърна система с процесор pentium іі
21.компютърна система с процесор pentium іі21.компютърна система с процесор pentium іі
21.компютърна система с процесор pentium ііdnaidenowa
 
45. komp s ma intel core i
45. komp s ma intel core i45. komp s ma intel core i
45. komp s ma intel core idnaidenowa
 
процесор Pentium
процесор Pentiumпроцесор Pentium
процесор Pentiumdnaidenowa
 
Pentium 4 pentium 4 extreme edition
Pentium 4 pentium 4 extreme editionPentium 4 pentium 4 extreme edition
Pentium 4 pentium 4 extreme editiondnaidenowa
 
компютърна система с процесор Intel pentium mmx
компютърна система с процесор Intel pentium mmxкомпютърна система с процесор Intel pentium mmx
компютърна система с процесор Intel pentium mmxdnaidenowa
 
52. кс с ntel core i7
52. кс с ntel core i7 52. кс с ntel core i7
52. кс с ntel core i7 dnaidenowa
 
9 pentium pentium pro
9 pentium pentium pro9 pentium pentium pro
9 pentium pentium prodnaidenowa
 
13. komp s ma 80486.
13. komp s ma 80486.13. komp s ma 80486.
13. komp s ma 80486.dnaidenowa
 
53. понятие за памет
53. понятие за памет53. понятие за памет
53. понятие за паметdnaidenowa
 
Unatended installations
Unatended installationsUnatended installations
Unatended installationsMarian Marinov
 

Mais procurados (20)

Intel core 2
Intel core 2Intel core 2
Intel core 2
 
процесор 80486
процесор 80486процесор 80486
процесор 80486
 
компютърни системи с процесори Amd k8
компютърни системи с процесори Amd k8компютърни системи с процесори Amd k8
компютърни системи с процесори Amd k8
 
Chipseti za intel core 2
Chipseti za intel core 2Chipseti za intel core 2
Chipseti za intel core 2
 
21.компютърна система с процесор pentium іі
21.компютърна система с процесор pentium іі21.компютърна система с процесор pentium іі
21.компютърна система с процесор pentium іі
 
45. komp s ma intel core i
45. komp s ma intel core i45. komp s ma intel core i
45. komp s ma intel core i
 
Intel core i7
Intel core i7Intel core i7
Intel core i7
 
процесор Pentium
процесор Pentiumпроцесор Pentium
процесор Pentium
 
Intel core i
Intel core iIntel core i
Intel core i
 
Pentium 4 pentium 4 extreme edition
Pentium 4 pentium 4 extreme editionPentium 4 pentium 4 extreme edition
Pentium 4 pentium 4 extreme edition
 
Ktt 3st
Ktt 3stKtt 3st
Ktt 3st
 
компютърна система с процесор Intel pentium mmx
компютърна система с процесор Intel pentium mmxкомпютърна система с процесор Intel pentium mmx
компютърна система с процесор Intel pentium mmx
 
52. кс с ntel core i7
52. кс с ntel core i7 52. кс с ntel core i7
52. кс с ntel core i7
 
9 pentium pentium pro
9 pentium pentium pro9 pentium pentium pro
9 pentium pentium pro
 
8 pentium mmx
8 pentium mmx8 pentium mmx
8 pentium mmx
 
13. komp s ma 80486.
13. komp s ma 80486.13. komp s ma 80486.
13. komp s ma 80486.
 
53. понятие за памет
53. понятие за памет53. понятие за памет
53. понятие за памет
 
Pentium ii
Pentium iiPentium ii
Pentium ii
 
Pentium iii
Pentium iiiPentium iii
Pentium iii
 
Unatended installations
Unatended installationsUnatended installations
Unatended installations
 

Destaque

華語教學必用的雙拼快注音Instant bopomo chinese phonetic symbols
華語教學必用的雙拼快注音Instant bopomo chinese phonetic symbols華語教學必用的雙拼快注音Instant bopomo chinese phonetic symbols
華語教學必用的雙拼快注音Instant bopomo chinese phonetic symbolsfrankjia
 
Aperitive festive
Aperitive festiveAperitive festive
Aperitive festiveRalu Toia
 
Hum2220 sp2016 proust questionnaire
Hum2220 sp2016 proust questionnaireHum2220 sp2016 proust questionnaire
Hum2220 sp2016 proust questionnaireProfWillAdams
 
Lancaster bomber rf124_crash
Lancaster bomber rf124_crashLancaster bomber rf124_crash
Lancaster bomber rf124_crashJames Clarke
 
Lengua anuncio
Lengua anuncioLengua anuncio
Lengua anunciofranky226
 
ProcessView RPA Example Outbrief
ProcessView RPA Example OutbriefProcessView RPA Example Outbrief
ProcessView RPA Example Outbriefbluespringsw
 
Mla citation guide & citation data forms
Mla citation guide & citation data formsMla citation guide & citation data forms
Mla citation guide & citation data formsProfWillAdams
 
Sydney Continuous Delivery Meetup May 2014
Sydney Continuous Delivery Meetup May 2014Sydney Continuous Delivery Meetup May 2014
Sydney Continuous Delivery Meetup May 2014Andreas Grabner
 
Direct Relief - Healthy People, Better World
Direct Relief - Healthy People, Better WorldDirect Relief - Healthy People, Better World
Direct Relief - Healthy People, Better WorldDirect Relief
 
Arth2051 sp2015 syllabus
Arth2051 sp2015 syllabusArth2051 sp2015 syllabus
Arth2051 sp2015 syllabusProfWillAdams
 
Spring Day | Spring and Scala | Eberhard Wolff
Spring Day | Spring and Scala | Eberhard WolffSpring Day | Spring and Scala | Eberhard Wolff
Spring Day | Spring and Scala | Eberhard WolffJAX London
 
Why you can charge for open source software
Why you can charge for open source softwareWhy you can charge for open source software
Why you can charge for open source softwareOpenFest team
 
Eerste sessie ondernemersforum Unizo 21 01-2014
Eerste sessie ondernemersforum Unizo 21 01-2014Eerste sessie ondernemersforum Unizo 21 01-2014
Eerste sessie ondernemersforum Unizo 21 01-2014Paul Verwilt
 
квест Pons
квест Ponsквест Pons
квест PonsMarkovDA
 
Arh2050 fa2015 proust questionnaire
Arh2050 fa2015 proust questionnaireArh2050 fa2015 proust questionnaire
Arh2050 fa2015 proust questionnaireProfWillAdams
 
Volunteer Recruitment & Management
Volunteer Recruitment & ManagementVolunteer Recruitment & Management
Volunteer Recruitment & ManagementShane-C
 

Destaque (20)

華語教學必用的雙拼快注音Instant bopomo chinese phonetic symbols
華語教學必用的雙拼快注音Instant bopomo chinese phonetic symbols華語教學必用的雙拼快注音Instant bopomo chinese phonetic symbols
華語教學必用的雙拼快注音Instant bopomo chinese phonetic symbols
 
Aperitive festive
Aperitive festiveAperitive festive
Aperitive festive
 
Hum2220 sp2016 proust questionnaire
Hum2220 sp2016 proust questionnaireHum2220 sp2016 proust questionnaire
Hum2220 sp2016 proust questionnaire
 
MomentReel
MomentReelMomentReel
MomentReel
 
Measure and Learn
Measure and LearnMeasure and Learn
Measure and Learn
 
Lancaster bomber rf124_crash
Lancaster bomber rf124_crashLancaster bomber rf124_crash
Lancaster bomber rf124_crash
 
Lengua anuncio
Lengua anuncioLengua anuncio
Lengua anuncio
 
ProcessView RPA Example Outbrief
ProcessView RPA Example OutbriefProcessView RPA Example Outbrief
ProcessView RPA Example Outbrief
 
Mla citation guide & citation data forms
Mla citation guide & citation data formsMla citation guide & citation data forms
Mla citation guide & citation data forms
 
Wundt, w. (1897)
Wundt, w. (1897)Wundt, w. (1897)
Wundt, w. (1897)
 
Sydney Continuous Delivery Meetup May 2014
Sydney Continuous Delivery Meetup May 2014Sydney Continuous Delivery Meetup May 2014
Sydney Continuous Delivery Meetup May 2014
 
Direct Relief - Healthy People, Better World
Direct Relief - Healthy People, Better WorldDirect Relief - Healthy People, Better World
Direct Relief - Healthy People, Better World
 
Arth2051 sp2015 syllabus
Arth2051 sp2015 syllabusArth2051 sp2015 syllabus
Arth2051 sp2015 syllabus
 
Spring Day | Spring and Scala | Eberhard Wolff
Spring Day | Spring and Scala | Eberhard WolffSpring Day | Spring and Scala | Eberhard Wolff
Spring Day | Spring and Scala | Eberhard Wolff
 
Critical evaluation of a master’s thesis
Critical evaluation of a master’s thesisCritical evaluation of a master’s thesis
Critical evaluation of a master’s thesis
 
Why you can charge for open source software
Why you can charge for open source softwareWhy you can charge for open source software
Why you can charge for open source software
 
Eerste sessie ondernemersforum Unizo 21 01-2014
Eerste sessie ondernemersforum Unizo 21 01-2014Eerste sessie ondernemersforum Unizo 21 01-2014
Eerste sessie ondernemersforum Unizo 21 01-2014
 
квест Pons
квест Ponsквест Pons
квест Pons
 
Arh2050 fa2015 proust questionnaire
Arh2050 fa2015 proust questionnaireArh2050 fa2015 proust questionnaire
Arh2050 fa2015 proust questionnaire
 
Volunteer Recruitment & Management
Volunteer Recruitment & ManagementVolunteer Recruitment & Management
Volunteer Recruitment & Management
 

Semelhante a Виртуализирано видеонаблюдение под FreeBSD

Как проектът Yocto помага за създаване на Internet of Things?
Как проектът Yocto помага за създаване на Internet of Things?Как проектът Yocto помага за създаване на Internet of Things?
Как проектът Yocto помага за създаване на Internet of Things?Leon Anavi
 
Въведение в Микроконтролерите Пловдив/2015-02-21
Въведение в Микроконтролерите Пловдив/2015-02-21Въведение в Микроконтролерите Пловдив/2015-02-21
Въведение в Микроконтролерите Пловдив/2015-02-21Neven Boyanov
 
Open Vpn – Poor Man’S Vpn Solution
Open Vpn – Poor Man’S Vpn SolutionOpen Vpn – Poor Man’S Vpn Solution
Open Vpn – Poor Man’S Vpn Solutionguest782598d5
 
Програмиране на малки микропроцесорни системи
Програмиране на малки микропроцесорни системиПрограмиране на малки микропроцесорни системи
Програмиране на малки микропроцесорни системиNeven Boyanov
 
install update and migration to windows 10
install update and migration to windows 10install update and migration to windows 10
install update and migration to windows 10RaynaITSTEP
 
Distributed storage
Distributed storageDistributed storage
Distributed storageHost.bg
 
Programming Small Devices - Web Summit Bulgaria 2014
Programming Small Devices - Web Summit Bulgaria 2014Programming Small Devices - Web Summit Bulgaria 2014
Programming Small Devices - Web Summit Bulgaria 2014Neven Boyanov
 
56. каскадно свързване на контролерите на прекъсване
56. каскадно свързване на контролерите на прекъсване56. каскадно свързване на контролерите на прекъсване
56. каскадно свързване на контролерите на прекъсванеdnaidenowa
 
Minimal linux live
Minimal linux liveMinimal linux live
Minimal linux liveIvan Davidov
 
Конференции с Jitsi Meet
Конференции с Jitsi MeetКонференции с Jitsi Meet
Конференции с Jitsi MeetYasen Pramatarov
 
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5stelf
 
21.1. harakteristiki chip set
21.1. harakteristiki chip set21.1. harakteristiki chip set
21.1. harakteristiki chip setdnaidenowa
 

Semelhante a Виртуализирано видеонаблюдение под FreeBSD (15)

Как проектът Yocto помага за създаване на Internet of Things?
Как проектът Yocto помага за създаване на Internet of Things?Как проектът Yocto помага за създаване на Internet of Things?
Как проектът Yocto помага за създаване на Internet of Things?
 
Въведение в Микроконтролерите Пловдив/2015-02-21
Въведение в Микроконтролерите Пловдив/2015-02-21Въведение в Микроконтролерите Пловдив/2015-02-21
Въведение в Микроконтролерите Пловдив/2015-02-21
 
OpenVPN
OpenVPNOpenVPN
OpenVPN
 
Open Vpn – Poor Man’S Vpn Solution
Open Vpn – Poor Man’S Vpn SolutionOpen Vpn – Poor Man’S Vpn Solution
Open Vpn – Poor Man’S Vpn Solution
 
Програмиране на малки микропроцесорни системи
Програмиране на малки микропроцесорни системиПрограмиране на малки микропроцесорни системи
Програмиране на малки микропроцесорни системи
 
install update and migration to windows 10
install update and migration to windows 10install update and migration to windows 10
install update and migration to windows 10
 
Distributed storage
Distributed storageDistributed storage
Distributed storage
 
Programming Small Devices - Web Summit Bulgaria 2014
Programming Small Devices - Web Summit Bulgaria 2014Programming Small Devices - Web Summit Bulgaria 2014
Programming Small Devices - Web Summit Bulgaria 2014
 
56. каскадно свързване на контролерите на прекъсване
56. каскадно свързване на контролерите на прекъсване56. каскадно свързване на контролерите на прекъсване
56. каскадно свързване на контролерите на прекъсване
 
Using NAOqi
Using NAOqiUsing NAOqi
Using NAOqi
 
Minimal linux live
Minimal linux liveMinimal linux live
Minimal linux live
 
br8
br8br8
br8
 
Конференции с Jitsi Meet
Конференции с Jitsi MeetКонференции с Jitsi Meet
Конференции с Jitsi Meet
 
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
 
21.1. harakteristiki chip set
21.1. harakteristiki chip set21.1. harakteristiki chip set
21.1. harakteristiki chip set
 

Mais de OpenFest team

Embedding FreeBSD: for large and small beds
Embedding FreeBSD: for large and small bedsEmbedding FreeBSD: for large and small beds
Embedding FreeBSD: for large and small bedsOpenFest team
 
Microinvest Warehouse Open
Microinvest Warehouse OpenMicroinvest Warehouse Open
Microinvest Warehouse OpenOpenFest team
 
Как да правим по-добър бизнес с услуги около софтуера с отворен код
Как да правим по-добър бизнес с услуги около софтуера с отворен кодКак да правим по-добър бизнес с услуги около софтуера с отворен код
Как да правим по-добър бизнес с услуги около софтуера с отворен кодOpenFest team
 
Електронни пари: Пътят до BitCoin и поглед напред
Електронни пари: Пътят до BitCoin и поглед напредЕлектронни пари: Пътят до BitCoin и поглед напред
Електронни пари: Пътят до BitCoin и поглед напредOpenFest team
 
RFID технологии и проблеми със сигурността им
RFID технологии и проблеми със сигурността имRFID технологии и проблеми със сигурността им
RFID технологии и проблеми със сигурността имOpenFest team
 
Redis the better NoSQL
Redis the better NoSQLRedis the better NoSQL
Redis the better NoSQLOpenFest team
 
Свободни PLC
Свободни PLCСвободни PLC
Свободни PLCOpenFest team
 
Distributed WPA PSK security audit
Distributed WPA PSK security auditDistributed WPA PSK security audit
Distributed WPA PSK security auditOpenFest team
 
Why kernelspace sucks?
Why kernelspace sucks?Why kernelspace sucks?
Why kernelspace sucks?OpenFest team
 
Направи си сам суперкомпютър
Направи си сам суперкомпютърНаправи си сам суперкомпютър
Направи си сам суперкомпютърOpenFest team
 
Свободни курсове за обучение
Свободни курсове за обучениеСвободни курсове за обучение
Свободни курсове за обучениеOpenFest team
 
Using Open Source technologies to create Enterprise Level Cloud System
Using Open Source technologies to create Enterprise Level Cloud SystemUsing Open Source technologies to create Enterprise Level Cloud System
Using Open Source technologies to create Enterprise Level Cloud SystemOpenFest team
 
Behaviour-Driven Development, Ruby Style
Behaviour-Driven Development, Ruby StyleBehaviour-Driven Development, Ruby Style
Behaviour-Driven Development, Ruby StyleOpenFest team
 

Mais de OpenFest team (19)

Embedding FreeBSD: for large and small beds
Embedding FreeBSD: for large and small bedsEmbedding FreeBSD: for large and small beds
Embedding FreeBSD: for large and small beds
 
Microinvest Warehouse Open
Microinvest Warehouse OpenMicroinvest Warehouse Open
Microinvest Warehouse Open
 
Backbone.js
Backbone.jsBackbone.js
Backbone.js
 
Как да правим по-добър бизнес с услуги около софтуера с отворен код
Как да правим по-добър бизнес с услуги около софтуера с отворен кодКак да правим по-добър бизнес с услуги около софтуера с отворен код
Как да правим по-добър бизнес с услуги около софтуера с отворен код
 
Pf sense 2.0
Pf sense 2.0Pf sense 2.0
Pf sense 2.0
 
Електронни пари: Пътят до BitCoin и поглед напред
Електронни пари: Пътят до BitCoin и поглед напредЕлектронни пари: Пътят до BitCoin и поглед напред
Електронни пари: Пътят до BitCoin и поглед напред
 
Node.social
Node.socialNode.social
Node.social
 
RFID технологии и проблеми със сигурността им
RFID технологии и проблеми със сигурността имRFID технологии и проблеми със сигурността им
RFID технологии и проблеми със сигурността им
 
Redis the better NoSQL
Redis the better NoSQLRedis the better NoSQL
Redis the better NoSQL
 
initLab
initLabinitLab
initLab
 
Свободни PLC
Свободни PLCСвободни PLC
Свободни PLC
 
Distributed WPA PSK security audit
Distributed WPA PSK security auditDistributed WPA PSK security audit
Distributed WPA PSK security audit
 
Aesaes
AesaesAesaes
Aesaes
 
Why kernelspace sucks?
Why kernelspace sucks?Why kernelspace sucks?
Why kernelspace sucks?
 
Направи си сам суперкомпютър
Направи си сам суперкомпютърНаправи си сам суперкомпютър
Направи си сам суперкомпютър
 
Свободни курсове за обучение
Свободни курсове за обучениеСвободни курсове за обучение
Свободни курсове за обучение
 
Using Open Source technologies to create Enterprise Level Cloud System
Using Open Source technologies to create Enterprise Level Cloud SystemUsing Open Source technologies to create Enterprise Level Cloud System
Using Open Source technologies to create Enterprise Level Cloud System
 
Emacs reborn
Emacs rebornEmacs reborn
Emacs reborn
 
Behaviour-Driven Development, Ruby Style
Behaviour-Driven Development, Ruby StyleBehaviour-Driven Development, Ruby Style
Behaviour-Driven Development, Ruby Style
 

Виртуализирано видеонаблюдение под FreeBSD

  • 1. OpenFest Sofia, November 2011 Снишаване на риска от загуба на видеозаписване и данни чрез виртуализация на записващия сървър под FreeBSD Златко Асенов zlatko.asenov@gmail.com
  • 2. Рискове при видеонаблюдението ● Спиране на видеозаписването ● Загуба на данни – видеозаписи, конфигурации.
  • 3. Обща коренова причина ● Загуба на електрическо захранване. - Решение – UPS.
  • 4. Коренови причини за отделните рискове ● Отпадане на видеокамера: - изгаряне на камера, спиране на подаване на видеосигнал, препречване на наблюдавания терен. - Риск: спиране на видеозаписването. ● Отпадане на мрежа – изгаряне на мрежови устройства, промяна на мрежова конфигурация. - Риск: спиране на видеозаписването.
  • 5. Коренови причини за отделните рискове ● Отпадане на видеозаписващ сървър - Рискове: а) Спиране на видеозаписването б) Загуба на данни – видеозаписи, конфигурации.
  • 6. Снишаване на риска от отпадане на видеозаписващ сървър ● Намиране на кореновите причини ● Постигане на целите: – свеждане на downtime на видеозаписването и загуба на данни до нула. - възможно най-бързо възстановяване на отпаднал сървър. ● Намиране решение. ● Изпълнение. ● Проверка и анализ.
  • 7. Коренови причини за отпадане на записващ сървър ● Изгаряне на хардуерен модул, водещо до donwtime, както следва: - мрежова карта – до 2 часа. - друго (HDD, MB, etc.) – от 1 до 5 дни. ● Загуба на работоспособност на операционната система, водеща до downtime от 1 до 5 дни. ● Загуба на работоспособност на софтуера за видеозаписване, водеща до downtime от 1 до 5 дни.
  • 8. Намиране на решение за ● Дублиране на видеозаписването - Премахва риска от отпадане на видезаписването. ● Виртуализация на видеозаписването - Премахва риска от отпадане на видеозаписването ● Взаимен backup на сървърите – всеки сървър съдържа настройките и копия на виртуалните машини на останалите.
  • 9. Описание на текущото състояние ● Видеозаписващи сървъри – 2 бр. ● ОС – Microsoft Windows ● Дублиране на видезаписването – частично ● RAID – няма ● Копие на настройки - да
  • 10. Какво конкретно искаме? ● Зареждане на host OS от произволен твърд диск. ● Надежден софтуерен RAID. ● Възможност за прехвърляне на системата на друг хардуер без преинсталация. ● Бързо възстановяване при цялостно отпадане на хардуера. ● Минимално харчене на ресурси.
  • 11. Тествани системи ● Debian + VMWare – не работи поради разлика във версиите на компилаторите. Ядрото и инструментите се компилират с различни версии на gcc. ● Debian + VirtualBox – трудности при ъпдейт на ядрото. Debian може да се ъпдейтва автоматично. VirtualBox спира работа при разминаване на версията на ядро, сорс и версия на компилирания модул за работа с ядрото. Рискът е, че не знаем кога точно ще спре всичко едновременно.
  • 12. Тествани системи ● FreeBSD + QEMU – Изключително ниска производителност на виртуалната машина. ● FreeBSD + VirtualBox – Задоволителна производителност. Guest машината работи с 80% от производителността си в реална инсталация.
  • 13. Работещо решение: HOST ● FreeBSD 8.2 Stable ● gpt ● root on ZFS RAIDZ2 ● zfsboot ● VirtualBox GUEST ● MS Windows XP + ACTI NVR ● MS Windows XP + GV 8.4 NVR
  • 14. HOST SETUP ● Сваляме snapshot на 8.2-STABLE ftp://ftp.de.freebsd.org/pub/FreeBSD/snapshots/201105/FreeBSD-8.2-STABLE-201105-amd64-memsti ● Ползваме ето този скрипт на Philipp Wuensche http://anonsvn.h3q.com/s/gpt-zfsroot.sh ● Настройваме параметрите в скрипта, така че да отговарят на нашия хардуер. ● Рестартираме.
  • 15. HOST SETUP ● Ето как изглежда системата след инсталация: %gpart show => 34 976770988 ad0 GPT (465G) 34 128 1 freebsd-boot (64k) 162 8388608 2 freebsd-swap (4.0G) 8388770 62914560 3 freebsd-zfs (30G) => 34 976773101 ad1 GPT (465G) 34 128 1 freebsd-boot (64k) 162 8388608 2 freebsd-swap (4.0G) 8388770 62914560 3 freebsd-zfs (30G)
  • 16. HOST SETUP => 34 976770988 ad2 GPT (465G) 34 128 1 freebsd-boot (64k) 162 8388608 2 freebsd-swap (4.0G) 8388770 62914560 3 freebsd-zfs (30G) => 34 976773101 ad3 GPT (465G) 34 128 1 freebsd-boot (64k) 162 8388608 2 freebsd-swap (4.0G) 8388770 62914560 3 freebsd-zfs (30G)
  • 17. HOST SETUP %zpool status pool: bigbro0 state: ONLINE scan: scrub repaired 0 in 0h30m with 0 errors on Tue Oct 25 03:35:16 2011 config: NAME STATE READ WRITE CKSUM bigbro0 ONLINE 0 0 0 raidz2-0 ONLINE 0 0 0 gpt/system-disk0 ONLINE 0 0 0 gpt/system-disk1 ONLINE 0 0 0 gpt/system-disk2 ONLINE 0 0 0 gpt/system-disk3 ONLINE 0 0 0 errors: No known data errors %
  • 18. HOST SETUP ● Добавяме останалите дискови дялове в /dev/gpt чрез # gpart add -s 431G -t freebsd-ufs -l disk00 ad0 Резултат : bigbro0# gpart show ad0 => 34 976770988 ad0 GPT (465G) 34 128 1 freebsd-boot (64k) 162 8388608 2 freebsd-swap (4.0G) 8388770 62914560 3 freebsd-zfs (30G) 71303330 905467692 4 freebsd-ufs (431G) bigbro0#
  • 19. HOST SETUP ● Base system upgrade # mkdir /etc/cvsup # cp /usr/share/examples/cvsup/stable-supfile /etc/cvsup/ Задаваме *default host=cvsup.de.FreeBSD.org в /etc/cvsup/stable-supfile # csup /etc/cvsup/stable-supfile # cd /usr/src && make -j24 buildworld && make j24 buildkernel && make installkernel && mergemaster -p && make installworld && mergemaster # reboot
  • 20. HOST SETUP ● ZPOOL UPGRADE # zpool upgrade -V 28 bigbro0 За всеки диск се ъпдейтва MBR: # gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ad0 ● Инсталиране на портовете и VirtutualBox # portsnap fetch extract # cd /usr/ports/emulators/virtualbox-ose && make config install clean Премахнете опциите QT4, DEBUG, PULSEAUDIO, X11, CDE, NLS и изберете GUESTADDITIONS, DBUS, VNC, WEBSERVICE Добавете в /etc/rc.conf vboxnet_enable="YES" vboxheadless_user="bigbro0" и vboxdrv_load="YES" в /boot/loader.conf
  • 21. HOST SETUP ● Активиране на pf В /etc/rc.conf добавяме ● pf_enable="YES" ● pf_rules="/etc/pf.conf" ● pflog_enable="YES" ● pflog_logfile="/var/log/pflog" Примерна конфигурация на /etc/pf.conf ● block in all ● pass out all keep state ● tcp_ssh = "{ ssh }" ● trusted = "{192.168.1.0/24, 10.10.0.10}" ● pass in inet proto tcp from { $trusted } to port $tcp_ssh ● pass in inet proto icmp from { $trusted } ● pass in inet proto tcp from 127.0.0.1 to 127.0.0.1
  • 22. HOST SETUP # reboot в: Защо reboot? о: Защото всичко трябва да се тества :) ● Добавяне на полезни програми: #pkg_add -r ifstat pftop nmap fping zfs-stats tmux ● Изтегляне и преправяне за наши нужди portupdater script, писан от DutchDaemon: http://forums.freebsd.org/showpost.php?p=39092&postcount=37 ●
  • 23. HOST SETUP ● Активиране на sshd в /etc/rc.conf sshd_enable=”YES” ● Задаване на IP, netmask, gateway, hostname ifconfig_re0="inet 192.168.1.100 netmask 255.255.255.0" defaultrouter="192.168.1.1" hostname="bigbro0" ● Позволяване на директен достъп до определените дялове чрез добавяне в /etc/rc.conf на следния ред: chmod 660 /dev/gpt/disk0[0-3]
  • 24. HOST SETUP ● Автоматично синхронизиране на времето чрез ntpdate_enable=”YES” в /etc/rc.conf и добавяне на: # ntpdate 0 * * * * root ntpdate 212.50.0.15 в /etc/crontab. Откоментирайте или добавете желан ntp сървър в /etc/ntp.conf ● Добавяме потребителя в съответните групи # pw groupmod vboxusers -m bigbro0 # pw groupmod operators -m bigbro0
  • 25. GUEST SETUP ● Инсталиране на виртуалната ОС на машина с работеща графична среда, за да се спести време. Добавяме SATA Controller. ● Настройваме мрежа и отдалечен достъп. ● Export на виртуалната ОС. ● Прехвърляне с sftp, filezilla, etc. изнесения файл bigbro0.ova ● Внасяне на bigbro0.ova % cd % VBoxManage import WindowsXp.ovа
  • 26. GUEST SETUP ● Добавяне дисковите дялове за директен достъп ГРЕШНО: VBoxManage internalcommands createrawvmdk -filename /usr/home/bigbro0/VirtualBox VMs/bb0/data_bb0.vmdk -rawdisk /dev/ad3 -partitions 4 ● ВЯРНО:VBoxManage internalcommands createrawvmdk -filename /usr/home/bigbro0/VirtualBox VMs/bb0/data_bb0.vmdk -rawdisk /dev/gpt/disk00 * в упътването пише да се прави по горния начин, но когато използваме gpt с disk label в /dev/gpt/disk00 например, трябва да посочим етикета вместо дяла. В противен случай MS Windows вижда диска, но не може да работи с него. ● Стартиране на ВМ и форматиране добавените дискове. Изключваме ВМ.
  • 27. Последни настройки ● Добавяне в /etc/rc.local ● su -c - bigbro1 '/usr/home/bigbro1/bb0.sh' ● Създаване на изпълняем скрипт bb0.sh със следния запис в него: #!/bin/sh VBoxHeadless --startvm bb0 & ● Променяне на група bigbro0 към operators на следните директории и файлове: Директория .VirtualBox Директория VirtualBox Vms Файл bb0.sh
  • 28. Резултат ● Елиминиран риск от загуба на видеозаписи при отпадане на записващ сървър. ● Снишен риск от голям downtime. Вече са нужни най-много 10 мин. за възстановяване от snapshot на работила ВМ. ● Междукомпютърна преносимост. Достатъчно е архитектурата да е amd64. ● По-пълно използване на капацитета на компютрите.
  • 29. Предимства и недостатъци на виртуализация на видеозаписване ● Недостатъци: - Понижена производителност на ВМ в сравнение с реална инсталация - Зависимост от операционната система на хоста и от виртуализиращия софтуер ● Предимства - По-голям брой записвани камери с безплатен лиценз - Всички други ползи на виртуализацията
  • 30. OpenFest Sofia, November 2011 Питанки? Златко Асенов zlatko.asenov@gmail.com