Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Практический опыт   использования решенийвиртуализации в web-проектах            Александр Чистяков                  bOomb...
Докладчик?•   Разработчик серверных приложений•   Эксплуатационщик•   DevOps•   Архитектор серверных приложений•   Просто ...
Аудитория?•   Разработчики серверных приложений•   Эксплуатационщики•   DevOps’ы•   Архитекторы серверных приложений•   Пр...
Зачем нужна виртуализация?• Возможность создания качественно разных  окружений• Возможность изоляции окружений• Возможност...
Не будем усложнять•   Windows-машины в Linux-окружении•   Каждому разработчику – своя песочница•   Один «железный» сервер ...
Типы виртуализации• Программная:   – Эмуляция (Bochs, PearPC)   – Динамическая трансляция (VMWare, VirtualBox)   – Паравир...
Какой тип нужен нам?• А чего хотим добиться?• Больше возможностей – меньше производительность:  – Попробуйте поставить Deb...
Аппаратная виртуализация•   Xen и производные•   KVM•   VirtualBox•   Hyper-V•   VMWare Player•   VMWare ESX•   VMWare ESXi
Xen и производные• Xen исторически первая Open Source система  виртуализации, начинался как паравиртуализатор• Отлично под...
Немного личного опыта• Xen 3.X, CentOS 5.X• Настройка через virt-manager тривиальна  – Если вы не настраиваете паравиртуал...
Паравиртуализация• Ядро для DomU не такое, как для Dom0, поэтому  вариантов гест-систем больше• Можно располагать ядро вне...
Что еще хорошего?• Remus – механизм отказоустойчивости путем  репликации системы в целом (в т.ч. состояния RAM)• Xen + DRB...
Семейство VMWare• VMWare Player – невероятно интрузивное и неудобное  решение (компилирует модули ядра, стартует какие-  т...
VirtualBox• При определенной сноровке можно заставить его  работать в headless режиме• А можно просто взять Vagrant (http:...
Hyper-V• Всего один график из Munin (в системе за это время не  поменялось ничего, кроме апдейтов ядра):• Все еще хотите ч...
KVM• Производится подразделением RedHat• Используется как базовая система виртуализации в  CentOS 6• Довольно давно код пр...
Как готовить KVM• Для сетевой подсистемы всегда выбирайте bridge с  реальным устройством, а не виртуальный ethernet• Для д...
Как готовить KVM – тюнинг ядра• Слева – host, справа - guest:• kernel .... nohz=off highres=off• Видел один раз на Хетцнере
Все это не избавит вас от• [ 839.921196] INFO: task apache2:2444 blocked for more than 120   seconds.   [ 839.921562] "ech...
Виртуализация уровня ОС?• Ядро одно и то же:  – Файловая система разделяется между инстансами  – Свободная память разделяе...
OpenVZ• Не входит в официальное ядро  – Те же проблемы, что у Xen – есть только под stable ядра• Давно на рынке  – Очень с...
Личный опыт• Работает отлично при любых нагрузках   – 4 млн. хитов в день в контейнере с apache2• Надо только следить за /...
LXC• Входит в официальное ядро  – Нужны достаточно свежие ядра, в «серверных»    дистрибутивах их пока нет• Пользовательск...
LXC – личный опыт• Первые дни все работало прекрасно• Потом стали пропадать вещи:  – ping есть, а git pull сделать нельзя ...
А как роутить?• Если ситуация позволяет – static routes на подсети  виртуальных машин на каждом хосте• Если нет – IPsec ту...
IPsec и OpenVZ• Просто так не заработает, нужно тюнить параметры  ядра на guest-машине (!)• /etc/sysctl.conf:      net.ipv...
А как бэкапить?• Общий принцип:  – Сделать снэпшот  – Переписать снэпшот в другое место• Еще можно бэкапить guest-машину к...
Снэпшоты• Уровня системы виртуализации  – Я лично применял только в Hyper-V• Уровня блочного устройства  – Снэпшот LVM со ...
LVM• Достоинства  – Работают вне зависимости от типа вышележащей FS• Недостатки  – Необходимо не забывать предварительно о...
CoW FSes• ZFS  – Давно в продакшн  – Лицензионно несовместима с ядром Linux• BTRFS  – Пока не доросла до «беты»  – Нет fsc...
ZFS и Linux• ZFS-FUSE   – Работает в userspace   – Довольно стабильна   – Pool version 21• ZFS on Linux (http://zfsonlinux...
ZFS-FUSE vs ZFS on Linux• ZFS-FUSE: -a 86400 -e 3600 -v 160 -m 512• Найдите на графике момент перехода от ZFS-FUSE к  ZFS ...
Развитие ситуации•   ZFS-FUSE практически мертва•   ZFS on Linux у многих в продакшне уже сейчас•   В том числе, и у меня,...
Выводы• На вкус и цвет все решения виртуализации разные  – Есть и такие, которые хорошо работают под нагрузкой• При правил...
Вопросы?••••••
Спасибо за внимание!•   С вами был Александр Чистяков•   http://alexclear.livejournal.com•   alexclear@gmail.com•   http:/...
Prochain SlideShare
Chargement dans…5
×

Практический опыт применения виртуализации для web-систем

3 395 vues

Publié le

Publié dans : Sports
  • Dating for everyone is here: ♥♥♥ http://bit.ly/2u6xbL5 ♥♥♥
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

Практический опыт применения виртуализации для web-систем

  1. 1. Практический опыт использования решенийвиртуализации в web-проектах Александр Чистяков bOombate http://alexclear.livejournal.com
  2. 2. Докладчик?• Разработчик серверных приложений• Эксплуатационщик• DevOps• Архитектор серверных приложений• Просто хороший человек
  3. 3. Аудитория?• Разработчики серверных приложений• Эксплуатационщики• DevOps’ы• Архитекторы серверных приложений• Просто хорошие люди
  4. 4. Зачем нужна виртуализация?• Возможность создания качественно разных окружений• Возможность изоляции окружений• Возможность консолидации серверов• Слой абстракции между «голым железом» и платформой• Возможность автоматического развертывания и миграции
  5. 5. Не будем усложнять• Windows-машины в Linux-окружении• Каждому разработчику – своя песочница• Один «железный» сервер на всех разработчиков• Возможность легко выполнить миграцию (апгрейд)• Возможность выполнить миграцию автоматически, возможность быстро развернуть еще одну ноду
  6. 6. Типы виртуализации• Программная: – Эмуляция (Bochs, PearPC) – Динамическая трансляция (VMWare, VirtualBox) – Паравиртуализация (Xen)• Аппаратная виртуализация (Xen, KVM, VirtualBox, Hyper-V, VMWare)• Виртуализация уровня ОС: – LXC, OpenVZ, Virtuozzo – FreeBSD Jail
  7. 7. Какой тип нужен нам?• А чего хотим добиться?• Больше возможностей – меньше производительность: – Попробуйте поставить Debian на Bochs• Аппаратная виртуализация для Windows на Linux• Уровня ОС (контейнерная) – для гомогенных сред (одно ядро на все инстансы)• Паравиртуализация
  8. 8. Аппаратная виртуализация• Xen и производные• KVM• VirtualBox• Hyper-V• VMWare Player• VMWare ESX• VMWare ESXi
  9. 9. Xen и производные• Xen исторически первая Open Source система виртуализации, начинался как паравиртуализатор• Отлично поддерживает ядро 2.6.18 и отлично поддерживался RedHat 5.x и производными• Платный Citrix XenServer• Между 3-ей и 4-й версией был большой перерыв, продукт перестал нормально поддерживаться многими дистрибутивами (отказ RedHat в пользу KVM)
  10. 10. Немного личного опыта• Xen 3.X, CentOS 5.X• Настройка через virt-manager тривиальна – Если вы не настраиваете паравиртуализацию с ядром вне образа диска• “unaligned memory access” в логе на Dom0 – Решение проблемы методом черных очков (помогло)• Под большой нагрузкой не использовался• Никаких проблем не доставлял
  11. 11. Паравиртуализация• Ядро для DomU не такое, как для Dom0, поэтому вариантов гест-систем больше• Можно располагать ядро вне файловой системы виртуального диска• Виртуальные диски можно подключать прямо как логические, что упрощает разметку• Amazon и другие так и делают
  12. 12. Что еще хорошего?• Remus – механизм отказоустойчивости путем репликации системы в целом (в т.ч. состояния RAM)• Xen + DRBD: http://www.drbd.org/users-guide/ch- xen.html• Xen + DRBD + Heartbeat: http://old.nabble.com/DRBD- Xen-LVM2-Heartbeat-Ubuntu-Gutsy-HowTo- td17245190.html (я делал без LVM2 и без Ubuntu Gutsy, достаточно CentOS 6, например)
  13. 13. Семейство VMWare• VMWare Player – невероятно интрузивное и неудобное решение (компилирует модули ядра, стартует какие- то сервисы и вообще ведет себя вызывающе)• VMWare ESX, VMWare ESXi – не знаю, не пробовал, но если стоит ознакомиться, то дайте знать
  14. 14. VirtualBox• При определенной сноровке можно заставить его работать в headless режиме• А можно просто взять Vagrant (http://vagrantup.com) и сделать все с его помощью• Нужно только иметь в виду, что VirtualBox виртуализирует диск таким образом, что при вызове fsync() не происходит ничего – Некоторые приложения могут пострадать
  15. 15. Hyper-V• Всего один график из Munin (в системе за это время не поменялось ничего, кроме апдейтов ядра):• Все еще хотите что-то хостить под Hyper-V? Удачи!
  16. 16. KVM• Производится подразделением RedHat• Используется как базовая система виртуализации в CentOS 6• Довольно давно код принят в ядро Linux• Виртуальные машины управляются через libvirtd• Хорошие новости на этом закончились• Да ты просто не умеешь ее готовить!
  17. 17. Как готовить KVM• Для сетевой подсистемы всегда выбирайте bridge с реальным устройством, а не виртуальный ethernet• Для дисковой подсистемы лучше всего взять raw flat image либо block device целиком• Кэш диска выставьте в none для block device – Или в writeback для image, если вы смелый человек• Очень хорошо иметь RAID-контроллер с батарейкой
  18. 18. Как готовить KVM – тюнинг ядра• Слева – host, справа - guest:• kernel .... nohz=off highres=off• Видел один раз на Хетцнере
  19. 19. Все это не избавит вас от• [ 839.921196] INFO: task apache2:2444 blocked for more than 120 seconds. [ 839.921562] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"disables this message.• Выглядит страшновато (к этому сообщению еще прилагается стекртрейс)• У одного европейского «облачного хостера» раз в неделю отказывал виртуальный диск в инстансе• Что же делать?
  20. 20. Виртуализация уровня ОС?• Ядро одно и то же: – Файловая система разделяется между инстансами – Свободная память разделяется между всеми инстансами• Звучит заманчиво, потери производительности должны быть очень небольшими• Linux: – OpenVZ – LXC
  21. 21. OpenVZ• Не входит в официальное ядро – Те же проблемы, что у Xen – есть только под stable ядра• Давно на рынке – Очень стабильно• Ориентировано на массовый хостинг – Ограничения по умолчанию установлены довольно жестко
  22. 22. Личный опыт• Работает отлично при любых нагрузках – 4 млн. хитов в день в контейнере с apache2• Надо только следить за /proc/user_beancounters• Есть тонкости при работе с IPsec• Хотите использовать Ubuntu 12.04 LTS в контейнере? Good luck! (но это проблемы Canonical, а не ваши?)
  23. 23. LXC• Входит в официальное ядро – Нужны достаточно свежие ядра, в «серверных» дистрибутивах их пока нет• Пользовательская база пока довольно мала – Про стабильность на следующем слайде• Ориентировано на всех – Конфигурация стандартизована и не вызывает удивления у новичков, ограничения по умолчанию гораздо мягче
  24. 24. LXC – личный опыт• Первые дни все работало прекрасно• Потом стали пропадать вещи: – ping есть, а git pull сделать нельзя – Иногда icmp ответы о том, что пакет очень велик – Роутинг до всех узлов есть, а до mxs.mail.ru нет• Что-то крепко сломано в сетевой подсистеме – Писал в рассылку разработчиков, но письмо даже не прошло модерацию – Нет проблем, мигрируем на OpenVZ
  25. 25. А как роутить?• Если ситуация позволяет – static routes на подсети виртуальных машин на каждом хосте• Если нет – IPsec туннели между хост-машинами с роутингом подсетей виртуальных машин• IPsec: – Я использую racoon/setkey – iperf показывает 100Mbit/s, для моих задач достаточно
  26. 26. IPsec и OpenVZ• Просто так не заработает, нужно тюнить параметры ядра на guest-машине (!)• /etc/sysctl.conf: net.ipv4.conf.venet0.disable_policy=1 net.ipv4.conf.venet0.disable_xfrm=1
  27. 27. А как бэкапить?• Общий принцип: – Сделать снэпшот – Переписать снэпшот в другое место• Еще можно бэкапить guest-машину как обычную• Снэпшоты: – Уровня системы виртуализации – Уровня блочного устройства – Уровня файловой системы
  28. 28. Снэпшоты• Уровня системы виртуализации – Я лично применял только в Hyper-V• Уровня блочного устройства – Снэпшот LVM со всеми его плюсами и минусами• Снэпшоты уровня FS: – Нужна CoW файловая система – Лишены недостатков LVM снэпшотов – Все было бы хорошо, но...
  29. 29. LVM• Достоинства – Работают вне зависимости от типа вышележащей FS• Недостатки – Необходимо не забывать предварительно оставлять свободное место на LVM volume group – Потеря производительности – Снэпшот может переполниться – При увеличении одновременного числа снэпшотов проблемы линейно растут
  30. 30. CoW FSes• ZFS – Давно в продакшн – Лицензионно несовместима с ядром Linux• BTRFS – Пока не доросла до «беты» – Нет fsck – Не рекомендуется к использованию на разделах с образами дисков виртуальных машин• HAMMER – Кто-нибудь в зале о ней слышал?
  31. 31. ZFS и Linux• ZFS-FUSE – Работает в userspace – Довольно стабильна – Pool version 21• ZFS on Linux (http://zfsonlinux.org) – Модуль ядра – POSIX layer появился сравнительно недавно – Pool version 28
  32. 32. ZFS-FUSE vs ZFS on Linux• ZFS-FUSE: -a 86400 -e 3600 -v 160 -m 512• Найдите на графике момент перехода от ZFS-FUSE к ZFS on Linux:
  33. 33. Развитие ситуации• ZFS-FUSE практически мертва• ZFS on Linux у многих в продакшне уже сейчас• В том числе, и у меня, но на некритичных участках• BTRFS можно пытаться использовать для OpenVZ и LXC уже сейчас
  34. 34. Выводы• На вкус и цвет все решения виртуализации разные – Есть и такие, которые хорошо работают под нагрузкой• При правильном использовании виртуализация может приносить большую пользу – А при неправильном доставлять большую головную боль• Универсального решения, по-прежнему, нет – Но есть наборы граничных условий, определящих применимость того или иного варианта
  35. 35. Вопросы?••••••
  36. 36. Спасибо за внимание!• С вами был Александр Чистяков• http://alexclear.livejournal.com• alexclear@gmail.com• http://github.com/alexclear

×