Анонсирован номер № 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 легкостью и простотой, возможностями групповой работы.

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

  • Виртуализация на уровне ОС. Теория и практика LXC
    Рассмотрим технические особенности широко обсуждаемой платформы Linux Containers. Выполним ее установку и настройку и обсудим проблемы и сильные стороны платформы.
  • Установка Redmine и интеграция его с SVN
    Рассмотрим основные настройки, возможности, достоинства и недостатки SCCM 2012 SP1 по управлению обновлениями.
  • Запускаем внутренний чат
    Построение корпоративного сервиса обмена сообщениями с прозрачной авторизацией пользователей по протоколу XMPP. Решение предназначено для крупных и средних компаний.
  • Redo Backup and Recovery. Изящный инструмент для снятия образов с дисковой подсистемы
    Сравним различные типы архитектуры систем резервного копирования для предприятий разного масштаба и выдадим рекомендации для построения и модернизации систем сохранения данных.
  • Сканер уязвимости OpenVAS
    Сканеры уязвимости позволяют в автоматическом режиме произвести оценку эффективности защиты систем. Open Source-решение OpenVAS по своим возможностям не уступает коммерческим аналогам.
  • AIX Security Expert, или Как настроить безопасность AIX в один клик
    Как защитить критичную для бизнеса систему? Поговорим о способах настройки защиты в операционной системе IBM AIX, а конкретно – о встроенном средстве AIX Security Expert (сокращенно AIXpert).
  • DLP-комплекс DeviceLock DLP Suite для решения актуальных проблем безопасности данных
    Какие угрозы информационной безопасности с точки зрения сохранности корпоративных данных сегодня наиболее актуальны? Правильный ответ – все. Неактуальных угроз в информационной безопасности не существует.
  • Современный ИТ-монтажник
    Что должен знать и уметь специалист линейно-кабельных сетей? Какие трудности приходится преодолевать? Рассмотрим некоторые основы СКС (структурированно-кабельных сетей), принципы монтажно-соединительных работ, необходимый для этого инструмент, а также обязанности специалиста данного направления.
  • Электрическая сеть для системного администратора
    Без знаний о том, как устроена электрическая сеть, невозможно наладить работу компьютерной сети.
  • РАУЗ в 1С – друг или враг? Часть 2. Детальный учет – несмотря ни на что!
    В некоторых ситуациях нужно организовать учет себестоимости продукции с точностью до конкретной партии материала, из которого она произведена. Посмотрим, влияет ли использование РАУЗ на такую возможность.
  • «1С:Розница 8.2». Настройка скидок по дисконтным картам
    Сети магазинов требуется увеличить продажи, для этого используются пластиковые дисконтные карты, по которым начисляются накопительные скидки, а за привлеченных людей – бонусы. Как можно изменить информационную систему под эти нужды?
  • «1С:ERP 2.0». Что нового? Часть 1. Подсистемы «Маркетинг» и «Продажи»
    В конце 2013 года на рынок вышло флагманское решение от 1С – «ERP 2.0», которое пришло на замену «1С:УПП». Рассмотрим основные новшества этого продукта.
  • Праздничные котята от VK.com. kPHP – PHP со скоростью C++
    В преддверии Международного женского дня проект ВКонтакте открыл исходные коды своих внутренних разработок. Очевидно, таким образом решили преподнести праздничный подарок всем женщинам-программисткам. Исторически сложилось, что все продукты имеют префикс kitten, так что речь пойдет о разных котятах.
  • CSS-препроцессоры – решение проблем стиля
    Веб-программист и HTML-верстальщик – это совершенно разные специализации, по определению неодинаковые люди. Но это в идеале. На практике программистам часто приходится сталкиваться с версткой. Они давно придумали способы облегчить себе жизнь и справляться с этой нудной задачей, оставаясь программистами.
  • Маленькие помощники сайтостроителя. От тестирования ссылок к поисковой оптимизации
    В статье рассматриваются основные средства работы с потоками (threads) и процессами в языке и стандартной библиотеке Ruby.
  • Защита информационного содержания цифровых фотографий методом многократной маркировки цифровыми водяными знаками
    В статье излагается метод защиты цифровых изображений от модификации. Изображение разделяется на прямоугольные блоки, каждый из которых подписывается двумя цифровыми водяными знаками. Первый водяной знак служит для поиска блоков и контролирует их взаимное расположение. Второй является цифровой подписью и контролирует неизменность содержимого блока изображения. Метод позволяет определять не только изменения всего изображения в целом, но и какая именно часть изображения подвергалась модификации (искажению, вставке постороннего изображения, реплицированию).
  • Экологические проблемы электронной отрасли и экопроектирование
    В статье рассматриваются некоторые экологические вопросы, возникающие на разных стадиях жизненного цикла изделий, применяемых в процессе использования современных ИТ-технологий.
  • Как перестать беспокоиться и начать вести безопасную переписку в социальных сетях?
    Автоматизированные инструменты проверки кода не ограничиваются синтаксическим анализом и поиском нарушений, связанных со стилем и форматированием. Многие из них способны отлавливать реальные ошибки, которые не всегда удается выявить с помощью обычных тестов.
  • Система распределения секрета на основе кодов, исправляющих ошибки
    Новая система распределения секрета, представленная в статье, работает на основе кодов, исправляющих ошибки. Целью исследования является разработка высокопроизводительной системы, которая будет использовать разные коды, исправляющие ошибки.
  • Анимированная капча с использованием жестов рук
    Статья посвящена созданию капчи нового типа с использованием трехмерных анимированных жестов, которая обладает повышенной сложностью для автоматического распознавания.
  • Кого выберем? Взгляд работодателя
    Резюме – это ваша визитная карточка и первое, что видит работодатель. Изучает его и, не зная кандидата лично, принимает решение, приглашать на собеседование или нет. Просматривает послужной список и перечень освоенных технологий и оценивает ваш профессиональный уровень.
  • Вакансия: программист Java
    Продолжаем публикацию цикла статей в помощь ИТ-специалистам, начинающим и опытным, которые ищут работу. В этом номере представители компаний рассказывают, какие навыки они хотели бы видеть у программистов Java.
  • Великая китайская Байду
    Baidu – именно так «в переводе» на латиницу пишется название крупнейшего китайского поисковика. Впрочем, на забавно звучащем – на русский слух – названии, как говорится, шутки заканчиваются. Третье место по количеству обрабатываемых запросов – и не в Китае, а в мире! – какие уж тут шутки…
  • Биг-Мак
    Очередной экспонат нашего виртуального музея компьютеров и ИТ – Macintosh 128K. Тот самый, наипервейший, провозвестник новой компьютерной эры (Macсовой эры). И последний оглушительный хлопок дверью Стива Джобса перед тем, как покинуть родную компанию (к счастью для обоих, не навсегда).
Наверх