Мозг любой интеллектуальной системы автоматизации — это сервер. Именно его работа обеспечивает максимальную интеллектуальность. Давайте рассмотрим, какие характеристики должен иметь сервер в системе умный дом.
Для различных областей автоматизации требования к серверам разные. В некоторых областях на первом месте стоит надежность, которая идет в ущерб функциональности. Где-то требуется недорогое функциональное решение, но страдает надежность. Основными в системе умный дом являются:
- Стабильность
- Резервирование данных
- Ведение архива версий
- Возможность доработки функциональности
- Быстрое восстановление в случае сбоя
Каждый пункт по отдельности прост и понятен, но применимо к системе умный дом все сложнее.
Возможность доработки функциональности — это не просто манипуляции с компьютерной программой. Все действия должны взаимодействовать с компонентами умного дома, а значит должны быть направлены на запуск и корректировки самой системы умный дом, ведь нельзя все элементы автоматики снять и отнести разработчикам. При этом, отладка какого-то одного отдельно взятого компонента не должна влиять на работу остальной системы в совокупности.
Как это реализовать?
Виртуализация
Все вышеперечисленное легко решается виртуализацией. Термин «виртуализация» означает, что на один физический компьютер может быть установлено несколько операционных систем, которые будут работать одновременно. Эти операционные системы называются виртуальными машинами.
Запускать виртуальные машины можно в любой операционной системе. Этот способ удобно использовать разработчикам, а для сервера лучше всего использовать гипервизор (hypervisor). Он позволяет запускать одновременно несколько виртуальных машин, распределять аппаратные ресурсы между ними, мониторить состояние, управлять ими, делать архивные копии и т.д..
Гипервизор — это своеобразная прослойка между «железом» сервера и виртуальными машинами. С помощью гипервизора осуществляются разнообразные удобные манипуляции с виртуальными машинами. Кто-то может посчитать, что это лишнее усложнение и дополнительная надстройка, но к концу статьи это мнение должно измениться.
Резервирование
С помощью гипервизора появляется возможность делать полные архивные копии виртуальных серверов без их остановки. Это очень удобно, когда осуществляется непрерывная (круглосуточная) работа всех систем . Желательно резервные копии сохранять на внешнем хранилище. В этом случае, поломка основного сервера позволит быстро восстановить работу системы умный дом, запустив виртуальную машину на новом сервере.
Стоит отметить, что резервные копии — это абсолютно всё — базы данных, логи, json динамические файлы и т.д., то есть полностью операционная система.
Снэпшоты
Это слово от английского snapshot дословно означает снимок. В нашем случае — это снимок операционной системы умного дома, который делается без остановки работы виртуальной машины за несколько секунд. В отличии от полной архивной копии, снэпшот это именно состояние системы во включенном состоянии. Если потребуется, то можно вернуться к предыдущему снэпшоту и получится возвращение состояния операционной системы на предыдущее время. Все это без остановки работы умного дома! Системы безопасности, например СКУД должны работать безостановочно и это явное преимущество виртуализации перед другими серверными решениями.
Сохранение снимков виртуальных машин не требуется делать для всех в автоматическом режиме. Некоторые виртуальные машины, которые используются для отладки, нет необходимости постоянно «снэпшотить», это требуется делать только при необходимости, например при обновлении драйверов. Если обновление прошло неудачно, то легко можно откатиться к предыдущему состоянию и разобраться с проблемой.
Периодичность каждый выбирает для себя самостоятельно. В некоторых ситуациях будет полезно делать снэпшоты каждый час, а для кого-то и раз в месяц будет достаточно.
Версионность
При разработке требуется вести контроль версий программного обеспечения. Для систем умного дома это не только программа, которая будет работать на любом компьютере везде, где угодно. Эта программа привязана к датчикам и исполнительным устройствам конкретного помещения (офиса, квартиры, дома, дачи и т.п.).
Версионность легко обеспечивается средствами виртуализации, когда версия — это полностью виртуальная машина. Достаточно запустить в гипервизоре необходимую архивную копию и всё сразу начнет работать так, как работало на момент создания версии.
Настройка основной версии и одновременно работающей архивной копии позволяет разработчикам работать с любыми конкретными системами без остановки работы остальных узлов.
Быстрое восстановление
Может быть это прозвучит немного банально, но всем и всегда хочется стабильности, а в реальности без сбоев не обойтись, это неизбежность. Сбои могут быть очень редкими, но они все равно будут.
Очень важно иметь возможность быстро восстановить сервер в системе умный дом. При реализации традиционной схемы на сервере «крутится» операционная система с программным обеспечением, и когда происходит поломка, то восстановление работы на новом «железе» может занять несколько дней, а в случае применения виртуализации восстановление займёт максимум несколько часов.
Производительность
Использование виртуализации открывает большие возможности горизонтального масштабирования.
Вертикальное масштабирование — это когда производится модернизация одного физического сервера, а горизонтальное — это когда происходит распределение нагрузки на несколько (единиц, десятков, сотен) серверов через кластеризацию и динамическое распределение нагрузки, путем динамической миграции виртуальных машин на разные физические хосты.
Горизонтальное масштабирование позволяет увеличивать возможности автоматизации, не ориентируясь на характеристики производительности одного центрального сервера, даже если он достаточно мощный.
Задачи бывают разными и для требовательных к производительности систем, виртуализация является чуть ли не единственным вариантом безболезненного расширения.
Хорошим примером может служить системы видеонаблюдения, когда обработка видео потоков с цифровых камер происходит в максимальном качестве по размеру картинки (HD, FullHD, UltraHD) и количестве кадров в секунду. Всем хочется получить максимальное качество, но возможности одного физического сервера ограничены и приходится либо уменьшать количество камер, либо уменьшать качество.
Виртуализация позволяет мониторить нагрузку физических серверов и оперативно распределять нагрузку между ними. Становится мало производительности — еще добавляется сервер в кластер и т.д.
Как нибудь соберусь и как напишу большую статью про виртуализацию с картинками и видео демонстрацией работы.
8 ответов к “Сервер в системе умный дом”
Не всем понятно. Приложить бы словарь.
Хорошая статья, автор постарался на славу. Но все таки рисковое дело умный дом.
Все очень сложно и запутано. Считаю, что такая система не предназначена для дома, больше подходит для организаций.
узнала много интересного!
Умный дом — сложная система. Этим должны заниматься профессионалы, чтобы все отлажено функционировало.
Все-таки умный дом не только дорогая, но и весьма сложная система, установку которой лучше доверить профессионалам и не выбирать самостоятельно дешевые или популярные функции.
Дорого? Вот вам бесплатно: intrahouse
Скачивайте, ставьте, подключите устройства и у вас умный дом.
Вы все сговорились? Я понимаю, что слово гипервизор может вызвать сначала некоторое удивление, но никто же не удивляется слову «утюг» или «пылесос». Виртуализация проще, чем кажется и нужно просто не переживать о нескольких непонятных терминах.