Проект LiVES (LiVES is a Video Editing System, lives.sf.net) появился в то время когда с видеоредакторами в Linux было скажем так туго. Инициатором и бессменным руководителем является Габриель Финч (Gabriel Finch) занимающийся виедоартом. Отсюда и некоторая специфика LiVES недоступная в других решениях. Проект быстро собрал единомышленников, хотя версия под номером 1.0.0 появилась только в 2009 году и сразу получила признание пользователей и несколько наград.
И так используя LiVES можно обрабатывать видео в реальном времени: обрезать, смешивать на нескольких дрожках, изменять скорость воспроизведения/направление/размер, вращать, устанавливать частоту кадров, сохранять весь файл или его часть, перекодировать, использовать эффекты. В качестве источников используется локальный аудио/видеофайл, удаленный ресурс (включая импорт с Youtube) VCD/DVD диск, Fireware устройство, веб-камера или ТВ-тюнер. Возможно создание слайдшоу из набора изображений. За счет интеграции с mplayer/ffmpeg поддерживает более 50 форматов, включая анимированный GIF и PDF. Редактирование аудио доступно только в тех функциях которые необходимы для обработки видео — загрузка, ресеплинг, изменение скорости и т.п. Есть и своя специфика. Так LiVES может принимать видеопоток от другой копии программы, обрабатывать его и транслировать дальше (на выход или еще одной LiVES). Реализовано удаленное управление. Такая архитектура позволяет для обработки использовать можный сервер, а данные воспроизводить при помощи обычного ПК или планшета. Продукт уже избавился от детских болезней и работает стабильно, в случае сбоев проект легко восстанавливается и информация не теряется.
Интерфейс локализован (кроме нескольких пунктов меню) базируется на Gtk+. Управляется при помощи мышки и клавиатуры, функции виджея — с джостика или MIDI. Возможна автоматизация процессов при помощи скриптов. Для для создания эффектов, кодирования, декодирования и воспроизведения используются плагины (включая RFX и LADSPA ), предлагается API позволяющий легко расширить функционал. Плагины могут быть написаны на любом языке Perl, C, C++, Python и т.д.
При этом системные требования не велики. Программа работает не только в Linux, но и *BSD, openMosix, IRIX, Mac OS X и Solaris, поддерживает платформы x86, amd64, ppc и xbox/x86.

Установка

Учитывая что LiVES доступен в репозитариях большинства дистрибутивов Linux, установка проблем не вызывает. В Linux Mint/Ubuntu/Debian достаточно ввести apt-get install lives и можно приступать к работе. Но в официальном репозитарии находится стабильная, но не самая последняя версия. Чтобы получить все новые функции следует подключить репозиторий NoobsLab.

$ sudo add-apt-repository ppa:noobslab/apps
$ sudo aptitude update
$ sudo aptitude install lives

На самом деле будет установлен только минимальный набор зависимостей, утилит с которыми может работать LivES на порядок больше. Нужно быть готовым, что в последующем придется что-то доустанавливать. Я сразу же доустанавливаю другие кодировщики: ffmpeg, libdv-bin, mjpegtools, transcode и x264.
При первом запуске (если не обнаружен файл ~/.lives) активируется мастер позволяющий произвести основные установки. В начале предстоит указать рабочий каталог (должно быть достаточно места). Здесь очень важный момент, который нужно помнить при работе с LiVES — он не дружит с кириллическими каталогами. Если быть точнее то скорее не могут работать некоторые консольные утилиты на которых он опирается. Поэтому можно отрыть файл с рабочего стола (после локализации путь ~./Рабочий стол), но вот сохранить проект или перекодированный файл получается не всегда. В самом низу рабочего окна выводятся все оповещения. В случае каких-либо проблем всегда можно понять что случилось.
Затем анализируется наличие установленных в системе программ, если все найдено, можно переходить к следующему шагу. Иначе следует выйти и доустановить все необходимое. Выбираем используемый аудиосервер. По опыту лучше использовать предлагаемый по умолчанию PulseAudio. И переходим к выбору интерфейса. Здесь небольшое пояснение. Редактор поддерживает два режима интерфейса: Clip Edit (режим фрагментарного редактирования) и Multitrack (режим с несколькими дорожками). Первый проще, предлагается по умолчанию и используется виджеями позволяя подготавливать видео, воспроизводить клипы с разной скоростью, использовать эффекты, перекодировать клип или его часть. Второй — это собственно многодорожечный редактор. Для первого знакомства лучше использовать Clip Edit. Наличие двух режимов часто сбивает новичков, которые прочитав возможности LiVES и запустив программу ожидают увидеть редактор с несколькими треками, а получают не совсем то что хотели. Но режим интерфейса легко меняется в Startup Mode (Инструменты — Параметры — GUI) или если временно Правка — MultiTrack режим. При наличии нескольких мониторов их настройка производится в Инструменты — Параметры — GUI.
В поставке идет несколько скинов, при желании можно здесь же выбрать себе наиболее приятный. Вообще стоит сразу же пробежаться по установкам в Параметры это даст некоторое представление о возможностях программы.

Импортируем файлы

Интерфейс LiVES простой, но из-за наличия очень большого функций потребуется время чтобы освоиться. Видеоредактор не переборчив по поводу источников данных. Перейдя в меню Файлы мы найдем несколько пунктов. Выбираем Открыть Файл/директорию и указываем на файлы, если нужно выбрать сразу несколько используем клавишу Shift. Предосмотр помогает сориентироваться если их много. После обработки видео появится в окне программы. В один проект можно загрузить данные с разных источников. Отдельные пункты находящиеся в меню Файлы позволяют импортировать: часть файла (потребуется задать начало и количество фреймов), видео с внешних ресурсов (в т.ч. youtube, просто вводим адрес, после этого файл будет скачан и добавлен в проект), дисков и различных устройств. При этом Fireware обычно подхватывается «на лету», а ТВ-тюнер и веб-камеру следует вначале добавить выбрав одноименное меню, в появившемся окне следует уточнить устройство (по умолчанию /dev/video и задать дополнительные настройки). После этого можно управлять захватом при помощи появившейся панели.

export LANGUAGE = en_US
lives <video_file> <start_time> <frames> 
</frames></start_time></video_file>

Отдельно вынесено меню для захвата видео с экрана (Инструменты — Capture External Windows), выбираем его и указываем нужное окно. Для остановки записи используется клавиша q, после чего созданное видео будет подключено к проекту.
Импортированное изображение представлено как отдельный клип, его можно использовать в качество фона при воспроизведении музыки. Но эффективнее когда изображения меняют друг друга. Для этого следует создать из набора файлов клип. Выбираем Инструменты — Создать — Generate clip from image, в появившемся окне указываем каталог с файлами, размеры экрана, количество фреймов и частоту кадров. Результат можно сохранить в новый файл или скопировать в буфер обмена (зачем станет понятно ниже). Кстати если в процессе генерации файла остановить обработку, то уже созданный на этот момент файл будет все равно сохранен.
Остальные подпункты в Инструменты — Создать позволяют сгенерировать чистый или цветной кадр и заголовок. В последнем варианте потребуется ввести текст, выбрать шрифт и указать расположение на кадре.
В LiVES реализована возможность сохранения и восстановления отдельного клипа (Файл — Сохранить/Восстановить клип как *.lv1) или всего набора (Дополнительные — Экспортировать/Импортировать проект как *.lv2). После выбора нужного пункта потребуется лишь задать имя. Сами файлы с расширениями lv1 и lv2 по сути являются gzip архивами в которых упаковано видео и установки, это позволяет быстро перенести всю информацию в другую систему и сразу начать работать.

Работа с аудио

Если видеофайл содержит аудиодорожку она будет видна на шкале времени (моно, правый/левый канал). Если добавлять аудиофайл через меню Файлы, он будет подгружаться в окно как отдельный клип не содержащий видео. Такой вариант еще подходит если есть готовый аудиоряд и нужно при помощи LiVES добавить видео. А вот чтобы добавить к текущему видео аудиодорожку следует использовать пункты меню Аудио, позволяющие указать файл, записать аудио с CD или внешнего источника (например микрофона), удалить и экспортировать звук (все или выделенное). Использование пункта Загрузить новый звуковой фрагмент позволяет заменить звуковую дорожку, он же доступен в том случае если клип не содержит аудиоданных. В последующем аудиоданные в текущее виде подгружаются при помощи Добавить звук, отдельный пункт позволяет вставить в выделенный участок тишину. При добавлении стереофайла в моно запись он автоматически преобразуется в моно. При удалении аудио выделенного: (Удалить звук — Удалить выделенные звуковые данные) или участка до выделения (Trim/Pad Audio ) пустое место не образуется, аудио файл просто укорачивается подтягиваясь на пустое место. Используя пункт Fade In/Out можно усилить или ослабить уровень звука выделенного участка или определенной протяженности.

Виджей

В основном окне программы отображается два окна: слева показан первый кадр, справа последний. Смещение можно изменить, при помощи двух панелей ниже, просто нажимая кнопку «+» покадрово промотав до нужного момента. Или как вариант использовать ползунки чуть ниже, перемещая мышку по шкале времени в обе стороны также можно просматривать файл. Для удобства выделения следует также использовать пункты в Правка — Выделить, откуда например отмеченный участок легко инвертировать, выделить отдельный фрейм или заблокировать размер выделенного участка (т.е. выделили 20 кадров, затем этот размер можно применять к любой части видео).
После импорта можно проиграть файлы используя специальную панель расположенную справа, больше возможностей предоставляет меню Играть и горячие клавиши. Здесь в большинстве случаев особых пояснений не нужно, достаточно просто пройтись по пунктам и просмотреть как оно работает.
Если в проекте загружены видео и аудио разных размеров, то файл будет играть пока доступно видео. Но LiVES позволяет подогнать длительность воспроизведения видео под аудиотрек (Auto Loop Video to fit audio, клавиша L).
По умолчанию воспроизведение начинается во встроенном окне небольшого размера, нажав клавишу S или выбрав соотвествующий пункт в меню Играть можно просмотреть видео отдельном окне или на полном экране. Возможно воспроизведение по кругу: обычное (Loop Continuously) и вперед-назад (Ping Pong Loop). Качество настраивается в Инструменты — Параметры — Воспроизведение. Все добавленные клипы доступны в меню Фрагменты, чтобы перейти к следующуему достаточно просто дважды по нему щелкнуть. Также переключаться между файлами можно просто вращая колесико мышки, в окне будут прокручиваться первый и последний кадры или используя Ctrl+PageUp/PageDown. Для удобства клипы можно переименовать или удалить (клавиша С) если в нем нет потребности. В меню Информация находится несколько пунктов, выбор которых позволит узнать все доступные данные о клипе.
Как уже говорилось LiVES позволяет отправить поток другой копии. Это очень просто. В меню Дополнительно находится три нужных пункта. В настройках необходимо задать частоту, размеры кадра, цветовую модель, и также IP и порт удаленной системы. На другой стороне можно настроить прием потока с любого адреса или с определенного IP. Затем выбираем Open yuv4mpeg stream и получаем результат.
Все горячие клавиши можно просмотреть в пункте VJ — Show VJ keys.

Воспроизведение в LiVES с примененными эффектами

Воспроизведение в LiVES с примененными эффектами

Режим Clip Edit удобен для относительно простых операций с одним клипом. Некоторые из них доступны в меню Правка. Выделенный участок можно удалить (Ctrl+D), скопировать (Ctrl+C), вырезать (Ctrl+T) и вставить, в текущее или другое видео, сохранить как отдельный файл. В случае добавления к существующему видео вначале следует отметить участок или создать новый клип, а затем в окне появляющемся после выбора Вставить из буфера обмена (Ctrl+I) указать в каком месте (до или после) выделенного произвести вставку, со звуком или без. Еще один пункт позволяет объединять содержимое буфера обмена с выделенным, в этом случае необходимо будет указать параметры такого замещения (точка отсчета, что делать при несовпадении размера, переходы и т.д.). После такой операции в меню Правка — Выделить активируется пункт (Select Last Insertion/Merge) позволяющий одним щелчком выделить последнюю вставку.
Возможен вариант растягивания видео до времени звучания аудиофайла. Причем клип находящийся в буфере обмена также можно проиграть (Играть — Воспроизвести содержимое буфера обмена (С)), чтобы оценить что вырезана нужная часть. Учитывая, что выбирать видео можно до кадра, в Clip Edit мы можем легко создать простой клип из нескольких видеофрагментов, просто собирая их в кучу. Для аудио (Audio — Resemple Audio) и видео (Инструменты — Resemple Video to New Frame Rate) доступна операция изменения дискретизации (resampling). Выбрав нужный пункт просто указываем новое значение и подтверждаем установки. В Инструменты найдем еще несколько полезных пунктов: изменение направления буфера обмена (Reverse Clipboard), поворот клипа (Rotate Clip, можно повернуть кадры на любой угол), добавление рамки (Trim frames/Add border), изменение скорости воспроизведения/сохранения (новый размер клипа), изменение размера кадра (Resize All Frames, можно задать произвольное значение).
Возможно все получится не сразу, но любую операцию можно отметить (Правка — Отменить, Ctrl+U) поэтому бояться экспериментировать не стоит.

Эффекты

В LiVES реализовано два вида эффектов: реального времени и обычный, требующий обработки (rendered). В первом случае исходный файл не затрагивается, все эффекты накладываются по ходу и их можно менять в любой момент. Соответственно этот режим требует определенных ресурсов от ПК. Второй — это привычный режим для подобного вида программ, указывается файл или отрезок и к видео применяется выбранный эффект, который сохраняется в исходном файле. Обработка занимает больше времени, но зато использовать можно менее мощные компьютеры.
Работает все очень просто. Эффекты реального времени доступны в меню VJ, пунктов здесь не много и в основном они относятся управлению. При помощи пунктов Set Real Time Effect Defaults и Save Real Time Effect Defaults можно выбрать и сохранить эффект который будет применяться по умолчанию. Но больше интересного скрыто в Real time Effect Mapping. После его выбора появляется окно, в котором можно настроить привязку эффектов к комбинации клавиш Ctrl+1…9 (Ctrl+0 отключает эффект). Причем для каждой клавиши доступно 8 позиций, которые можно настроить предварительно (выбрав нужный эффект из списка) и затем быстро сменить настройки или эффект при помощи клавиш k и m (при установленном Key active). Для каждого эффекта доступно краткое описание и специфические настройки.
Теперь просто запускаем воспроизведение, жмем к примеру Ctrl+1+k и смотрим результат, чтобы перейти к следующему эффекту группы используем m, комбинация Ctrl+UP/Down позволяет управлять скоростью применения эффекта. Выглядит очень интересно. При помощи клавиши Key grab можно установить любую удобную комбинацию для вызова нужного эффекта.
Теперь рассмотрим вариант, когда эффект необходимо наложить на видео. Выделяем участок и переходим в Воздействие, выбираем эффект и производим необходимые подстройки и применяем. Обратите внимание на пункт Apple Real Time Effect to Selection, выбор которого позволяет использовать последний активированный эффект реального времени.
После наложения эффекта в меню Правка — Выделить активируется пункт позволяющих быстро выделить временной отрезок соответствующий последнему примененному эффекту.

2

Сохраняем результат

Когда все требуемые настройки применены клип (Ctrl+C) или только выбраную часть фрагмента Selection (клавиша S) можно сохранить/перекодировать в нужный формат воспользовавшись горячими клавишами или выбрав пункт в меню Файлы. В появившемся окне Encoding details вначале выбираем в списке программу-кодировщик, затем выходной видео и аудио формат. Если нужного формата нет в списках, пробуем другой кодировщик. Универсальным является универсальный multi_encoder, предлагающий большое количество форматов. Далее указываем имя файла и при желании комментарии, можно сохранить субтитры в отдельный файл. Здесь LiVES по сравнению с тем же OpenShot немного проигрывает, так как новичку приходится чуть вникать в особенности работы разных утилит и нет готовых профилей, которые создаются один раз и позволяют очень тонко настроить параметры кодирования. Хотя в любом случае в LiVES можно достигнуть тех же и даже больших результатов, просто используется разный подход, а по сути в этом редакторе пользователь неограничен.
И кстати можно сохранить отдельный кадр в виде png файла. Это единственная операция которую можно произвести из контекстного меню. Просто отматываем на нужный кадр и щелкаем в окне правой кнопкой мышки, затем указываем место.
3

4

Обработка видео

***

Вот собственно и все, теперь когда освоены базовые операции можно переходить в Multitrack, перетаскиваем все файлы на временную шкалу и реализовывам более сложные проекты.

Анонсирован номер № 7-8 (140-141) июль-август журнала Системный Администратор за 2014 год со спецприложением «БИТ. Бизнес & Информационные технологии».
cover07-08(140-141) cover_bit06(39)
В номере:

  • Крис Касперски: «Компьютер как средство решения проблем сам стал одной большой проблемой»
    Крис Касперски, специалист по ИБ, хакер и автор «компьютерных» книг, интервью не дает. Ныне Крис живет в США, трудится аналитиком по ИБ в крупной американской компании и по-прежнему видит в работе главный смысл жизни. Паблисити его абсолютно не интересует. Но для нашего издания он сделал исключение – ведь именно в «Системном администраторе» в 2003-2006 годах увидела свет его книга «Записки исследователя компьютерных вирусов».
  • Новые возможности PowerShell 5.0
    Большинство последних новинок Microsoft направлено на упрощение создания вычислительных сред и управления bvb. В предрелизе WMF 5.0 заявлено пусть и небольшое количество новинок, но тем не менее они очень интересны.
  • Устанавливаем Request Tracker
    Знакомимся с трекинговой системой, ориентированной на работу технической поддержки, выполняем общие настройки и учимся работать с ней.
  • Установка и настройка Foreman
    В предыдущей статье мы рассказали о связке Katello, Pulp и Candlepin, которая позиционируется как составляющая следующего поколения Red Hat Network. Однако эта троица справляется лишь с частью задач, стоящих перед администратором. Для полноты картины необходимо рассмотреть еще один инструмент – Foreman
  • Облако от VMware. Часть 2. Обеспечим им каждого
    Рассмотрим настройку взаимодействия основных компонентов vCloud, разберемся в многоуровневой архитектуре и создадим первое пользовательское облако.
  • Миграция пользовательских данных с помощью SCCM 2012 SP1
    Пользовательские данные между компьютерами можно перенести автоматически с помощью Configuration Manager. В статье рассматриваются принципы его работы, настройки, преимущества и недостатки данного решения.
  • Почему нельзя просто скопировать файлы. О резервном копировании, а также об инкрементальном парадоксе
    Вряд ли можно найти профессионала в области ИТ, который бы стал отрицать необходимость всегда иметь надежную актуальную резервную копию. Но никто не спорит, что гораздо надежнее иметь две копии! Например, за вчера и за сегодня. А еще лучше иметь целый архив за требуемый период
  • Артем Шумилов: «Мне было интересно, как люди заставляют одно и то же устройство делать разные вещи, и каким образом оно понимает, что от него хотят»
    На вопросы «Системного администратора» отвечает победитель международной студенческой конференции CyberSecurity for the Next Generation, организованной «Лабораторией Касперского», студент Московского государственного технического университета имени Н.Э. Баумана Артем Шумилов.
  • Active Directory и безопасность. Часть 1. Построение защищенных служб каталога
    Служба каталогов (СК) является основой построения информационных систем огромного количества организаций. Безопасность СК становится одним из ключевых вопросов, независимо от размеров предприятия.
  • Сервис удаленного тестирования. Удаленный рабочий стол и Linux-консоль в окне браузера
    В свое время в компании «Доктор Веб» был создан сервис удаленного тестирования Dr.Web LiveDemo. Сервис позволял тестировать продукты Dr.Web тем клиентам, кто по какой-либо причине не мог развернуть их в рамках своей сети, а также позволял менеджерам и партнерам компании организовывать демонстрации тех же решений.
  • Как избежать ошибок учета в 1С. Часть 12. Сложный учет НДС
    Когда предприятие реализует продукцию собственного производства в стране и за рубежом, возникают дополнительные сложности с отражением в учете операций.
  • 1С:ERP 2.0. Что нового? Часть 4
    Завершаем цикл статей об 1С. Речь пойдет о подсистемах «Производство», «Регламентированный учет», «Управление по целям», «Зарплата и кадры». Ранее были рассмотрены подсистемы «Финансы» и «Бюджетирование».
  • Преимущества программных АТС
    Мы расскажем, почему вашей следующей телефонной системой должна быть программная АТС на базе широко распространенной операционной системы.
  • Настройка SRTP и TLS/SSL в Asterisk
    Одной из распространенных атак на VoIP является подбор регистрационной информации и перехват данных. В базовой настройке сервера Asterisk FreeSWITCH, как, впрочем, и у всех остальных, не используется шифрование.
  • Инструменты тестировщика, или С чего начать новичку?
    Что поможет начинающему тестировщику стать одним из тех специалистов, благодаря которым пользователи присылают положительные отзывы о приобретенном ПО?
  • Grunt – The JavaScript Task Runner
    Работа веб-программиста потрясающе интересна. Но бывает в ней и нудная рутинная часть. Инструмент, о котором речь пойдет ниже, способен спасти от скуки.
  • CommuniGate Pro. Ваша лаборатория объединенных коммуникаций
    Технологиям передачи данных с помощью компьютеров уже полвека. То, что начиналось как утилитарный механизм обмена данными между вычислительными машинами, выросло до средства коммуникации между людьми, которое потеснило (да ладно, вытеснило!) традиционные почту и телеграф.
  • Очереди. Теория и практика. Часть 3. Сервер очередей
    В предыдущих статьях мы рассматривали использование очередей в рамках одного процесса и АПИ ZeroMQ между разными компонентами напрямую. Однако для разработки более сложных систем есть специализированные службы middleware, через которые проходят сообщения.
  • Использование API Яндекс.Метрика
    У вас есть сайт или мобильное приложение? Вам сюда! Создаем генератор отчетов о посещаемости сайта в формате Microsoft Office Excel с помощью API Яндекс.Метрика
  • WebSockets – стандарт современного веба. Часть 2: Socket.io – веб сокеты для всех!
    Преимущества веб-взаимодействия на основе WebSocket и перспектив приложений, на них основанных, очевидны. Но вот с реальностью в виде браузеров, не поддерживающих эту технологию, предстоит, как показывает опыт, бороться еще очень долго. А хотелось бы работать уже здесь и сейчас.
  • Алексей Широких: «Старайтесь идти на работу с радостью, а с работы с гордостью»
    Как Сколтех себя позиционирует? Кто платит за студентов? Какие возможности дает обучение в Сколково? На эти и другие вопросы журнала «Системный администратор» отвечает директор по информационным технологиям Сколковского института науки и технологий (Сколтех) Алексей Широких.
  • «Жизнь слишком коротка, чтобы работать с людьми, которые тебе неприятны»
    Я часто замечаю: в череде жизненных событий встречаются слова, помогающие мне преодолевать препятствия, мотивирующие или порой успокаивающие меня.
  • Вакансия: релиз-инженер
    Мы используем различное программное обеспечение. А его финальные версии находят свое воплощение в виде итоговых релизов. За тем, чтобы они состоялись, следят специальные инженеры. Причем обязанности таких сотрудников разнятся. Мы обратились к представителям компаний с вопросами о том, какие требования они предъявляют к соискателям вакансий релиз-инженера.
  • Мастера релизов – ИТ-компании ждут вас! Статистика: предложения, требования, функционал
    Исследовательский центр рекрутингового портала Superjob.ru подготовил для читателей журнала «Системный администратор» обзор предложений и требований работодателей, ищущих сотрудников на позицию релиз-инженера.
  • Моделирование – «наш» метод познания. Программа молекулярной динамики XMD
    Познакомимся с одним из решений моделирования процессов, происходящих в веществе на уровне атомов, молекул и кристаллических решеток. Речь пойдет о классической программе молекулярной динамики – XMD.
  • Анализ и обработка больших данных
    Все большую популярность в ИТ-технологиях набирает концепция больших данных. Наука о данных (Data Science, Datalogy) стала самостоятельной академической дисциплиной. Познакомимся с рядом курсов, в которых раскрываются современные достижения в этой области ИТ-технологий.
  • Прагматическая фантазия о будущем
    Полеты в космос и на Луну, подводные лодки, летательные аппараты тяжелее воздуха – все эти чудеса были придуманы писателями фантастами в середине – конце XIX века. Фантазии в основном возникали не на пустом месте, а на основе зародышей технологических разработок и технических идей, существовавших в то время.
  • Галоши для «мобилы»
    Компания Nokia, в следующем году отмечающая полуторавековой юбилей, чего только не перепробовала, прежде чем стать нынешним транснациональным гигантом на рынке коммуникаций и информационных технологий!
  • Технология параметризированного синтеза жестов и их последовательностей на основе анимированных 3D-моделей
    В статье рассматриваются вопросы разработки компонент автоматизированных систем распознания жестов — автоматизированных систем сурдоперевода. Приводится классификация и параметризация жестовых языков. Рассматриваются подходы к моделированию руки, ее структурные и кинематические характеристики. Предлагается технология параметризированного синтеза жестов и их последовательностей на основе анимированных 3D-моделей. Описывается приложение визуализации трехмерной модели руки с использованием средств библиотеки OpenGL.
  • Узел однородной вычислительной сети под воздействием вирусных атак как система G/G/1
    Предлагается и рассматривается аналитическая модель узла однородной вычислительной сети под воздействием вирусной атаки с позиций теории массового обслуживания как система G/G/1. Приводятся необходимые формулы, рисунки, таблицы.
  • Применение технологии широкополосного изменения огибающей спектра звукового сигнала Petralex® в онлайн-приложениях коррекции слуха
    В статье рассматриваются способ и приложение, позволяющие в режиме онлайн осуществлять коррекцию звукового сигнала от различных приложений в соответствии с индивидуальными слуховыми характеристиками пользователя. Разработанный способ имеет многофункциональное применение, в частности, приложение полезно людям с разной степенью тугоухости и сотрудникам колл-центров, которые много времени работают в наушниках.
  • Оптимизационные модели термоэлемента Пельтье и тепловой трубы
    В статье рассматривается оптимизационное моделирование термоэлемента Пельтье и тепловой трубы для повышения надежности современной бортовой и переносной радиоэлектронной аппаратуры с использованием современных информационных технологий в целях создания инновационной системы автоматизированного проектирования средств обеспечения ее тепловых режимов.
  • Ископаемое вычислительное
    Сегодняшний экспонат нашего виртуального музея, предлагаемый вниманию читателей, вероятно, один из древнейших представителей своего вида – вычислительных устройств. Любопытно, что паскалин (или паскалина), носящий имя своего изобретателя и оказавшийся весьма полезным и удобным прибором для своего времени – середины XVII века, – был сконструирован человеком, которого во всех энциклопедиях по справедливости именуют «великим французским математиком, механиком, физиком, литератором и поэтом». Действительно, Блез Паскаль преуспел во всем перечисленном, однако ж выходит, что и изобретал кое-какие полезные вещицы на досуге. Причем ту, о которой идет речь, – в 1642 году, когда автору изобретения еще не стукнуло и двадцати.

В MySQL возможность репликации реализована «из коробки» и предоставляемые возможности расширяются с каждым новым релизом. Попробуем разобраться с текущим состоянием.

Необходимость в репликации появляется тогда когда требуется обеспечить повышенную надежность и доступность сервиса:

  • масштабирование позволяющее «выйти» за ограничения пропускной способности одной системы за счет распределения запросов между серверами кластера.
  • резервирование — в случае выхода основного сервера, данные берутся реплики.
  • снижение нагрузки с мастер-сервера — клиентские приложения получают информацию (только чтение) с любой из реплик.
  • простое создание резервных копий, которые создаются на любой реплике.

И так далее. Причин может быть много. Именно поэтому репликация является одной из самых необходимых функций в современной СУБД и MySQL здесь не является исключением.
Забегая наперед скажу, что статья не является законченным руководством по репликации, хотя бы потому, что ньюансов здесь не много, а очень много. Что срабатывает в одном случае, совершенно не подходит в другом. Это просто попытка привести все что есть на текущий момент к какому то порядку и дать ответы на все возможные вопросы, развеяв в том числе устоявшиеся мифы по поводу возможностей MySQL.
Сегодня в контексте синхронной master-master репликации много говорят о таких проектах как Galera Cluster for MySQL (codership.com) и MySQL NDB Cluster, по своему интересных и заслуживающих наверное каждый отдельной статьи. Первый пока называет нарекания по поводу стабильности, второй немного специфичен и подходит не для всех приложений. В плюс MySQL можно отнести также доступность из репозитариев дистрибутивов, это проверенное временем решение. К тому же не редко мы уже имеем рабочий сервер, который нужно подстраховать и разгрузить.

Возможности репликации MySQL

В MySQL репликация доступна «из коробки» и не требует каких-либо патчей или специфических установок для активации. Еще в версии начиная 3.23.15 был реализован односторонний (master → slave) некластеризированный механизм репликации. Для его правильной реализации необходимо установить для каждого сервера свой уникальный идентификатор server-id и указать slave, где брать информацию.
В зависимости от настроек можно реплицировать всю базу данных, отдельную таблицу или ее часть. В случае необходимости двунаправленной репликации для обмена данными в кластере (master — master) строили два направления: master — slave и slave – master. Такая схема, в зависимости от проекта, у одних работает годами, у других сразу создает ряд проблем. Начиная с MySQL 5.1.18, возможность master — master поддерживается уже официально, включая multi-master репликации, в том числе и круговые (dev.mysql.com/doc/refman/5.1/en/mysql-cluster-replication-multi-master.html). Это дает возможность строить на MySQL кластер высокой доступности (High Availability) и реализовывать практически любые топологии.
И хотя в настоящий момент MySQL может поддерживать разные схемы, все же оптимальным для режима master — master является 2 сервера. Почему станет ясно ниже.
В случае нагруженных систем здесь есть подводные камни, ведь вся процедура происходит с задержкой и вполне вероятна рассинхронизация, когда один и тот же запрос на разных серверах вернет отличный результат. Особенно трудно прогнозируемая ситуация в режиме master-master active-active. Ведь кластеру будет тяжело сохранить работоспособность, когда оба сервера начнут одновременно менять одни и те же данные или производить автоинкрементную вставка в таблицу. Добавление третьего сервера в кольцо только усугубит ситуацию.
Настройка смещения AUTO_INCREMENT позволяет сделать так чтобы, запросы не пересекались. Для этой цели введены параметры (dev.mysql.com/doc/refman/5.7/en/replication-options-master.html ) auto_increment_increment, auto_increment_offset. По умолчанию оба установлены в 1. Просмотреть их текущее значение просто:

mysql> SHOW VARIABLES LIKE 'auto_inc%';

И это действительно срабатывает, но спасает ведь не во всех ситуациях.
Кстати в документации оба параметра почему то подписаны как «is supported for use with NDB tables only», а для MySQL 5.7 «is intended for use with MySQL Cluster, which is not currently supported in MySQL 5.7».

Настройка автоинкремента позволяет избежать части проблем в режиме master-master

Настройка автоинкремента позволяет избежать части проблем в режиме master-master

Еще один минус состоит в том, что MySQL не предоставляет удобные инструменты для мониторинга репликации, мастер-сервер практически ничего не знает о репликах, а реплики — друг о друге. Например, реплика может не пройти по тем или иным причинам на slave, мастер об этом даже не узнает. В версии MySQL 5.5 пропали даже привычные команды LOAD DATA FROM MASTER и LOAD TABLE FROM MASTER, снимавшие ряд проблем, правда они работали только с MyISAM. Но некоторые задачи можно выполнить при помощи сторонних инструментов, из комплекта MySQL Workbench Utilities (в частности скрипт mysqlfailover), Multi-Master Replication Manager for MySQL или Percona Toolkit — mk-table-checksum, mk-table-sync, mk-slave-delay, mk-slave-prefetch, mk-heartbeat, mk-slave-restart, mk-slave-find и mk-slave-move.
Единого совета «что делать?» здесь нет и быть не может, в каждой конкретной ситуации выход будет свой. Ведь работа в кластере это всегда компромисс между производительностью, доступностью и согласованностью (консистентностью) данных.
Например, чтобы при перезагрузке не было проблем с репликацией, рекомендуется использовать такие параметры: flush_log_at_trx_commit=1, sync_binlog=1, sync_relay_log=1, sync_relay_log_info=1, sync_master_info=1. Но их установка существенно отразится на производительности. Наверное поэтому сегодня популярны только схемы master-master (active-passive) и master – slave (один или несколько).

Глобальные идентификаторы транзакций

Репликация производится при помощи бинарных журналов, ведущихся на мастере (параметр log-bin) и передаваемых на slave (relay-log). Изначально в него информация заносилась без какой либо привязки. В случае необходимости считать информацию с середины использовался сдвиг (offset, с MySQL 3.23.15+), который уникален для каждого подчиненного сервера. В этой ситуации быстро разобраться какой из slave серверов наиболее близок по состоянию к мастеру не так просто. Начиная с MySQL 5.6.5 поддерживается репликация транзакций на основе глобальных идентификаторов транзакций (Global Transaction Identifiers, GTIDs), а вся служебная информация (о мастере и сдвиге) была перенесена из файлов в метаданные. Такой идентификатор добавляется к каждой реплике и дает возможность на slave серверах быстро отследить текущее состояние. Использование GTID позволяет забыть о необходимости работать напрямую с лог-файлами и позициями в них (MASTER_LOG_FILE и MASTER_LOG_POS), что значительно упрощает многие задачи репликации. Сам GTIDs представляет собой идентификатор server_uuid (уникален, генерируется автоматически в файл data_dir/auto.cnf) и номер транзакции. Таким образом MySQL вплотную приблизился к возможности репликации с нескольких источников, по крайней мере в вопросе работы самого механизма.
Старый режим репликации никуда не исчез, все нововедения опциональны и подключаются в конфигурационном файле основного сервера при помощи параметров:

[mysqld]
...
log-slave-updates=TRUE
gtid-mode=ON
enforce-gtid-consistency=TRUE
master-info-repository=TABLE
relay-log-info-repository=TABLE

В slave сервере к ним добавляем еще и:

binlog-rows-query-log_events=1

Все связанные переменные можно получить выполнив запрос:

mysql> SHOW VARIABLES LIKE '%gtid%';

Виды репликации

Изначально в MySQL (с 3.23) поддерживалась так называемая логическая (STATEMENT-based, SBR) репликация, когда запрос на slave передается в том же виде в котором он выполнялся на мастере (его можно просмотреть при помощи mysqlbinlog). Плюсом SBR является простота реализации и небольшой размер бинарного журнала т. е. реплики его получат очень быстро. Минусов наверное больше. На серверах могут отличаться системные переменные, а значит результат запроса может быть разный. Возникают проблемы с триггерами и хранимыми процедурами. Выполнение запроса на подчиненном сервере может занять большее время и он будет отставать. В некоторых случаях возможно нерациональное использование ресурсов. Например выбираем данные по некоторым критериям, обходим всю таблицу, а меняем только одну строку. Это же потом придется проделать и на всех slave. Не проще ли сразу указать, что менять?
В MySQL 5.1 появилась поддержка построчной (ROW-based, RBR) репликации способной корректно передавать любой запрос. В этом случае в журнал заносятся сами данные которые необходимо добавить/удалить/изменить, а не запрос. Минус очевиден — размер журнала в некоторых случаях может быть очень большим. А поэтому очевидно, что идеального варианта нет, каждый тип имеет свои достоинства и недостатки. Поэтому чуть позже (5.1.8) был введен смешанный формат (MIXED). В этом случае все запросы как и раньше выполняются в режиме STATEMENT, но если встречаются данные которые не возможно передать при помощи этого типа, то журналирование будет выполняется в формате ROW. До 5.1.28 именно смешанный режим устанавливался по умолчанию, но затем опять вернулись к логическому и теперь администратор сам выбирает нужный вариант если в этом есть необходимость и главное он знает что делает. Алгоритм переключения и все исключения при работе в режиме MIXED описаны в разделе 5.2.4.3. Mixed Binary Logging Format.
Тип репликции устанавливается при помощи параметра binlog-format, который может принимать значение STATEMENT, ROW или MIXED.

Полусинхронная репликация

Изначально в MySQL использовалась асинхронная репликация. Принцип работы очень прост, клиент производит изменение (COMMIT), которое выполняется master сервером, результат заносится в бинарный журнал. Клиент, не дожидаясь ответа подчиненных серверов (он их просто не контролирует), сразу же получает сообщение об успешном завершении процесса, которые только-только начинают получать и выполнять реплику. Такой подход обеспечивает максимальную скорость и позволяет производить репликацию даже по коммутируемым соединениям, но имеет один существенный минус, особенно актуальный для кластеров. Если после подтверждения транзакции master сервер выходит из строя, а подчиненные сервера еще не успевают получить реплику, данные будут потеряны, но клиент будет уверен, что все в порядке. В случае master – master репликации проблема только усугубляется, ведь сервера не знают что происходит другу у друга, отсюда рассинхронизация со всеми вытекающими.
Выходом в этой ситуации может быть синхронная репликация, когда клиент получит подтверждение только после выполнения запроса на всех подчиненных серверах. Выигрываем в надежности, но сразу же проигрываем в скорости. Особенно это актуально, если slave сервер подключен по медленному каналу или некоторое время не отвечает.
В MySQL 5.5 появилась поддержка полусинхронного (semi-synchronous) механизма репликации, основанного на патчах к InnoDB от компании Google. В этом случае master-сервер ожидает подтверждения от одного из slave, который сообщает что получил и записал на диск реплику. При этом не ожидается, когда slave выполнит сам запрос и нет никаких гарантий, что он будет выполнен вообще (например, ошибка). Именно поэтому многие источник считают название semi-synchronous не совсем корректным. Кстати эта проблема устраняется при помощи специального патча Enhanced SemiSync Replication, в этом случае мастер-сервер получает подтверждение только после того как slave применит реплику. Проект правда уже 2 года не развивается, но показывает что нерешаемых задач нет.
Чтобы не быть зависимым от доступности подчиненного сервера, предусмотрен таймаут, позволяющий автоматически перейти асинхронный режим если ни один slave не ответил за запрос. При восстановлении связи будет опять активирован semi-synchronous.
Также поддерживается отложенная репликация, когда подчиненный сервер начинает выполнять запрос после истечения указанного промежутка времени (устанавливается при помощи MASTER_DELAY, по умолчанию 0). Это может быть полезно, если на мастере понадобится откатить транзакцию.

Параметры полусинхронной репликации
Но как понятно у полусинхронной репликации есть большой минус, передача реплики на slave и подтверждение потребует время, это будет влиять на скорость работы. Транзакция в этом режиме не может превышать величину задержки сети, а поэтому теоретически ее можно получить по формуле:

1000 мс / задержка в сети (мс) = производительность semi-synchronous

Практика с теорией не расходятся или расходятся не сильно. Репликация в режиме semi-synchronous через WAN будет сильно тормозить процесс. А вот в локальных сетях при использовании серверов малой и средней производительности, потерь на полусинхронную репликацию по сравнению с асинхронной не заметно. Если она и есть, то полностью укладывается в погрешности измерений. А поэтому ее вполне можно активировать повысив тем самым вероятность сохранить данные при крахе мастер-сервера.
По умолчанию используется асинхронная репликация, полусинхронную необходимо установить плагин и активировать параметр в my.cnf. На основном сервере:

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

И в my.cnf:

rpl_semi_sync_master_enabled =1

На подчиненном:

mysql>  INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

И в my.cnf:

rpl_semi_sync_slave_enabled =1

Статус можно узнать командой:

mysql> SHOW STATUS LIKE 'Rpl_semi_sync%';

***

Репликация в MySQL – это нетривиальный процесс, в котором нет единого решения на все случаи жизни. Но она есть и она работает. Но варианты лежащие на поверхности, не всегда приводят к нужному результату. Успеха можно добиться. На это влияет правильный выбор архитектуры репликации, режимов и параметров работы сервера.

Любые сетевые приложения и технологии опираются на IP-маршрутизацию, позволяющую хостам найти друг друга. Отказ любого маршрутизатора автоматически означает потерю доступа к ресурсам, поэтому не имея отказоустойчивого механизма доступ к нужному IP, сервис будет недоступен. Самый распространенный способ — использование резервного маршрутизатора. Проблема не нова, поэтому и решений несколько — протоколы IRDP, VRRP, BGP, CARP, технология NLB и многое другое.

OpenBSD/FreeBSD CARP

Чтобы не перенастраивать маршруты клиентов в случае выхода из строя основного шлюза можно пойти как минимум двумя путями: перестроить таблицы маршрутизации или отдать IP отказавшего шлюза другому роутеру. Каждый способ имеет свои плюсы и минусы. Протоколы динамической маршрутизации вроде RIP, OSPF, EIGRP или BGP, требуют поддержки их роутерами и плюс немного придется повозиться с настройками. Для простых сетей проще использовать второй вариант.
Сетевой протокол дупликации общего адреса (CARP, Common Address Redundancy Protocol) — позволяет использовать один IP-адрес несколькими хостами, называемыми «redundancy group» (группа избыточности), работающими в пределах одного сегмента сети и имеющими один виртуальный MAC (link layer). Этот IP клиенты и устанавливают в маршруте по умолчанию. Настроив CARP можно затем смело обновлять ПО на роутере не беспокоясь, что офис останется без интернета.
Впервые CARP появился в OpenBSD 3.5 как ответ на патентованные VRRP (Virtual Router Redundancy Protocol) и HSRP (Hot Standby Router Protocol) разработанные в Cisco. В последствии CARP был портирован для FreeBSD (появился в 5.4), NetBSD и реализован для Linux.
Работает CARP очень просто. В случае выхода главного узла из состава «redundancy group» его IP и идентификатор подхватывает один из резервных, имеющий более высокий приоритет. Для определения своей работоспособности главный узел использует объявления (IP Protocol 112, защищены при помощи SHA-1 HMAC), как только они прекращаются и делается вывод о сбое. Резервный узел взяв на себя IP начинает рассылать объявления. Выбирается такой узел просто — кто чаще начнет рассылать объявления, тот и главный. Для этого в настройках каждого роутера используется параметры advbase и advskew. Интервал рассылки рассчитываться по формуле «advbase + advskew/255″ т.е. чем меньше значения, тем узел чаще рассылает объявления, а значит вероятность того что он станет мастером выше. Когда мастер-шлюз восстанавливает работоспособность, управление снова переходит к нему (в некоторых реализациях это можно отключить).
И самое главное — существующие подключения сохраняются и работа клиентов продолжается как ни в чем не бывало. Хотя для некоторых приложений потребуется синхронизация настроек и как результат переподключение. Для устранения этого используют дополнительные механизмы, вроде pfsync, осуществляющие синхронизацию состояния брандмауэров путем рассылки сообщений (IP protocol 240) на другие устройства, которые затем импортируют полученные таблицы. Данные передаваемые pfsync не шифруются, поэтому весьма желательно для обмена таблицами использовать выделенную физическую сеть.
Обычно CARP используется для обеспечения отказустойчивости роутеров и брандмауэров, хотя в некоторых реализациях он позволяет распределять нагрузку посредством балансировки ARP (arpbalance)
Конфигурирование CARP в OpenBSD и FreeBSD ничем по сути не отличаются, только используются разные файлы. Текущие установки можно просмотреть при помощи:

# sysctl -a | grep "net.inet.carp"

Разрешаем форвардинг и включаем CARP:

# vi /etc/sysctl.conf
 
net.inet.ip.forwarding=1
# разрешаем принимать CARP пакеты
net.inet.carp.allow=1
net.inet.carp.preempt=1
net.inet.carp.log=2

Активированный параметр ”net.inet.carp.preempt” позволит узлу участвовать в выборе мастера, при этом если откажет один из CARP интерфейсов, то автоматически advskew устанавливается в 240 и инициируется выборы мастер-шлюза. В случае если необходима балансировка, используем ”net.inet.carp.arpbalance”, указав режим балансировки (arp, ip, ip-stealth или ip-unicast).
CARP интерфейс создается на лету при помощи команды «ifconfig carp create», или соответствующей записи в /etc/rc.conf (FreeBSD) или /etc/hostname.* (OpenBSD). Помимо стандартных для сетевых интерфейсов параметров необходимо указать пароль, установить группу vhid и расставить приоритеты advskew.
Предположим имеем три сети: 192.168.0.0 (WAN), 192.168.100.0 (LAN) и 172.16.0.0 (между роутерами для pfsync). Виртуальный IP создаваемый CARP будет оканчиваться на 1. Нам требуется чтобы на WAN и LAN «висел» постоянный IP, это позволит не менять настройки шлюза по умолчанию на компьютерах клиентов и подключаться к сервисам расположенным внутри. Кстати возможно использование уже имеющегося физического адреса хоста в качестве виртуального адреса.
Интерфейсы конфигурируются как обычно (это можно сделать во время установки OC), разберем только то что относится непосредственно к CARP и pfsync. В FreeBSD:

# vi /etc/rc.conf
 
network_interfaces="lo0 em0 em1 em2 pfsync0"
cloned_interfaces="carp0 carp1"
ifconfig_carp0="vhid 1 pass <password> 192.168.0.1/24"
ifconfig_carp1="vhid 2 pass </password><password> 192.168.100.1/24"
# включаем pfsync
ifconfig_pfsync0="up syncif em2"
</password>

По окончании проверяем работу интерфейсов «ifconfig carp».
Есть еще момент. Все интерфейсы CARP разделены на группы (по умолчанию группа carp, «ifconfig -g»), каждой можно назначать счетчик «demotion counter» позволяющий задавать некоторые ограничения (устанавливать master при загрузке, ограничивать число отказоустойчивых carp).
На резервном узле настройки полностью аналогичны, только в вызов ifconfig добавляем значение advskew. Покажу на примере OpenBSD:

# vi /etc/hostname.carp0
 
inet 192.168.0.1 255.255.255.0 192.168.0.255 vhid 1 carpdev eth1 advskew 100 pass <password>
</password>

Параметр carpdev можно не указывать, в этом случае CARP использует физический интерфейс, соответствующий той же подсети, что и назначенный IP для виртуального.
И второй:

# vi /etc/hostname.carp0
 
inet 192.168.100.1 255.255.255.0 192.168.100.255 vhid 2 carpdev eth1 advskew 100 pass <password>
</password>

Теперь очередь pfsync.

# vi /etc/hostname.pfsync0
 
up syncdev eth2

Такой вариант удобен в том случае когда шлюзов несколько т.к. для передачи используется мультикаст. Как вариант можно указать конкретный IP «up syncdev eth2 syncpeer 172.16.0.2».

Настраиваем параметры CARP

Настраиваем параметры CARP


Пока пакетный фильтр блокирует передачу информации необходимо добавить всего пару строк в /etc/pf.conf:

# vi /etc/pf.conf
 
pass quick on { em2 } proto pfsync
pass on { em0 em1 } proto carp

Можно проверять. Выключаем основной шлюз, проверяем IP и МАС на втором при помощи ifconfig и arp.
Это минимум. При желании правила можно развивать, принудительно перенаправлять все запросы с физического интерфейса на carp, или добавить фильтры разрешающие подключения по pfsync и carp только с определенных IP.
Или присвоить каждому маршрутизатору по два виртуальных IP. А пользователей «разделить» между роутерами, в случае выхода одного из них они будут переключены на второй прозрачно.
Теперь можно проверять. Выключаем основной роутер, IP подхватывает второй, соединения не обрываются. Хотя например в случае VPN есть свои особенности.

Анонсирован июньский номер № 6 (139) журнала Системный Администратор за 2014 год со спецприложением «БИТ. Бизнес & Информационные технологии».

Системный администратор май 2014

Системный администратор май 2014


В номере:

  • Тотальный шпионаж и кибервойна, или Как АНБ хочет завоевать мир с помощью вирусов
    Человечество, пережившее две мировые войны, похоже, сегодня оказалось на грани начала третьей – кибернетической, хоть и не cтоль кровопролитной, но тоже весьма разрушительной
  • Как выбрать СЭД?
    Информации по СЭД вроде бы и много, но, когда приступаешь к выбору, оказывается, что ее недостаточно. Описания решений мало чем различаются, а отзывы на форумах противоречат друг другу
  • Проверка на соответствие параметров, или Compliance Settings в SCCM 2012
    Compliance Settings в SCCM 2012 помогает оценивать и отслеживать достоверность конфигураций компьютеров компании, а также вносить в них некоторые исправления. В статье рассматриваются возможности и настройки данного функционала в теории и на практике.
  • Настройки сети с помощью PowerShell 4.0
    Microsoft заявляет, что постепенно классические консольные утилиты, к которым администраторы привыкли за долгое время, будут заменяться командлетами PowerShell.
  • Не теряя управления. Часть 2. Обзор средств удаленного управления
    Продолжаем разговор о создании отказоустойчивых решений, предотвращающих потерю управления сервером в критичной ситуации.
  • HOWTO: Набор утилит dtools. Управляем множеством UNIX-систем
    В подчинении сисадмина обычно находится не один, а несколько серверов. Давать команды каждому по отдельности неэффективно, на помощь приходят специализированные инструменты – Fabric, pyDSH, dtools и другие.
  • Инфокиоск своими руками
    Как подготовить «общественный компьютер» для работы в роли тонкого клиента и защитить его от нецелевого использования.
  • Установка и настройка Katello, Pulp и Candlepin. Знакомимся с новым поколением Red Hat Network
    В статье о FOSDEM 2014 [1] отмечалось, что представители Red Hat на этой конференции активно рассказывали о линейке продуктов, задуманных как следующее поколение Red Hat Network – Katello, Pulp, Candlepin и Foreman. Познакомимся с первыми тремя приложениями.
  • Системы управления конфигурацией. Чем отличаются Chef, SaltStack, Puppet, CFEngine и Ansible?
    В статье рассматриваются четыре важнейшие группы свойств систем управления конфигурацией, по которым делается сравнение популярных CM-инструментов.
  • Облако от VMware. Часть 1. Разворачиваем vCloud Director
    Рассмотрим набор продуктов vCloud Suite, его базовые блоки и компоненты, а также установку vCloud Director с описанием всех шагов.
  • USB_ModeSwitch, или «Кот в мешке»
    Подключили USB-сотовый модем к ОС Linux, а он не заработал? Мы расскажем, почему это случилось и что делать?
  • Большой Брат видит тебя
    Программы для скрытого наблюдения за пользователем, позволяющие перехватывать его почту и символы, вводимые с клавиатуры, контролирующие использование сменных носителей и делающие скриншоты его экрана, записывающие переговоры по скайпу, – отнюдь не утопическая фантазия в стиле «1984», а суровая реальность.
  • Как избежать ошибок учета в «1С». Часть 11. Налог на добавленную стоимость
    Учет налога на добавленную стоимость регламентируется законодательными документами. Поэтому важно обеспечивать корректность операций.
  • 1С:ERP 2.0. Что нового? Часть 3. Подсистемы «Финансы» и «Бюджетирование»
    В конце 2013 года на рынок вышло новое флагманское решение от 1С – «ERP 2.0», которое пришло на замену «1С:УПП». В предыдущей статье [1] были рассмотрены подсистемы «Закупки» и «Склад».
  • Программирование USB в Android. Используем для связи интерфейс USB
    Попытаемся разобраться в том, как организовать обмен информацией между различными (в том числе и самостоятельно разработанными) электронными устройствами и аппаратами (планшетами или телефонами), работающими под управлением операционной системы (ОС) Android с использованием USB
  • Очереди. Теория и практика
    В майском номере [1] было рассмотрено взаимодействие разных потоков с использованием очередей в рамках одного адресного пространства. А как организовать взаимодействие для нескольких процессов, даже если они разнесены на разные физические серверы?
  • Меньше кода, больше дохода. Часть 4. Разработка front-end-слоя
    В предыдущих частях статьи [1], посвященных веб-фреймворку Apache Tapestry, были изучены вопросы, связанные с разработкой back-end-слоя, использованием базовых возможностей и т.д. Поговорим о применении JavaScript и CSS-библиотек (front-end-слой) в Apache Tapestry веб-приложении.
  • Проблемы российского ИТ-образования. Взгляд изнутри
    «Хочешь получить корочку? Молчи и не мешай!» – сказал мне преподаватель. Увы! Неквалифицированные педагоги делают неэффективным обучение ИТ-специалистов в наших техникумах и вузах.
  • Программирование на Java
    Программирование – интереснейшая и захватывающая область ИТ. Но, чтобы войти в эту область, нужно выбрать и изучить язык программирования. Согласно TIOBE Index второй по популярности язык – Java. Для тех, кто желает познакомиться или углубить свои знания, мы предлагаем перечень интересных курсов.
  • Безопасное трудоустройство. Часть 5. Где лучше работать российским ИТ-специалистам
    В статье пойдет речь о возможных перспективах при трудоустройстве в различные компании, а также будут даны рекомендации для рассмотрения тех или иных «заманчивых» предложений о работе.
  • Вакансия: тестировщик ПО
    Важным процессом, позволяющим проверить качество кода, является тестирование. Эта работа так и называется «тестировщики ПО», профессия очень актуальна и востребована на ИТ-рынке. Мы спросили у представителей компаний, каким требованиям должен удовлетворят кандидат-тестировщик.
  • От Москвы до Бреста не прожить без тестов
    Исследовательский центр рекрутингового портала Superjob.ru подготовил для читателей журнала «Системный администратор» обзор предложений и требований работодателей, ищущих тестировщиков ПО.
  • Прямой путь к богатству
    Секрет простой – напрямую, без посредников. Непоколебимое следование этому и другим собственным бизнес-принципам позволило Майклу Деллу вывести свою компанию в мировые лидеры, а самому войти в первую двадцатку самых богатых людей планеты по версии журнала Forbes.
  • Майкл Делл
    Основы бизнеса Майкл Делл (родился в 1965 году) – основатель, CEO, а ныне и единоличный владелец «однофамильной» компании (см. стр. 92-95) – начал постигать в восемь лет, когда торговал леденцами среди сверстников. Потом он переключился на почтовые марки, которые продавал уже солидным взрослым людям (не подозревавшим, что продающая марки «фирма» состоит из одного подростка-третьеклассника). И, наконец, принялся за компьютеры. Да так удачно, что стал самым молодым – на то время – долларовым миллиардером, а его компания – одним из крупнейших торговцев компьютерной техникой в мире.

Анонсирован апрельский номер № 5 (138) журнала Системный Администратор за 2014 год со спецприложением «БИТ. Бизнес & Информационные технологии».
cover05(138)
В номере:

  • Сколько стоит черный флаг?
    Пофантазируем на тему перехода на лицензионное программное обеспечение, с расчетом стоимости перехода, а также предложим альтернативные варианты, заметно изменяющие как итоговую цифру, так и бизнес-процессы компании.
  • Виртуализация приложений
    Виртуальные приложения имеют большое значение для тех, кому необходима установка софта разных версий. Управление виртуальным программным обеспечением с помощью SCCM 2012 SP1 в теории и на практике.
  • Виртуализация на уровне ОС. Теория и практика OpenVZ
    Рассмотрим технические особенности наиболее популярной платформы для контейнерной виртуализации – OpenVZ. Выполним ее установку и настройку, обсудим проблемы и сильные стороны.
  • Изоляция процессов с помощью LXC на примере со Skype
    Когда корпорация Microsoft купила мессенджер Skype, да не просто код, а вместе со всеми менеджерами и программистами, я было обрадовался, что наконец-то будет наведен порядок внутри программы.
  • Не теряя управления
    В статье описываются методы отказоустойчивости ИТ-инфраструктуры. Особое внимание уделяется вопросам сохранения управляемости серверов под нагрузкой.
  • Lite Manager Pro. Эффективное средство автоматизации ИТ-инфраструктуры
    Новая версия программы удаленного управления LiteManager 4.5 с функциями режима технической поддержки и записи экрана.
  • Док-станция Targus ACP71EU. К хорошему быстро привыкаешь
    Эта статья изменит ваш взгляд на применение док-станций и на использование ноутбуков в целом. Прогресс не стоит на месте!
  • Акулы в океане SIP-телефонии. Анализ трафика с помощью Wireshark
    Быстро выявить и устранить проблемы со связью в сетях SIP администратору поможет знание принципов работы протокола SIP и грамотное применение Wireshark.
  • «1С:ERP 2.0». Что нового? Часть 2. Подсистемы «Закупки» и «Склад»
    В конце 2013 года на рынок вышло новое флагманское решение от 1С – «ERP 2.0», заменившее «1С:УПП». В предыдущей части статьи [1] были рассмотрены подсистемы «Макетинг» и «Продажи», сегодня разберем «Закупки» и «Склад».
  • Как избежать ошибок учета в «1С». Часть 10. События с основными средствами
    С принятыми к учету основными средствами могут происходить различные хозяйственные события, требующие оформления. Как всегда, при этом есть подводные камни. Какие именно, читайте в статье!
  • Очереди как структуры данных. Теория и практика
    В проектах, где предполагается распределенная обработка или параллельные вычисления, присутствуют очереди, включая операционные системы. В данной статье рассмотрены различные аспекты применения очередей
  • WebSockets-стандарт современного веба. Часть 1
    Технологию WebSockets давно применяют в браузерных играх, платежных системах, интерактивных интерфейсах. И если вы веб-разработчик и до сих пор не знаете, как ее использовать, немедленно читайте эту статью – в нашей профессии отставать от технологий совершенно недопустимо!
  • Использование API Яндекс.Спеллер. Готовые рецепты для веб-разработчика
    Как внедрить проверку орфографии в свое приложение? Примеры кода на JavaScript и PHP. Яндекс.Спеллер пригодится программистам всех мастей
  • Меньше кода, больше дохода. Часть 3. Tapestry для создания Java EE-приложений
    В прошлой части статьи мы рассмотрели, как настроить Back-end слой, получить данные через менеджера данных и отображать их в простой CRUD-компонент в виде HTML-таблицы со ссылками для удаления, редактирования и добавления записей в базу данных. Как использовать базовые возможности Tapestry?
  • РИТ++ 2014
    Очередная (уже восьмая по счету!) конференция «Российские интернет-технологии», состоялась в Москве и, как всегда, порадовала интересными докладами.
  • Обзор CMS для создания интернет-магазинов
    Выбрать оптимальную систему CMS для создания интернет-магазина – непростая задача. Рынок предлагает десятки разнообразных решений, отличающихся как по функционалу, так и по стоимости. Протестируем наиболее достойных кандидатов.
  • Из админов в CIO
    Насколько легко хороший ИT-инженер может стать ИT-менеджером или даже CIO? На первый взгляд ничего сложного нет: надувай щеки для важности и отдавай приказы. Так ли это на самом деле?
  • Сколько стоит программист?
    Исследовательский центр рекрутингового портала Superjob.ru подготовил для читателей журнала «Системный администратор» обзор предложений и требований работодателей, ищущих сотрудников на позицию программист C/C++.
  • Вакансия: программист C/C++
    Языки программирования C/C++, несмотря на свою «древность», по-прежнему пользуются популярностью, а специалисты, владеющие ими, – постоянным спросом. Мы спросили у представителей компаний о том, какие они предъявляют требования к соискателям, которые претендуют на позиции, требующие знания С/C++.
  • Странная формула. Часть 4. Абак – простейший вычислитель
    Все, о чем мы говорили в первых трех теоретических частях цикла, само по себе и интересно, и важно, но настало время спуститься с небес на землю и перейти к практике. И начнем мы с рассмотрения очень простого компьютера.
  • Преподавание ИТ в Стэнфорде. Подготовка ИТ-специалистов в ведущем университете мира
    Какая система образования лучше – отечественная или зарубежная? Обычно сравнение проводят на основе результатов, которых добиваются выпускники тех или иных вузов после окончания учебы. Однако для полноты картины полезно знать, какие именно знания получают студенты в процессе обучения.
  • Лабораторная работа. Представление текстовой информации в ЭВМ. Часть 2
    Дополнительные знания по кодированию текстов, практические задания по кодированию русских букв разными кодовыми таблицами, примеры перекодирования.
  • «Болгарский след»
    Маленькая, но гордая страна Болгария может по праву гордиться своим вкладом в развитие компьютерных технологий, ведь одну из первых в истории электронно-вычислительных машин создал сын болгарского иммигранта Ивана Атанасова – Джон Винсент Атанасов. Или, как принято писать его фамилию в США, – Атанасофф.
  • Компьютерные азы
    Очередной экспонат нашего виртуального музея истории компьютерной техники и ИТ – вычислительная машина, построенная в конце 1930-х – начале 1940-х годов профессором колледжа штата Айова Джоном Винсентом Атанасовым и аспирантом Клиффордом Берри (подробнее о них см. статью в этом номере журнала). Она замечательна тем, что спустя три десятка лет на основании судебного решения это «ископаемое» было признано «первым автоматическим электронным цифровым компьютером».

В современных условиях возможности NFS, CIFS, FTP уже не удовлетворяют пользователей, поэтому становятся более популярны сервисы вроде Dropbox, предоставляющий больше возможностей. Но из соображений безопасности лучше использовать свой собственный сервер.

ownCloud

Самый наверное популярный проект, позволяющий организовать собственное хранилище файлов для обмена данными между пользователями. Причем по возможностям он уже давно обогнал DropBox, ведь кроме шаринга пользователь получает еще и календарь, закладки, адресную книгу (с группировкой по категориям), список дел TODO. Реализовано шифрование файлов и передачи данных, после активации данной возможности информацию не может просмотреть даже администратор. Возможен контроль версий файлов (в качестве бэкенда используется git, при нехватке пространства старые редакции автоматически удаляются), установка квот и ограничений на максимальный размер файлов. Корзина позволяет восстановить файлы и каталоги удаленные через веб-интерфейс. Пользователь может просматривать PDF и ODF файлы, рисунки в фотогалерее, прослушивать музыку. Предусмотрено редактирование текстовых файлов при помощи онлайн-редактора. При помощи клиента поддерживается синхронизация файлов, календаря и адресной книги с мобильным устройством или ПК и с другими системами поддерживающими протокол remoteStorage. Система полнотекстового поиска основанная на движке Apache Lucene позволяет искать не только по именам файлов, но и по их содержимому (кстати реализовано и введение параметров голосом).
Базовые возможности легко изменить при помощи плагинов, часть из них предоставляется самим проектом, доступны разработки третьих сторон. Большую плагинов можно найти в репозитории apps.owncloud.com. Здесь находим модуль проверяющий сохраняемые файлы на наличие вирусов (используя ClamAV), организовать музыкальный сервер, позволяющий прослушивать собственную музыкальную коллекцию с любого устройства в сети, хранилище подкастов и видеороликов с доступом через веб-интерфейс или медиаплеер. Таким же образом добавляется поддержка OpenID и LDAP, и работа с внешними хранилищами Dropbox, Swift, FTP, SFTP, Google Docs, S3 и WebDAV.
Доступ к данным предоставляется как для зарегистрированных на сервере пользователей ownCloud (помечается как Общие/Shared), так и без регистрации для анонимного посетителя (в виде прямой ссылки). Реализована возможность отправки уведомлений другим пользователем через стандартный механизм нотификации KDE (Open Collaboration Services API, изначально проект развивался под эгидой KDE).
Для доступа используется веб-браузер или WebDAV, KDE KIO-Slaves при помощи которых можно подключить хранилище в виде сетевого диска. Интерфейс системы локализован и организован логично и просто, поэтому проблем с его освоением не должно возникнуть у пользователя с любым уровнем подготовки. Разработаны клиенты ownCloud Desktop Client и Mobile Clients позволяющие синхронизировать данные с настольной системой работающей под управлением Windows, Linux и Mac OS X или мобильным устройством Android (доступен в двух версиях платной и бесплатной) или iOS (iPhone/iPad/iPod).
Интерфейс ownCloud организован логично и удобно
Кроме этого в интернет можно найти большое количество расширений и приложений App Store позволяющих сделать работу с ownCloud еще более удобной. Например, для файловых менеджеров Dolphin, Nautilus, Finder и Explorer доступны модули интеграции с ownCloud.
Несколько серверов ownCloud могут взаимодействовать между собой, обеспечивая автоматическое резервное копирование и миграцию данных пользователя данных на другой сервер. Продукт быстро развивается, новый релиз выходит регулярно каждые три месяца.
Написан ownCloud на PHP и JavaScript, в качестве СУБД используется SQLite, MySQL или PostgreSQL. Для развертывания подойдет стандартный LAMP или WAMP сервер, а сам процесс достаточно тривиален.
Распространяется ownCloud по лицензии AGPL, поддержкой проекта занимается коммерческая компания OwnCloud Inc.

Возможности ownCloud расширяются при помощи плагинов

AjaXplorer

AjaXplorer (ajaxplorer.info) решение выросшее за 5 лет из файл-менеджера используемого для управления файлами на веб-сервере в полноценную платформу уровня предприятия для обмена данными между пользователями при помощи веб-интерфейса, iOS и Android клиента или WebDAV. Возможно простое создание минисайта на котором будут публиковаться списки доступных документов. Доступно превью для большинства распространенных форматов (аудио, видео, PDF, офисные документы). В случае изменения каталога или файла заинтересованные пользователи получают оповещение. Реализован планировщик. Доступ к файлам могут получить как зарегистрированные, так и анонимные пользователи.
Веб-интерфейс локализован (хотя и не полностью), построен логично и понятно. Слева собраны все ресурсы (папка, общие и закладки), вверху панель действий (показываются только доступные), справа выводится подробная информация о выбранном файле. Сами файлы показываются в окне посередине. Вид отображения меняется, ненужные блоки можно убрать. Некоторые действия вызываются при помощи контекстного меню. Вообщем работа с AjaXplorer напоминает настольное приложение.
Возможна аутентификация средствами Active Directory/LDAP, HTTP, CAS, FTP, OTP и другие. Разделение прав основано на ролях применяемых к пользователям и группам, администрировать сервер могут несколько человек которым четко задаются права. Администратор имеет возможность мониторить деятельность пользователей в режиме реального времени.
Обеспечивается шифрование в течение сеанса с HTTPS и данных в файловой системе при помощи EncFS. В июне 2013 года профессиональным агентством безопасности во Франции (sysdream.com) был проведен аудит AjaXplorer, в результате которого не были обнаружены уязвимости специфические для веб-приложений.
Доступны плагины (Bridges) позволяющие интегрировать AjaXplorer в популярные CMS базирующихся на PHP — Drupal, WordPress и Joomla. Доступен соответствующий API, поэтому этот список легко увеличить. Плагин AjaXplorer for Filelink для Mozilla Thunderbird (goo.gl/S8PlO6) позволяет автоматически заменять большие вложения в сообщении сгенерированной ссылкой на хранилище AjaXplorer.
Модульность позволяет при необходимости нарастить возможности и собрать систему под конкретные нужды. Например, обеспечить доступ к другим источникам данных (файловая система, FTP, SFTP, Samba, Amazon S3, DropBox, HPCloud, IMAP, POP и т.д.), проверять файлы антивирусом. Также при помощи плагинов подключается текстовый и офисный редактор (через веб-сервис Zoho), возможность просмотра изображений, отображение Exif информации, проигрывания аудио и видеофайлов и многое другое. Поведение некоторых модулей можно настраивать более тонко, но для этого конфиги придется редактировать вручную. Например, чтобы установить разрешенные для просмотра и загрузки типы файлов следует заглянуть в server/conf/conf.access.fs.inc.
Основные плагины поставляются вместе с архивом AjaXplorer, остальные доступны по адресу ajaxplorer.info/plugins. Разработать свой плагин не так уже и сложно, проект предоставляет всю необходимую документацию и демоплагин который можно использовать как основу.
Для индексации и для быстрого поиска по хранилищу используется Lucene.
Написан AjaXplorer с использованием HTML, PHP, AJAX и JavaScript. Используются стандартные драйвера файловой системы, поэтому сервер легко переносить и масштабировать.
 Работа с AjaXplorer напоминает настольное приложение

Seafile

Самый молодой продукт обзора Seafile (seafile.com), первые версии были представлены в конце 2012. Но до релиза 1.3 интерфейс был только на китайском языке, поэтому популярность он только начинает набирать. В Seafile реализованы не только функции хранения и синхронизации данных, но и элементы совместной работы с контентом. Пользователь может создавать любое количество библиотек (по сути отдельное виртуальное хранилище) и открывать доступ для групп, контактов или публичный. Допущенные пользователи через библиотеку обмениваются файлами. В случае изменений предусмотрена возможность отправки уведомлений. При создании библиотеки возможна активация доступа по паролю и шифрование. В случае активации шифрования документ закрывается до отправки на сервер (его могут просмотреть только допущенные), поддерживается HTTPS. На уровне библиотеки, также реализовано отслеживание версий (по умолчанию 60 дней, можно изменить число, хранить всю историю или отключить совсем), доступ к предыдущим редакциям, восстановление удаленного файла, аудит (кто и когда внес дополнения). Поддерживается предварительный просмотр основных типов файлов, обсуждение информации с участниками группы, функции ведения списков задач и управления проектами, персональное Wiki.
Еще одним плюсом является меньшая нагрузка на сервер по сравнению с другими участниками обзора.
Доступ к данным возможен как через веб-интерфейс так и при помощи клиента Seafile (Windows, Linux, Mac OS X, Android и iOS).
Код проекта написан на языке Python и распространяется под лицензией GPLv3, для хранения метаданных используется SQLite. Версия Community Edition серверной части предлагается бесплатно для Linux и Raspberry Pi, для Windows цена $150, кроме этого есть Pro Edition с большими возможностями: доступ по WebDAV, функции поиска, оповещение по email и другое (подробнее seacloud.cc/group/3/wiki/feature-pro-edition). Также можно размещать файлы на сервере разработчика (бесплатной до 1 Гб).
В Seafile можно создать несколько библиотек, которые синхронизировать по отдельности

Заключение

Каждое решение имеет свои плюсы и минусы, поэтому выбирать нужное исходя из конкретных задач. ownCloud и AjaXplorer подкупают реализованными возможностями, а Seafile легкостью и простотой, возможностями групповой работы.

Наверх