OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7 (Денис Силаков, OSSDEVCONF-2019)

Материал из 0x1.tv

Докладчик
Денис Силаков.jpg
Денис Силаков

Разработчикам большинства приложений небезразлично, кто и как использует их продукт — как для «спортивного интереса», так и для определения дальнейших направлений развития. Для сбора подобной статистики нередко применяют автоматическую отсылку интересующих разработчиков данных с некоторой периодичностью; подобный подход применяется и в OpenVZ. Многие пользователи с недоверием относятся к любой попытке собрать какую-либо информацию об из системе, однако природа СПО позволяет нам открыть как сами инструменты сбора данных, так и результаты их работы. Данный доклад посвящен деталям реализации CEP в OpenVZ 7, различным аспектам юридического и морального характера, учтенными при разработке, а также пользе, которую приносит сбор данных в текущем виде.

Видео

on youtube


Презентация

OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7 (Денис Силаков, OSSDEVCONF-2019).pdf OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7 (Денис Силаков, OSSDEVCONF-2019).pdf OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7 (Денис Силаков, OSSDEVCONF-2019).pdf OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7 (Денис Силаков, OSSDEVCONF-2019).pdf OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7 (Денис Силаков, OSSDEVCONF-2019).pdf OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7 (Денис Силаков, OSSDEVCONF-2019).pdf OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7 (Денис Силаков, OSSDEVCONF-2019).pdf OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7 (Денис Силаков, OSSDEVCONF-2019).pdf OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7 (Денис Силаков, OSSDEVCONF-2019).pdf OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7 (Денис Силаков, OSSDEVCONF-2019).pdf OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7 (Денис Силаков, OSSDEVCONF-2019).pdf OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7 (Денис Силаков, OSSDEVCONF-2019).pdf OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7 (Денис Силаков, OSSDEVCONF-2019).pdf OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7 (Денис Силаков, OSSDEVCONF-2019).pdf

Thesis

Возможность сбора данных с серверов существует в OpenVZ уже много лет. Для предыдущей версии данные агрегируются на https://stats.openvz.org/. В OpenVZ 7 вместе с кодом, принесенным из коммерческого Virtuozzo, был добавлен новый механизм сбора данных и появился новый сайт-агрегатор — https://stats7-web.openvz.org/.

Реализация сбора данных

Сбор и отправка данных осуществляются сервисом disp-helper, исходный код которого размещен на https://src.openvz.org/. Сервис состоит из движка, поочередно запускающего скрипты сбора данных. Все скрипты написаны на Python, так что можно изучать их непосредственно в установленной системе. Каждый скрипт собирает информацию о какой-то конкретной подсистеме:

  • hardware.py — информация об аппаратном обеспечении;
  • libvirt_stats.py — общая информация о libvirt;
  • libvirt_guests.py — информация о виртуальных машинах;
  • ves.py — данные о контейнерах;
  • … и так далее.

Помимо статичных данных (объема памяти, количества контейнеров и тому подобного), в OpenVZ 7 производится анализ производительности (в частности, выявляются операции, занимающие слишком много времени) и статистика использования подсистем наподобие PFCache, призванных повысить плотность контейнеров на машине.

Результаты работы каждого скрипта и финальный отчет можно найти в директории /vz/tmp/cep/output/.

По умолчанию, отсылка статистики производится раз в неделю. При этом движок запускает скрипты не одновременно, а равномерно распределяет моменты их старта на всю неделю.

Некоторые скрипты, присутствующие в исходном коде, непосредственно в OpenVZ не используются (например, license.py и backend_info.py) и включены только в коммерческих продуктах либо в комбинации OpenvVZ 7 и Virtuozzo Storage.

Приватность

Отсутствие приватной информации в отсылаемых отчетах — обязательное условие, без выполнения которого большинство пользователей откажутся от участия в сборе данных. При этом многие пользователи относят к приватным данные, формально не попадающие под закон №152-ФЗ в России или GDPR в Европе. Например, далеко не все готовы раскрывать IP-адреса или MAC-адреса сетевых адаптеров.

Еще один камень преткновения — является ли легитимным какой-либо сбор данных о внутренностях виртуальных окружений. Ведь данные там принадлежат не провайдеру, а конечным пользователям, поэтому некоторые системные администраторы предпочитают совсем отключать анализ гостевых систем.

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

Публичный веб-инетрфейс

По сравнению с OpenVZ 6, в новой версии продукта в CEP собирается гораздо больше информации — как минимум потому, что наряду с контейнерами в продукте поддерживаются виртуальные машины. Как следствие, формат отображения всей собранной статистики на одной странице стал слишком тяжеловесным и в новой версии веб-интерфейса данные разделены на секции. По умолчанию, статистика учитывает только отчеты, пришедшие за последние две недели.

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

На данный момент для OpenVZ 7 собрано уже достаточно много данных, позволяющих делать выводы об использовании продукта и о наиболее актуальных направлениях развития. Например:

  • виртуальные машины используются, но далеко не так активно, как контейнеры (и как нам хотелось бы);
  • наиболее популярными гостевыми системами, как и раньше, являются CentOS 7, Ubuntu и Debian;
  • большинство машин имеют от силы несколько десятков контейнеров, но есть и такие, на которых размещено несколько сотен виртуальных окружений;
  • … и многое другое.


OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7 (Денис Силаков, OSSDEVCONF-2019)!.jpg

Примечания и ссылки

Plays:51   Comments:0