среда, 14 октября 2015 г.

VMworld 2015 Europe (день 0)

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

О предыдущих поездках можно почитать тут:


VMworld Europe - одно из крупнейших IT-мероприятий (в области виртуализации уж точно), которое ежегодно проходит в выставочном центре Fira Grand Via (Барселона, Испания) в середине октября.

Участие в конференции доступно всем желающим, достаточно лишь оплатить билет (около 1425 евро при предварительной регистрации + скидки постоянным участникам, членам VMware User Group и сертифицированным специалистам VMware), проезд/перелет и проживание в стоимость не входят.

Конференция длится четыре дня (первый день - партнерский, который называется Partner Exchange, куда могут попасть только сотрудники компаний-партнеров VMware, три оставшиеся - основная конференция для всех участников). Раньше Partner Exchange мало чем отличался от основной конференции - можно было посещать сессии, делать лабораторные работы, сдавать экзамены и т.д. Однако в этом году VMware изменила формат мероприятия и сделала так называемый Partner Exchange Plus, в рамках которого участники могут посещать дополнительные сессии, в том числе и генеральную партнерскую сессию, заплатив дополнительные 180 евро.

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

Но не будем о грустном.

Начало ежегодного путешествия чуть было не омрачили проблемы, возникшие у авиакомпании Трансаэро. Были серьезные опасения не улететь в Барселону, но вроде все обошлось, хотя лететь в воскресенье в полупустом самолете оказалось довольно забавно (и никаких плачущих детей).

В понедельник прямо с утра (конференция начинает работу в 8:00) я выдвинулся в нужном направлении.

Поскольку павильоны располагаются довольно далеко от ближайшего метро (Fira Barcelona), то в дни конференции работает бесплатный автобус.

Кстати, для тех, кто пользуется общественным транспортом, а он тут ой какой недешевый (2,15 евро, чтобы доехать на метро до станции Espanya, а потом еще столько же за поездку на поезде FGC до Europa Fira), на конференции выдают проездной билет на 10 поездок.

Сам выставочный комплекс огромен, и даже VMworld занимает всего-то три павильона из восьми (6, 7 и 8). 

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

Сама процедура регистрации предельно проста - можно воспользоваться официальным приложением, который генерирует персональный QR-код, либо ноутбуком на стойке регистрации.

Что касается раздаточного материала, то в этом году тоже все стандартно: рюкзак, записная книжка, фляга для воды, пара рекламных проспектов. Рюкзак, на удивление, оказался довольно качественным и симпатичным.

После регистрации я зашел в местный магазин, торгующий разнообразными предметами с атрибутикой VMware: майками, сумками, ручками, кружками, портативными зарядными устройствам, и даже комбинезонами для маленьких детей, видимо, чтобы привыкали к продукции VMware с пеленок, а также книгами на IT-тематику. Лично я присмотрел пару книжек по OpenStack, будет что на Amazon купить (если только не получу халявный купон на 40 евро).

В 7 павильоне расположились места для выполнения лабораторных работ, зона отдыха, переговорные комнаты для спонсоров конференции, а также кое-что интересное - стенд VMware Video Game Container System.

Да-да, новый продукт VMware, грозящийся перевернуть рынок игровых консолей и ПК. Зачем пользоваться сервисами электронной дистрибьюции типа Steam, или покупать игры на диске, если можно запускать их в контейнере? Как вам может быть известно, VMware активно ведет разработку решения по управлению Docker контейнерами - vSphere Integrated Containers. В отличие от типовой Docker инфраструктуры, где в качестве хостов для контейнеров используются серверы с установленной ОС Linux, и на одном хосте может быть запущено несколько контейнеров, в vSphere Integrated Containers предполагается использовать хосты ESXi для запуска обычных ВМ и контейнеров. Каждый контейнер планируется запускать в отдельной гостевой ОС. Несмотря, на кажущуюся на первый взгляд абсурдность идеи из-за больших накладных расходов, такой подход имеет свои плюсы, например, все существующие инструментры и функциональные возможности, доступные для ВМ, будут работать и для контейнера. Возможно будет настроить мониторинг контейнеров с помощью vRealize Operations, использовать VSAN для хранения постоянных данных для приложений, работающих внутри контейнеров (ClusterHQ Flocker), и так далее. Для ускорения процедуры создания новых контейнеров предлагается использовать технологию мгновенного клонирования ВМ (ранее Project Fargo). В качестве эффектной демонстрации возможностей vSphere Integrated Containers на стенде можно было сыграть в игру Prince of Persia на эмуляторе DOSBox внутри контейнера, запущенного на ВМ, созданной с помощью Instant Clone, и работающей на хосте ESXi. Вот такой вот Inception от VMware.

Для тех, кто не мог осилить принца Персии, в зоне отдыха были установлены игровые автоматы, столы для биллиарда и настольного тенниса и футбола.

В зоне для выполнения лабораторий (hands-on labs) можно было ознакомиться и вживую пощупать практически любой продукт и технологию VMware. К сожалению, в этом году особого разнообразия в лабораторных работах не было, все они и так уже были доступны на сайте http://labs.hol.vmware.com. Единственным исключением стала лабораторная работа по Native Cloud Apps, которая демонстрировала работу с Docker, Kubernetes и Project Lightwave.

В отдельном зале для постоянных участников VMworld (Alumni - посетившие конференцию 3 и более раз) можно было отдохнуть в тихой и приятной обстановке. О ценности постоянных посетителей для VMware говорит хотя бы тот факт, что во всем 7 павильоне, только в зале Alumni располагался холодильник с прохлаждающими напитками.

На стенде VMware Educational Service можно было сделать селфи с табличкой для участия в конкурсе на получение скидки на обучение по какому-либо из курсов VMware.

Оставшуюся часть дня я посвятил сессиям. Новшество этого года - Quick talks - короткие сессии по 30 минут. Мне крайне понравился такой формат в отличие от занудных выступлений по 1 часу, где частенько можно видеть одинаковые слайды и по десятку раз слушать об одних и тех же вещах. В quick talks же все быстро и по делу.

Например, доклад 10 Reasons Why VMware Virtual SAN is the Best Hyperconverged Solution. Вот такие 10 причин:
  • VSAN встроен в гипервизор. Это позволяет снизить накладные расходы на организацию виртуального хранилища по сравнению с другими гиперконвергентными решениями.
  • Возможность выбора. Большинство гиперконвергентных решений поставляются в виде заранее определенного набора аппаратных компонентов. VSAN за счет большого выбора поддерживаемых серверов, накопителей, адаптеров позволяет создавать оптимильные по конфигурации платформы, а также обеспечивать поддержку самых современных комплетующих.
  • Возможность вертикального масштабирования (а не только горизонтального), во многом перекликается с предыдущим тезисом. Конфигурация узлов может быть изменена, установлено больше дисков, более высокой емкости или более производительные SSD, более мощные процессоры. Другие решения более ограничены и обычно масштабируются горизонтально путем покупки дополнительных узлов.
  • Прозрачная интеграция с другими продуктами и решениями (стеком) VMware. VSAN можно мониторить с помощью vRealize Operations, а также использовать всевозможные технологии, такие как vMotion, DRS, SRM, Fault Tolerance и другие, которые не будут оказывать негативного влияния на производительность (например, из-за локализации ввода-вывода).
  • Производительность. VSAN может обеспечивать производительность в несколько миллионов IOPS, чего должно быть достаточно для запуска даже самых ресурсоемких приложений.
  • Более низкая стоимость владения по сравнению с традиционными решениями или другими гиперконвергентными продуктами. VSAN позволяет экономить на аппаратном обеспечении за счет использования стандартных комплектующих, устанавливающихся в серверы.
  • Простота в освоении. Тем, кто работает с vSphere будет крайне просто разобраться в работе VSAN. VSAN использует те же инструменты управления, что и vSphere, что позволит снизить затраты на обслуживание.
  • Более 2000 заказчиков уже выбрали VSAN. Более того, 62% заказчиков уже опробовали VSAN для запуска бизнес-критичных приложений.
  • Скорость выпуска новых версий. За 1.5 года было выпущено уже три релиза, каждый из которых привносит новые функциональные возможности, улучшает производительности, повышает лимиты.
  • VSAN строится с заделом на будущее. Все новомодные технологии в той или иной мере могут использовать VSAN. Например, VSAN используется для организации хранения в облачной инфраструктуре OpenStack, на VSAN можно хранить постоянные данные для Docker контейнеров и т.д.
Со всеми доводами можно поспорить, но некое рациональное зерно в них есть.

Завершил первый день генеральный доклад для партнеров. На нем представители VMware в очередной раз поделились своим видением ИТ рынка и перспектив его развития. VMware давно и всерьез нацелена на то, чтобы предоставлять заказчикам полный спектр продуктов для запуска и доставки любых приложений. Для запуска и работы приложений используются программно-определяемые ЦОД или публичные облака, которые интегрируются друг с другом с помощью средств автоматизации, позволяющих прозрачно переносить приложения из частного облака в публичное и обратно. Для публикации и доставки приложений есть Workspace Suite, позволяющий доставлять любое приложение на любое устройство (Horizon View, Workspace Portal), а также управлять любыми устройствами (Horizon Mirage, AirWatch). Наконец, VMware NSX используется как средство обеспечения безопасности внутри ЦОД и для связи территориально-удаленных площадок.

P.S. кстати, как стало известно на партнерском дне, Dell собирается приобрести компанию EMC за 67 миллиардов $, а с ней и большую часть VMware. Хотите знать больше? Продолжение следует.

Скидки на сдачу экзаменов VCP, VCAP и VCIX на конференции VMworld 2015 Europe

На время работы конференции VMworld 2015 Europe всем участникам предалагается сдать экзамены на сертифицированные статусы VCP, VCAP или VCIX со скидкой 50%.

Те, кто не попал на конференцию, могут воспользоваться скидкой в 25% на сдачу любых экзаменов из следующего списка:
  • VCP6-DCV
  • VCP5-DCV
  • VCP6-CMA
  • VCP6-Cloud
  • VCP-Cloud
  • VCP6-DTM
  • VCP6-DT
  • VCP5-DT
  • VCP6-NV
  • VCAP5-DCA
  • VCAP5-DCD
  • VCIX-NX
Для получения скидки следует забронировать экзамен до 16 октября включительно на сайте www.pearsonvue.com/vmware, указав при регистрации один из следующих кодов:
  • VMWBARC25 - для экзаменов VCP
  • VCADWBAR25 - для экзаменов VCAP/VCIX
Сам экзамен должен быть сдан не позднее 30 ноября 2015 года.

четверг, 8 октября 2015 г.

VMware Photon OS (часть II)

Сегодня я хотел бы рассказать о том, как можно автоматизировать развертывание и настройку виртуальных машин с Photon OS при помощи Vagrant на гипервизоре VMware vSphere.

Предыдущая часть доступна по ссылке: http://blog.vmpress.org/2015/09/vmware-photon-os-i.html

Vagrant представляет собой достаточно популярное среди разработчиков ПО средство для автоматического развертывания ВМ для тестовых сред. Все настройки ВМ описываются в конфигурационном файле, после чего достаточно выполнить одну команду, чтобы получить готовую к работе ВМ. Vagrant поддерживает различные гипервизоры (Virtual Box, VMware Fusion, VMware Workstation, VMware vSphere, KVM) и облачные среды (Amazon Web Services, Digital Ocean, OpenStack). Для Vagrant доступно большое количество заранее подготовленных образов ВМ (boxes). Список можно посмотреть на сайте: http://www.vagrantbox.es/

Для демонстрации возможностей Vagrant создадим тестовую среду, в которой будут автоматически разворачиваться три виртуальные машины с Photon OS из заранее созданного шаблона, и для каждой ВМ будет назначаться имя и статический IP адрес. Для стенда потребуется инфраструктура vSphere 6.0 (по крайней мере один сервер ESXi и один сервер vCenter Server), а также управляющий компьютер, на который будет установлен сам Vagrant.

Установка и настройка Vagrant

Для управления нам потребуется выделенная машина. Vagrant может быть установлена на все основные платформы, включая Windows, MAC OS X и Linux. В данном примере используется Photon OS в Full инсталляции.

Установка Vagrant крайне проста. Для начала загрузите дистрибутив с сайта производителя: https://www.vagrantup.com/downloads.html. Для Photon OS потребуется 64-bit Linux (RPM) дистрибутив.

Для загрузки дистрибутива выполните:
wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.4_x86_64.rpm
Установите Vagrant, используя команду:
rpm -i vagrant_1.7.4_x86_64.rpm
Установите плагин для работы Vagrant с vSphere:
vagrant plugin install vagrant-vsphere
Поскольку для развертывания ВМ будет использоваться шаблон из VMware vSphere, то потребуется файл-заглушка для указания в конфигурационном файле Vagrantfile.
Найдите подходящий файл, с помощью команды:
find / | grep example_box

Заархивируйте файл метаданных metadata.json:
cd /root/.vagrant.d/gems/gems/vagrant-vsphere-1.5.0/example_box/metadata.json
tar cvzf dummy.box ./metadata.json
Создайте каталог и переместите туда архив:
mkdir ~/vagrant-vms/example_box
mv dummy.box ~/vagrant-vms/example_box
Создайте конфигурационный файл Vagrantfile:
touch ~/vagrant-vms/Vagrantfile
Отредактируйте файл с помощью vi или nano. Пример конфигурационного файла:
Vagrant.configure("2") do |config|
config.vm.box = 'vsphere'
config.vm.box_url = './example_box/dummy.box'

config.vm.synced_folder '.', '/vagrant', id: 'vagrant-root', disabled: true

config.vm.provider :vsphere do |vsphere|
# The host we're going to connect to
vsphere.host = 'vc01.company.local'

# The host for the new VM
vsphere.compute_resource_name = 'testclu02'

# The template we're going to clone
vsphere.template_name = '/Vagrant/photon-template'

vsphere.customization_spec_name = 'Photon-Customization'

# vSphere login
vsphere.user = 'company.local\administrator'

# vSphere password
vsphere.password = 'P@ssw0rd'

# If you don't have SSL configured correctly, set this to 'true'
vsphere.insecure = true
end

config.vm.define 'node01' do |node01|
node01.vm.provider :vsphere do |vsphere, override|
override.vm.network 'private_network', ip: '192.168.1.191'
vsphere.name = 'node01'
end
end

config.vm.define 'node02' do |node02|
node02.vm.provider :vsphere do |vsphere, override|
override.vm.network 'private_network', ip: '192.168.1.192'
vsphere.name = 'node02'
end
end

config.vm.define 'node03' do |node03|
node03.vm.provider :vsphere do |vsphere, override|
override.vm.network 'private_network', ip: '192.168.1.193'
vsphere.name = 'node03'
end
end
end

В данном файле используются следующие параметры:
  • config.vm.box_url - путь к файлу-заглушке, который был создан ранее.
  • vsphere.host - имя сервера vCenter для подключения.
  • vsphere.compute_resource_name - имя кластера vSphere или хоста ESXi, где будут создаваться ВМ.
  • vsphere.template_name - путь к файлу шаблона (в данном примере, шаблон с именем photon-template располагается в корневой папке Vagrant).
  • vsphere.cusomization_spec_name - имя Customization Specification, который используется для настройки ВМ.
  • vsphere.user - имя учетной записи для подключения к vCenter.
  • vsphere.password - пароль учетной записи для подключения к vCenter.
  • vsphere.insecure - подключаться к серверу с недоверенными сертификатами.
  • override.vm.network - IP адрес сетевого интерфейса ВМ.
  • vsphere.name - имя ВМ.
О других параметрах конфигурационного файла Vagrant можно прочитать по ссылке: https://github.com/nsidc/vagrant-vsphere

Настройка шаблона

Теперь нужно подготовить шаблон ВМ для развертывания. Создайте новую ВМ со следующими параметрами:
  • Имя ВМ: photon-template
  • Virtual machine version: 11
  • Тип ОС: CoreOS Linux (64-bit)
  • 2 vCPU
  • 2 GB RAM
  • 20 GB HDD
  • сетевой адаптер VMXNET3
Установите в качестве гостевой ОС Photon OS в Full инсталляции.

Дальнейшая настройка ВМ нужна, чтобы обеспечить возможность подключения к ВМ по SSH прямо из консоли Vagrant.

Создайте учетную запись для автоматического подключения с управляющей ВМ:
useradd vagrant
Задайте пароль для учетной записи:
passwd vagrant
Пароль может быть любым, главное, чтобы он удовлетворял требованиям сложности.

Отредактируйте файл sudo, используя команду visudo, добавив туда строчку:
vagrant ALL=(ALL) NOPASSWD:ALL

Для подключения по SSH из Vagrant рекомендуется использовать аутентификацию по ключам. По умолчанию, Vagrant использует общедоступную пару ключей, что является серьезной уязвимостью, т.к. кто угодно может получить закрытый ключ и подключиться к созданным ВМ. По умолчанию закрытый ключ хранится на управляющем компьютере в каталоге "/var/opt/vagrant/embedded/gems/gems/vagrant-<версия_vagrant>/keys".

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

Создайте папку, чтобы сохранить в ней ssh ключи:
mkdir -p /home/vagrant/.ssh
Скопируйте в папку открытый ключ:
wget --no-check-certificate https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -O /home/vagrant/.ssh/authorized_keys
Установите разрешения на каталог и установите владельца:
chmod 0700 /home/vagrant/.ssh
chmod 0600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh
Выключите ВМ и создайте из нее шаблон.

Создайте Customization Specification с именем Photon-Customization для ВМ Linux. Выберите Custom settingsи задайте статический IP адрес для сетевого адаптера (IP адрес не должен совпадать с адресом, указанным в конфигурационном файле Vagrantfile).

Запуск Vagrant

Для запуска перейдите в папку ~/vagrant-vms/example_box/ с файлом Vagrantfile. Запустите ВМ с помощью команды
vagrant up --provider=vsphere

Vagrant запустит процедуру клонирования и настройки ВМ из шаблона.

Для подключения к ВМ из консоли Vagrant по SSH можно использовать команду:
vagrant ssh node01

Для отключения от ВМ и возвращения в консоль Vagrant просто введите exit.

После завершения работы с ВМ, вы можете их удалить с помощью команды:
vagrant destroy

При подготовке статьи использовались материалы: http://www.vmtocloud.com/how-to-use-vagrant-to-deploy-containers-on-vsphere-with-vmware-photon/

понедельник, 28 сентября 2015 г.

VMware Photon OS (часть I)

Если вы подыскиваете простой, функциональный и небольшой по размеру дистрибутив Linux для работы с Docker, то я советую вам посмотреть в сторону Photon OS. В конце августа вышел новый релиз Photon OS Technical Preview 2 (TP2), который принес много всего интересного. Информация о релизе доступна по ссылке.

Photon OS строится на базе другого известного мини-дистрибутива CoreOS Linux и заточен под работу с гипервизорами VMware и облачными инфраструктурами на базе OpenStack.

Установка

Photon OS доступен для загрузки с сайта http://vmware.github.io/photon/ в виде ISO образа (Full ISO и Minimal ISO), а также в виде шаблона ВМ в формате OVA.

Перед установкой настоятельно рекомендую ознакомиться с официальным FAQ по Project Photon, а также FAQ комьюнити на GitHub.

Установка Photon OS может быть выполнена в одном из следующих режимов:
  • Photon Micro - минимальный из доступных вариантов установки, предназначенный для развертывания внутри контейнера.
  • Photon Minimal - подходит для развертывания как внутри контейнера, так и на хосте.
  • Photon Full - установка со всем необходимым набором пакетов, может использоваться для разработки или тестирования.
  • Photon OSTree Host - установка Photon OS в режиме RPM-OSTree хоста, который синхронизирует все изменения с единого сервера, позволяя централизованно обновлять множество хостов. Более подробно про RPM-OSTree можно прочитать тут.
  • Photon OSTree Server - установка Photon OS в режиме RPM-OSTree сервера, с которым будут синхронизироваться хосты.
Установка дистрибутива на ВМ vSphere крайне проста. Все, что требуется - это указать диск, на который будет установлена ОС, задать имя компьютера и пароль для root.

При развертывании ВМ из OVA шаблона для учетной записи root задан пароль по умолчанию: changeme

Изменение сетевых настроек

Конфигурация сетевых интерфейсов хранится в файлах .network в каталоге /etc/systemd/network. По умолчанию в каталоге присутствует только один файл 10-dhcp.network в котором прописано получение всех сетевых настроек через DHCP.

Для задания статического адреса удалите файл 10-dhcp.network:
rm /etc/systemd/network/10-dhcp.network
Создайте новый файл в каталоге /etc/systemd/network/, например, 10-static.network (имя не принципиально и используется только для очередности применения сетевых настроек, важно только, чтобы расширение файла было .network) со следующим содержимым:
[Match]
Name=
eno16780032

[Network]
Address=192.168.1.40/24
Gateway=192.168.1.1
DNS=192.168.1.10
Domains=test.local
, где eno16780032 - имя сетевого интерфейса.

Имя сетевого интерфейса можно посмотреть с помощью команд ifconfig или networkctl
root [ / ]# ifconfig
eno16780032Link encap:Ethernet HWaddr 00:50:56:A3:35:A0
inet addr:192.168.1.40 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:432482 errors:0 dropped:220 overruns:0 frame:0
TX packets:40289 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:36893044 TX bytes:6387665

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:516 TX bytes:516
Для редактирования можно использовать nano (доступен в Full инсталляции) или vi.

После редактирования файла выполните команду
systemctl restart systemd-networkd.service

или перезагрузите компьютер:
reboot

Настройка root для подключения по SSH

По умолчанию, учетной записи root запрещено напрямую авторизовываться по SSH. Чтобы разрешить подключение требуется отредактировать файл /etc/ssh/sshd_config и раскомментировать строчку:
PermitRootLogin yes
После чего перезапустить службу sshd с помощью команды:
systemctl restart sshd.service

Установка обновлений пакетов

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

В Photon OS менеджером пакетов по умолчанию является tdnf (в Full варианте установке также присутствует привычный всем yum).

В Full установке для обновления пакетов достаточно выполнить команду:
yum update
В Minimal и Micro установке проще всего будет сначала установить yum:
tdnf install yum
А затем запустить обновление через него. Если yum ставить не хочется, то можно выполнить команду:
tdnf check-update
А затем поочередно для каждого пакета, который нуждается в обновлении:
tdnf upgrade <packet_name>
Если после обновления VMware Tools не стартуют (в свойствах ВМ отображается not running / not installed), создайте символическую ссылку на файл конфигурации сервиса и запустите сервис:
ln -s /usr/lib/systemd/system/vmtoolsd.service /etc/systemd/system/multi-user.target.wants/vmtoolsd.service
cd /etc/systemd/system/multi-user.target.wants/
systemctl enable vmtoolsd.service
systemctl start vmtoolsd.service

Кастомизация с помощью vSphere Customization Specification

Начиная с релиза Photon OS TP2 при клонировании ВМ из шаблона поддерживается кастомизация ВМ с помощью Customization Specification.

Для работы кастомизации требуется наличие vSphere 6.0. Шаблон ВМ должен иметь 11 версию Virtual Machine Version, а качестве гостевой ОС должна быть выбрана CoreOS Linux (x64).

В целях безопасности, перед выключением ВМ для создания из нее шаблона или клонирования не лишним будет удалить из нее файлы SSH ключей:
rm -f /etc/ssh/ssh_host_*

Кастомизация с помощью Cloud-init

Photon OS также поддерживает автоматическую настройку ОС с помощью cloud-init. Для VMware vSphere настройка выполняется через Config Drive - специальный ISO образ, с которого Photon OS считывает настройки в момент загрузки ОС.

С помощью cloud-init возможно изменять имя хоста, настраивать сетевые интерфейсы, изменять размер томов, изменять etc/hosts, настраивать Puppet и многое другое. Полный список модулей доступен по ссылке.

Образ Config Drive должен включать в себя, по крайней мере, два файла в формате YAML:
  • user-data - файл конфигурации.
  • meta-data - файл мета-данных.
Для примера создадим Config Drive, который меняет имя компьютера и IP адрес сетевого интерфейса, а также перезагружает компьютер после выполнения настройки.

Для создания Config Drive проще всего использовать Photon OS в Full инсталляции.

Создайте файл user-data со следующим содержимым (не забудьте про отступы, а также #cloud-config в начале файла, для проверки можете использовать online-валидатор: https://coreos.com/validate/):
#cloud-config
hostname: photon14
write_files:
- path: /etc/systemd/network/10-static.network
permissions: 0644
content: |
[Match]
Name=eno16780032

[Network]
Address=192.168.1.50/24
Gateway=192.168.1.1
DNS=192.168.1.1

runcmd:
- reboot
Создайте файл meta-data со следующим содержимым:
instance-id: photon14
local-hostname: photon14
В качестве instance-id в файле meta-data нужно задавать уникальное значение, отличное от текущего instance-id в эталонной ВМ, так как некоторые из модулей cloud-init запускаются только один раз для одного инстанса, например, write_files. Если не изменить instance-id, то модуль не запустится. Текущий instance-id можно посмотреть в файле /var/lib/cloud/data/instance-id

Если нужно, чтобы все модули отработали, а instance-id менять, по какой-либо причине не хочется, то нужно удалить все содержимое каталога /var/lib/cloud/instances:
rm -rf /var/lib/cloud/instances
После создания файлов user-data и meta-data создайте ISO образ:
genisoimage  -output customize.iso -volid cidata -joliet -rock user-data meta-data
Теперь осталось только скопировать образ куда-нибудь, откуда его можно подключить к ВМ, и перезагрузить саму ВМ.

понедельник, 31 августа 2015 г.

Wake on LAN прокси для запуска ВМ на VMware vSphere

Бывают случаи, когда требуется запустить ВМ в VMware vSphere, используя Wake on LAN (например, при использовании системы управления Microsoft SCCM).

Принцип работы Wake on LAN очень прост. Сервер посылает в широковещательном режиме специально сформированный пакет (Magic Packet), содержащий MAC адрес компьютера, который требуется включить. Сетевой адаптер, поддерживающий Wake on LAN, получив подобный пакет с собственным MAC адресом, запустит компьютера.

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

Для решения этой проблемы я написал небольшой скрипт на PowerShell, который выполняет функцию Wake on Lan прокси сервера. После запуска скрипт подключается к указанному серверу vCenter и собирает информацию о всех доступных ВМ и MAC адресах виртуальных сетевых адаптеров. При получении magic packet'а, скрипт проверяет, не принадлежит ли MAC адрес виртуальному адаптеру одной из ВМ, и в случае совпадения выполняет запуск данной ВМ.

Скрипт доступен для загрузки по данной ссылке: https://drive.google.com/open?id=0B25p_5gdqA35ci12a21DYTVrUzQ

Для запуска скрипта требуется установленный на компьютере PowerShell и VMware PowerCLI (https://my.vmware.com/web/vmware/details?downloadGroup=PCLI550&productId=352).

В архиве два файла:
  • wol-procy.ps1 - сам скрипт
  • config.xml - конфигурационный файл
Перед запуском скрипта требуется изменить конфигурационный файл config.xml, указав в нем адрес сервера vCenter (параметр Server), учетную запись (User) и пароль (Password) для подключения.

Учетной записи пользователя, из-под которой производится подключение, требуются следующие права:
  • Virtual machine > Interaction > Power on
Параметр Interval определяет частоту обновления информации о ВМ и их MAC адресах (в минутах).

Параметр Port определяет на каком порту UDP скрипт получает magic packet'ы. По умолчанию, используется UDP порт 9, но для некоторых приложений может потребоваться его изменить на UDP 7.

Параметр Logmode отвечает за уровень логирования:
  • 1 - Запись журналов в файл.
  • 2 - Вывод журналов на экран.
  • 3 - Вывод на экран и запись в файл.
Параметр Logfolder указывает путь к папке, где будут храниться журналы.

понедельник, 3 августа 2015 г.

Бесплатные и триальные программные СХД для тестов и домашней лаборатории

У меня часто возникает желание что-нибудь протестировать в домашних условиях. Для этих задач как нельзя кстати подходят различные программные СХД.

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

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

ПО
Особенности
Datacore SANSymphony-v
Модель распространения: Триальная лицензия на 30 дней.
Тип установки: Служба Windows Server.
Поддерживаемые протоколы: FC, iSCSI.
Функциональные возможности: тонкие диски, возврат неиспользуемого пространства, тиринг, снапшоты, асинхронная репликация, зеркалирование томов, HA-кластер.
Ограничения: лицензии на 4-е сервера.
Ссылка для загрузки: http://datacore.com/resources/free-virtual-san

EMC Isilon OneFS Simulator
Модель распространения: Бесплатно.
Тип установки: Appliance
Поддерживаемые протоколы: NFS, SMB.
Функциональные возможности: распределенное хранилище.
Ограничения: Кластер до 6 узлов, каждый узел не более 16 ГБ.

EMC Isilon OneFS Simulator
Модель распространения: Триальная лицензия на 90 дней.
Дополнительные протоколы: iSCSI.
Дополнительные возможности: снапшоты, асинхронная репликация, дедупликация, тиринг, VAAI, VMware SRM.

EMC ScaleIO
Модель распространения: Бесплатна для некоммерческого использования.
Дополнительные протоколы: объектное хранение.
Дополнительные возможности: снапшоты, распределенное хранилище, тонкие диски, репликация (EMC RecoverPoint).
Ссылка для загрузки: https://www.emc.com/products-solutions/trial-software-download/scaleio.htm

EMC Unity   Community Edition
Модель распространения: Бесплатна для некоммерческого использования.
Тип установки: Appliance.
Поддерживаемые протоколы: iSCSI, NFS, SMB.
Функциональные возможности: тонкие диски, снапшоты, асинхронная репликация, сжатие и дедупликация файлов, VAAI, VASA, VMware SRM, VVOLs.
Ограничения: до 4 ТБ на один Appliance.

Falconstor Network Storage Server
Модель распространения: Триальная лицензия на 30 дней.
Тип установки: Appliance.
Поддерживаемые протоколы: FC, iSCSI.
Функциональные возможности: тонкие диски, снапшоты, кэширование на SSD, асинхронная репликация, зеркалирование томов, HA-кластер, метро-кластер, VAAI, VMware SRM.
Ссылка для загрузки: http://falconstor.com/subpage/924/'

HP StoreVirtual (P4000) VSA
Модель распространения: Триальная лицензия на 60 дней.
Тип установки: Appliance.
Поддерживаемые протоколы: iSCSI.
Функциональные возможности: тонкие диски, возврат неиспользуемого пространства, снапшоты, тиринг, асинхронная репликация, зеркалирование томов, метро-кластер, распределенное хранилище, Erasure Coding, VAAI, VASA, VMware SRM.

Microsoft Windows Server 2012 R2
Модель распространения: Триальная лицензия на 180 дней.
Тип установки: Bare Metal.
Поддерживаемые протоколы: iSCSI, NFS, SMB.
Функциональные возможности: снапшоты, дедупликация, тиринг, кэширование на SSD, HA-кластер.

NetApp Data ONTAP Simulator
Модель распространения: Бесплатно для клиентов и партнеров.
Тип установки: Appliance.
Поддерживаемые протоколы: iSCSI, NFS, SMB.
Функциональные возможности: тонкие диски, снапшоты, дедупликация, компрессия, асинхронная и синхронная репликация, VAAI, VASA, VVOLs, VMware SRM.
Ссылка для загрузки: http://now.netapp.com/NOW/cgi-bin/simulator
Ограничения: На одну СХД - 28 дисков объемом 1 ГБ каждый.

Nexenta NexentaStor Community Edition
Модель распространения: Бесплатно.
Тип установки: Appliance.
Поддерживаемые протоколы: iSCSI, NFS, SMB.
Функциональные возможности: тонкие диски, дедупликация, снапшоты, VAAI, VASA.
Ограничения: 10 ТБ на хранилище.
Ссылка для загрузки: https://community.nexenta.com/s/community-edition

Openfiler
Модель распространения: Бесплатно.
Тип установки: Bare Metal.
Поддерживаемые протоколы: FC, iSCSI, NFS, SMB.
Функциональные возможности: снапшоты, зеркалирование томов, HA-кластер.
Ссылка для загрузки: https://www.openfiler.com/community/download

StarWind Virtual SAN Free
Модель распространения: Бесплатно.
Тип установки: Служба Windows Server.
Поддерживаемые протоколы: iSCSI, NFS, SMB.
Функциональные возможности: тонкие тома, возврат неиспользуемого пространства, снапшоты, дедупликация, кэширование на SSD, зеркалирование томов, HA-кластер, VAAI.
Ограничения: Устанавливается на выделенный физический сервер, не более 2 серверов.

StarWind Virtual SAN
Модель распространения: Триальная лицензия на 30 дней.
Дополнительные возможности: асинхронная репликация.
Ограничения: не более 3 серверов.

VMware vSAN
Модель распространения: Триальная лицензия на 60 дней.
Тип установки: компонент ESXi.
Поддерживаемые протоколы: объектное хранение.
Функциональные возможности: распределенное хранилище, кэширование на SSD, дедупликация и компрессия, Erasure Coding, управление через политики VASA.
Ограничения: Поддерживает только VMware vSphere.



Краткие пояснения по таблице:
  • Модель распространения - часть ПО распространяется бесплатно (с определенными ограничениями), часть - в тестовом (триальном) режиме с ограниченным временем использования, который, обычно, требует регистрации на сайте и ввода лицензии.
  • Тип установки - Служба Windows Server означает, что ПО устанавливается на сервер с установленной ОС Windows Server, Appliance - означает, что ПО устанавливается как виртуальная машина под тот или иной гипервизор.
  • Поддерживаемые протоколы - содержит перечень протоколов блочного (FC, iSCSI) или файлового (NFS, SMB) доступа. Остальные протоколы пропущены, однако некоторое ПО может поддерживать дополнительные протоколы (FTP, HTTP, rsync и т.п.).
  • Функциональные возможности - перечень основных (но не всех) возможностей данной программной СХД.
  • Ограничения - часть ПО накладывает определенные ограничения на бесплатную или триальную версию, которых нет в полной версии.

Функциональные возможности:
  • Тонкие диски (thin provisioning) - тома, которые не требуют выделения всего дискового пространства при создании, и растут по мере заполнения данными.
  • Возврат неиспользуемого пространства (space reclamation) - возможность, при которой тонкие диски, с которых были удалены данные, могут автоматически или вручную быть уменьшены в размере для уменьшения места, занимаемого на хранилище.
  • Тиринг (tiering) - возможность, при использовании накопителей разных типов (жесткие диски, SSD), автоматически размещать данные, к которым осуществляется активный доступ на более быстрых накопителях, а данные, к которым доступ не осуществляется - на более медленных.
  • Кэширование на SSD (SSD Cache) - возможность использовать SSD накопители в качестве кэш-памяти для ускорения операций ввода-вывода.
  • Снапшоты (Snapshots) - мгновенные снимки, позволяющие сохранять текущее состояние тома для задач резервного копирования или репликации данных на другую СХД.
  • Асинхронная репликация (Asynchronous replication) - процесс периодического копирования тома с основной СХД на резервную с возможностью ручного переключения на резервную СХД в случае отказа основной.
  • Синхронная репликация (Synchronous replication) - процесс непрерывного копирования тома с основной СХД на резервную с возможностью ручного переключения на резервную СХД в случае отказа основной. Подтверждение записи клиенту будет отправлено только после того, как основная СХД примет подтверждение о записи от резервной.
  • Зеркалирование томов (mirroring) - хранение и синхронизация двух одинаковых копий томов на двух разных СХД и/или накопителях. В случае недоступности одной копии СХД может использовать вторую копию, или выполнить переключение на резервный узел (в случае HA-кластера).
  • HA-кластер - кластер из двух узлов, работающих в режиме active-passive. Ввод-вывод осуществляется через активный узел кластера, в случае его недоступности (или невозможности активного узла получить доступ к своей копии данных) пассивный узел переключается в активный режим и начинает обрабатывать запросы на ввод-вывод.
  • Распределенное хранилище - возможность размещать один том на нескольких узлах СХД, обеспечивать избытычность хранения и распределнный доступ к данным.
  • Метро-кластер (Metro-storage Cluster) - возможность организации распределенной СХД, узлы которой находятся на разных, территориально разнесенных, площадках.
  • Дедупликация (Deduplication) - снижение объема занимаемого дискового пространства за счет одногократного хранения одинаковых блоков данных или файлов.
  • Сжатие (Compression) - экономия дискового пространства за счет сжатия данных.
  • Erasure Coding - механизм распределенного хранения с обеспечением избыточности за счет хранения контрольных сумм данных (аналог сетевого RAID-5 или RAID-6).
  • VAAI (vSphere API for Array Integration) - набор API для интеграции СХД с гипервизором VMware ESXi, позволяющий ускорить работу с СХД за счет выполнения части операций на стороне СХД (зануление, блокировка томов, копирование, возврат неиспользуемого дискового пространства).
  • VASA (vSphere API for Storage Awareness) - набор API для интеграции СХД с гипервизором VMware ESXi, позволяющий СХД отправлять информацию о свойствах томов гипервизору (например, типе используемых дисков, уровне RAID, настройках репликации, наличии ssd кэша и т.д.).
  • VMware SRM - наличие агента Storage Replication Adapter для интеграции СХД с VMware SRM.
  • VVOLs (Virtual Volumes) - функционал VMware ESXi 6.0, позволяющий создавать тома и настраивать различные параметры хранения для отдельных ВМ на основе политик VASA.