Рубрика «виртуализация» - 68

Привет!
Мы в Хекслете активно используем Докер как для запуска самого приложения и сопутствующих серверов, так и для запуска пользовательского кода в практических упражнениях по программированию. Без этих легковесных контейнеров нам было бы в разы сложнее справиться с этими задачами. Докер –замечательная технология, но иногда возникают неожиданные проблемы. Одна из таких проблем (и ее решение) описана в блоге Phusion (это создатели Phusion Passenger), сегодня мы публикуем ее перевод.

Примерно год назад, когда Докер был в версии 0.6, мы первыми представили Baseimage-docker. Это минимальный образ Ubuntu, модифицированный специально для Докера. Люди могут пуллить этот базовый образ из Docker Registry и использовать его как основу для своих образов.

Мы были ранними пользователям Докера, используя его для CI и для создания рабочего окружения задолго до выхода версии 1.0. Базовый образ мы сделали чтобы решить проблемы, специфичные для принципов работы Докера. Например, Докер не запускает процессы под специальным процессом init, который бы правильно обрабатывал дочерние процессы, поэтому возможна такая ситуация, когда зомби-процессы вызывают кучу проблем. Докер также не делает ничего с syslog, поэтому важные сообщения могут быть утеряны. И так далее.

Однако, мы выяснили, что многие люди не понимают проблем, с которыми мы столкнулись. Да, это довольно низкоуровневые системные механизмы Unix, которые понятны далеко не всем. Поэтому в этом посте мы опишем самую главную проблему, которую мы решаем – PID 1 zombie reaping problem.

Проблема PID 1 zombie reaping в Докере - 1
Читать полностью »

Что чаще всего делают пользователи, которым нужно срочно получить резервную копию виртуальной машины, например, для тестирования и отладки хотфикса? Судя по нашим наблюдениям, чаще всего они делают снапшот. В самом деле, у снапошота достаточно плюсов: его создание не отнимает много времени, а если что-то пойдет не так, можно быстро откатить виртуальную машину на предыдущее состояние. Однако есть и минусы: пока вы экспериментируете с машиной, снапшот разрастается; у виртуальной машины падает производительность чтения/записи; сокращается свободное место на СХД. Вдобавок, «забытые» (бесхозные) снапшоты тоже могут доставить неприятности – недаром VMware рекомендует следить за актуальностью и длиной цепочки снапшотов виртуальной машины. В итоге есть риск, что из-за разросшихся снапшотов возникнут проблемы с доступностью ресурсов продакшена (в частности, из-за чрезмерной интенсивности чтения/записи на СХД), и во время коммита виртуальная машина просто подвиснет.

Чтобы избежать этих неприятностей, для всякого рода тестирования разумно использовать виртуальную лабораторию, или «песочницу» (например, как рекомендуется здесь). Но ее запуск и настройка требуют времени, а как быть, если его в обрез?

Можно запустить процесс резервного копирования – но он тоже отстает по быстроте от создания снапшота, даже если вы используете бесплатную утилиту VeeamZIP (создание полного бэкапа для выбранной виртуальной машины «на лету», т.е. по требованию и без остановки машины). Проход инкрементального бэкапа тоже не всегда является спасением – например, если виртуальная машина бэкапится в одном задании еще с несколькими, то при запуске этого задания придется ждать, пока обработаются они все.

Для таких случаев очень пригодится новая функциональная возможность Veeam Backup & Replication 8.0 – Quick Backup, создающая инкрементальную точку восстановления для выбранной виртуальной машины «на лету».

image

Что это за разновидность бэкапа, и почему она носит имя Quick — разбираемся под катом.
Читать полностью »

В продолжение темы об оптимизации хоста с VMware ESXi, рассмотрим как поступать со Swap'ом в инфраструктуре живущей на СХД NetApp FAS. Хотя эта статья должна быть полезна и не только владельцам систем NetApp FAS.

Одна из важнейших возможностей виртуализации заключается в возможности более эффективно утилизировать серверное оборудование, что подразумевает Overcommit ресурсов. Если мы говорим об ОЗУ, это означает, что мы можем настроить каждой виртуальной машине больше памяти, чем есть на сервере на самом деле. А дальше мы полагаемся на ESXi, чтобы тот разрулил борьбу за ресурсы — забрал (такой процесс часто называют reclamation) не нужную память одной виртуальной машины и отдал той, которая в ней действительно нуждается. В тот момент когда не хватает памяти, начинается процесс свапинга памяти.

Начнём с того, что есть два типа свапинга которые могут происходить на ESXi хосте. Их очень часто путают, по-этому давайте условно будем называть их Тип 1 и Тип 2.

NetApp FAS и VMware ESXi: Swap - 1
Расположение данных VMware ESXi по-умолчанию
Читать полностью »

Всем привет!

Начну с того, что этот топик поможет обойти мимо порой мучительную, хоть и тривиальную, установку образа CUCM на VMware Workstation, так как я кину ссылку на архив, откуда можно будет скачать уже готовый шаблон CUCM для Workstation. Как именно устанавливать CUCM под гипервизором для серверных платформ VMware ESXi 5.1 можно узнать из статьи здесь. На Workstation установка аналогичная, кроме того, что нет необходимости устанавливать сначала сам гипервизор. Поэтому мы пропустим установку и перейдём к запуску нашей виртуальной сети под CUCM и запуск уже готового шаблона CUCM. Так же я рассчитываю на то, что данной статьёй будут пользоваться люди, которые уже в курсе, как работать с GNS3 и VMware, чтобы не особо повторять другие статьи (хотя местами я сделаю некоторые отступления от данного правила).

Для всего прочего нам понадобятся:

  1. Windows 7, 8, 8.1 (устанавливал под 8 и 8.1);
  2. VMware Workstation не менее 10 й версии;
  3. GNS3 — желательно 0.8.5 (более стабильна);
  4. IOS для Cisco 2691 —
    c2691-advipservicesk9-mz.124-17

    IOS на данной платформе оказался более стабильным без каких-либо глюков. По-началу попробовал развернуть всё это на платформе серии 3600, роутер периодически начинал глючить из-за возложенных на него задач, приходилось перезагружать его. Не захотелось разбираться, хотя догадки есть, просто нашёл решение проще для данного случая.

    ;

  5. Шаблон с установленной CUCM на Workstation;
  6. Установленный MSloopback интерфейс на Windows машине.

Читать полностью »

Руководя крупной и регулярно пополняющейся командой программистов, столкнулся с необходимостью быстро разворачивать среду разработки без танцев с бубном в духе «странно, у меня этот же код работает, а у тебя какая версия такой-то библиотеки?»

Получив однажды ссылку от заказчика на Vagrant с вопросом «а почему мы это сих пор это не используем?» принялся осваивать это чудо.
Читать полностью »

Здравствуйте, читатели.

Не секрет, что Windows 2012 (особенно версия R2) принес с собой большое количество фишек и плюшек, в особенности корпоративного уровня. И так как деятельность моя связана непосредственно с эксплуатацией систем виртуализации, то выход Hyper-V Server 2012 R2 вызвал логичное желание — покопаться в нем руками, ведь читать статьи хорошо, но пощупать конечностями еще лучше! Особенно учитывая тот факт, что Hyper-V Server 2012R2 абсолютно бесплатен для коммерческой эксплуатации (к слову, бесплатна именно версия Hyper-V Server 2012 R2, т.е. редакция работающая в режиме Core).

Но вот незадача, большая часть функционала гипервизоров подразумевает под собой наличие нескольких хостов и их взаимодействие между собой (различные миграции, отказоустойчивые кластера и т.д.). Ковыряться с несколькими железками желания у меня не было никакого, тем более что уже имелся небольшой тестовый стенд с ESXi 5.5. После непродолжительного раздумья было решено развернуть на нем несколько виртуальных машин под управлением Hyper-V Server 2012 R2. Тут-то я и столкнулся с проблемами. После разворачивания гипервизора он отлично имитировал свою бурную деятельность, позволял создавать виртуальные машины и копаться в настройках, но как только я попытался запустить виртуальную машину, то неожиданно получил сообщение о том, что сделать это невозможно, что какой-то сервис hyper-v не работает, либо железка моя не поддерживает виртуализацию.
Читать полностью »

Docker в продакшене на Iron.io
Docker в продакшене — чему мы научились, запустив более 300 миллионов контейнеров - 1

Ранее в этом году (прим. 2014 г.), мы приняли решение запускать каждую задачу на IronWorker внутри своего собственного Docker контейнера. С тех пор мы запустили более 300 000 000 программ внутри собственных Docker контейнеров в облаке.

После нескольких месяцев использования, мы хотели бы поделиться с сообществом некоторыми из проблем, с которыми мы столкнулись в построении инфраструктуры, основанной на Docker'e, как мы преодолели их, и почему это стоило того.
Читать полностью »

Когда вы указываете в Dockerfile:

FROM ubuntu

то к вам на машину стягивается официально-поддерживаемый базовый образ Ubuntu (на сегодняшний день это 14.04 LTS). Мне стало интересно, чем образ этот отличается от «настоящей» чистой системы.

В процессе pull можно заметить, что он состоит из 5 слоёв:

docker pull ubuntu

ubuntu:latest: The image you are pulling has been verified
511136ea3c5a: Pull complete
3b363fd9d7da: Downloading 8.641 MB/197.2 MB 3m18s
607c5d1cca71: Download complete
f62feddc05dc: Download complete
8eaa4ff06b53: Download complete

Чтобы понять содержание каждого слоя, можно выполнить команду:

docker history --no-trunc ubuntu > history.txt

либо посмотреть исходный Dockerfile на GitHub. Каждый слой соответствует отдельной строке в Dockerfile:

511136ea3c5a — это отправная точка, пустой образ под названием scratch (строка FROM scratch).

3b363fd9d7da«вливание» официального образа Ubuntu из файла ubuntu-trusty-core-cloudimg-amd64-root.tar.gz
Читать полностью »

Возможно, это странно, но в первые дни на работе после новогодних каникул, когда все упавшее за праздники уже успешно возвращено к жизни, у многих возникает желание как-то упорядочить информацию в своей голове, дабы привести её к систематизированному виду. Хорошим катализатором для этого процесса является осознание факта, что вроде и обладаешь багажом знаний, но бабушке с улицы или шестилетнему ребёнку в простых словах этот багаж ну никак не получится объяснить. Ибо, как гласит народная мудрость, не смог объяснить ребёнку – значит, сам не знаешь. Да и вообще, дефрагментация информации ещё никому не вредила.
Но у нас не курс прикладной психологии, поэтому сегодня я просто изложу в систематизированном виде набора пикселей максимальное количество полезной информации о функции репликации виртуальных машин в среде гипервизора Hyper-V на примере текущей версии Windows Server 2012 R2.

Итак, на что я хочу потратить примерно час вашего времени:

  • Надо понять, зачем вообще нужна репликация в условиях современного мира
  • Составить чек лист из очевидных и не очень пунктов, предшествующих настройке серверов
  • Как правильно и быстро настроить репликацию встроенными средствами. Достаточно подробно, но без воды
  • Несколько советов по оптимизации процесса репликации.
  • Ни слова про продукты Veeam или других вендоров.

Читать полностью »

Быстрое знакомство с Docker-контейнерами для Django-разработчика - 1
Разработка такого проекта как CloverR подразумевает использование различных сервисов, нетипичных для обычного ноутбука, даже если это ноутбук разработчика. Postgresql, Redis, Celery и так далее. Желание создать комфортную среду разработки и тестирования привело нас к необходимости использование какой-то системы виртуализации/изоляции. Как вариант — некоторое время использовался Vagrant, но это всё-таки ovrerhead и наши поиски оптимального способа привели, на данный момент, к Docker.

Docker — платформа для запуска приложений в изолированных контейнерах. Использование контейнеров в Linux позволяет программному обеспечение быть изолированным от базовой системы. В отличии от Virtualbox, исключаются системные издержки (overhead), необходимые для виртуализации оборудования. Docker может помочь в разработке и развертывании веб-приложений и сервисов. Давайте посмотрим, как это происходит.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js