Transcript
Page 1: использование Solaris zones для решения различных задач. а. павленко. зал 4

Использование Solaris Zones

Антон Павленко

Page 2: использование Solaris zones для решения различных задач. а. павленко. зал 4

ВиртуализацияВиртуальный сервер не привязан к конкретному “железу”

• высокая доступность• динамическое увеличение

ресурсов• простота миграции• легкость распространения

Page 3: использование Solaris zones для решения различных задач. а. павленко. зал 4

КонсолидацияОбъединение нескольких виртуальных серверов в рамках одного сервера

• повышение утилизации ресурсов

• рост производительности системы

• значительная экономия

Page 4: использование Solaris zones для решения различных задач. а. павленко. зал 4

Почему Solaris Zones?

Page 5: использование Solaris zones для решения различных задач. а. павленко. зал 4
Page 6: использование Solaris zones для решения различных задач. а. павленко. зал 4

Что такое Solaris Zones?• виртуальное окружение,

которое выглядит и управляется как обыкновенный Solaris

• зоны работают на базе одного ядра Solaris с ограниченными привилегиями

• минимальные накладные расходы

Page 7: использование Solaris zones для решения различных задач. а. павленко. зал 4

Типы зонКаждый образ Solaris сам по себе

уже зона.Глобальная зона управляет

ресурсами сервера, позволяет распределять ресурсы локальным зонам, администрировать сами зоны.

Локальные зоны :• Sparse : наследует ряд файлов от

глобальной зоны• Whole-root : полная копия всех

файлов с возможностью модификации

Page 8: использование Solaris zones для решения различных задач. а. павленко. зал 4

Одно приложение одна зона?Не стоит применять когда приложения используют shared memory.Во всех остальных случаях стоит • изоляция приложений

– позволяет запускать на одном сервере даже конфликтующие между собой приложения– сбой одного приложения не приведет сбою или к остановке остальных

• безопасность– в случае проблем с одним приложением это никак не скажется на других– возможно дополнительно защитить данные от изменений

• унификация– виртуализация IP позволяет приложению в каждой зоне использовать стандартные

порты

Page 9: использование Solaris zones для решения различных задач. а. павленко. зал 4

Существующая схема• Производительность

оборудования постоянно растёт• Часто утилизация серверов ниже

50%• Значительная часть общего

времени отклика системы составляет взаимодействие подсистем

• Неоднозначность планирования загрузки ресурсов для расширения

Page 10: использование Solaris zones для решения различных задач. а. павленко. зал 4

Всё в одном• консолидация позволяет

значительно снизить накладные расходы на передачу данных• Все сетевое взаимодействие между зонами

реализуется на уровне ядра Solaris

• уменьшить общее количество компонент• И унифицировать оставшиеся

• повысить безопасность

Page 11: использование Solaris zones для решения различных задач. а. павленко. зал 4

Всё в одном• консолидация позволяет

значительно снизить накладные расходы на передачу данных• Все сетевое взаимодействие между зонами

реализуется на уровне ядра Solaris

• уменьшить общее количество компонент• И унифицировать оставшиеся

• повысить безопасность• Подключать данные только для чтения• Не делать доступными по сети внутренние службы

Page 12: использование Solaris zones для решения различных задач. а. павленко. зал 4

Мало одного сервера?• zfs clone позволяет легко

дублировать существующие зоныzoneadm -z zone1 clone template real 0.42user 0.06sys 0.09

• zfs send/recv позволяет легко переносить зоны между серверамиzfs send zones/webfrontend1@today | ssh server2 zfs recv zones/webfrontend@today

Page 13: использование Solaris zones для решения различных задач. а. павленко. зал 4

Мало одного сервера?• централизованное

хранилище снимает проблемы с гранулярностью репликации

• повышает доступность серверов- время поднятия зоны на другом сервере минимально

• упрощает масштабируемость

Page 14: использование Solaris zones для решения различных задач. а. павленко. зал 4

Простота тестирования и внесения изменений• при возникновении проблемы

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

• легкость тестирования при внесении изменений

• простота отката в случае возникновения проблем

• быстрое распостранение внесенных изменений

Page 15: использование Solaris zones для решения различных задач. а. павленко. зал 4

Управление ресурсамиПо умолчанию все зоны видят все процессора

– а также все утилиты ( vmstat, prstat ) считают % на основе всех CPU

Два различных способа разделения ресурсов процессора :– FSS (Fair Share Scheduling )– CPU pool

Два различных способа подключения сети– Exclusive : в зону передается целиком интерфейс. Сеть настраивается на уровне

зоны– Shared : параметры сети задаются в конфигурации зоны.

Возможность разделения памяти между зонами

Page 16: использование Solaris zones для решения различных задач. а. павленко. зал 4

CPU pool• гарантированное кол-во CPU• CPU жестко закреплены за зоной

– если зона не использует часть выделенных CPU то они будут простаивать

• утилиты ( vmstat, prstat ) знают о pool’ах и показывают загрузку именно pool’а

• неравномерная загрузка процессоров в рамках одного сервера

Page 17: использование Solaris zones для решения различных задач. а. павленко. зал 4

Dynamic CPU pool• можно задавать не точное кол-

во процессоров а диапазон– в случае высокой загрузки процессоры будут

перераспределены автоматически в рамках выбранных диапазонов

• различные варианты настроек– wt-load – Locality (tight, loose, none )– Utilization ( < > ~ )

poolcfg -dc ’modify pset large (string pset.poold.objectives="utilization<75")’

• детальное логирование и мониторинг

Page 18: использование Solaris zones для решения различных задач. а. павленко. зал 4

Dynamic CPU pool• можно задавать не точное кол-

во процессоров а диапазон– в случае высокой загрузки процессоры будут

перераспределены автоматически в рамках выбранных диапазонов

• различные варианты настроек– wt-load – Locality (tight, loose, none )– Utilization ( < > ~ )

poolcfg -dc ’modify pset large (string pset.poold.objectives="utilization<75")’

• детальное логирование и мониторинг

Page 19: использование Solaris zones для решения различных задач. а. павленко. зал 4

Fair Share Scheduling• тип scheduler’а• контролирует выделение CPU

на основе долей• загрузка всех CPU равномерна• в случае если зона не

использует выделенные ей ресурсы, их могут использовать другие

• зоне доступны все CPU

Page 20: использование Solaris zones для решения различных задач. а. павленко. зал 4

Fair Share Scheduling

• возможно online перераспределение долей

• при добавлении новой зоны все доли необходимо пересчитывать

• нет простого способа мониторинга и анализа загрузки

Page 21: использование Solaris zones для решения различных задач. а. павленко. зал 4
Page 22: использование Solaris zones для решения различных задач. а. павленко. зал 4

Выводы• по возможности используйте sparse зоны

– совместное использование компонент– минимальные накладные расходы на память ( shared libs, бинарные файлы )

• используйте whole root зоны только когда это действительно необходимо– необходимость постоянно писать в /usr– тестирование патчевания основных компонент

• группируйте приложения в зоны– при возможности использования shared memory

• при разграничении прав доступа• используйте LOFS для предоставления общих данных зонам

Page 23: использование Solaris zones для решения различных задач. а. павленко. зал 4

Выводы• используйте все возможности ZFS

– клонирование для deployment’а и тестирования– snapshot’ы для резервного копирования и анализа изменений– компрессию для экономии дискового пространства

• в зависимости от требований используйте либо FSS либо CPU pools• FSS лучше утилизирует CPU но затрудняет анализ• на основе dynamic pool легко строить (само)масштабируемые

системы• по возможности ограничение по памяти лучше не использовать

Page 24: использование Solaris zones для решения различных задач. а. павленко. зал 4

Спасибо!