PowerCLI — CloneVM

Понадобилось наполнить объект vAPP однотипными клонами одной и той же ВМ.

Клонировать ее вручную показалось трудоемко — изучил возможности PowerCLI и написал себе шпаргалку:

После подключения к vCenter запускаем подобный скрипт:

После запуска данного скрипта у вас появится 67 однотипных клонов виртуальной машины vm01_bi.

Вместо параметра VApp рекомендуется использовать параметр «ResourcePool»

Балансировка хранилищ Round Robin в VMware vSphere и iops=1

В одном ЦОДе нашей компании используется VMware vSphere и HP EVA 6400. Так получилось, что техподдержка HPE ткнула нас носом в «Best Practice Guide» и посоветовала применить рекомендации по RoundRobin-балансировке и переключению путей на каждый iops.

Я был настроен скептически, так как я прекрасно помню статью Duncan Epping о том, что это (iops=1) — бесполезный совет. Однако я перечитал комментарии и решил, что я был неправ. Если вкратце — то у каждого порта HP EVA (равно как и других массивов) своя очередь в 1000 команд. И, оставив параметр по умолчанию (или вообще используя MRU), легко упереться в эту очередь.

Читать далее «Балансировка хранилищ Round Robin в VMware vSphere и iops=1»

DHCP Option 61 или Client ID в Windows 10

Статья от одного из наших постоянных читателей — philzy :).

Я являюсь совладельцем сервиса cloud-desktop.net, и недавно у меня возникла проблема. Один из клиентов попросил восстановить виртуалку из бэкапа. Я восстановил ночную реплику за 2 мин., однако клиент сказал, что не может получить к ней доступ. Прошло 30 минут траблшутинга — виртуалка из реплики, оказывается, имеет другой MAC-адрес (да и IP), следовательно слетел доступ.

Я в курсе про то, что для таких случаев придуман DNS, но сервис работает именно через IP и этому есть простое объяснение – DNS разрешение имен не всегда корректно работает в haproxy [backend] server. Так как это ключевой элемент системы, то для снижения количества возможных проблем и было выбрано такое решение.

В общем, выдача IP-адреса через MAC-адрес — это не мой метод, и в качестве альтернативы я решил рассмотреть использование Client id или DHCP Option 61, использующий не привязанный к MAC-адресу метод выдачи IP-адресов через DHCP.

Я создал DHCP-пул на mikrotik и решил начать тестирование. Казалось, что это будет просто и понятно. Читать далее «DHCP Option 61 или Client ID в Windows 10»

Отключение VAAI ATS сердцебиений для хранилища

Иногда при обновлении прошивки на массиве производитель (HP 3PAR) рекомендует временно отключить сердцебиение VAAI для VMFS-хранилищ (точнее, вернуться к до-VAAI методу). Есть целая статья, которая описывает, как это сделать через командную строку esxcli или PowerCLI — для одного хоста.

Поделюсь тем, как это делать на нескольких хостах через PowerCLI:

Name                 Value                Type                 Description
—-                 ——                —-                 ————
VMFS3.UseATSForHB… 1                    VMHost
VMFS3.UseATSForHB… 1                    VMHost
VMFS3.UseATSForHB… 1                    VMHost
VMFS3.UseATSForHB… 1                    VMHost
VMFS3.UseATSForHB… 1                    VMHost

Name                 Value                Type                 Description
—-                 ——                —-                 ————
VMFS3.UseATSForHB… 0                    VMHost
VMFS3.UseATSForHB… 0                    VMHost
VMFS3.UseATSForHB… 0                    VMHost
VMFS3.UseATSForHB… 0                    VMHost
VMFS3.UseATSForHB… 0                    VMHost

Name                 Value                Type                 Description
—-                 ——                —-                 ————
VMFS3.UseATSForHB… 0                    VMHost
VMFS3.UseATSForHB… 0                    VMHost
VMFS3.UseATSForHB… 0                    VMHost
VMFS3.UseATSForHB… 0                    VMHost
VMFS3.UseATSForHB… 0                    VMHost

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

UPD: Обратите внимание, что в примере меняется параметр для VMFS5. Если есть VMFS3 — хранилища, то надо выполнять изменение двух параметров в теле скрипта.

Update Offline Address Book Exchange 2013

Уважаемые посетители!

Команда vMind.ru поздравляет вас с прошедшими праздниками и желает, чтобы в вашей жизни праздников было больше.

Держите краткую шпаргалку по обновлению офлайновой адресной книги (далее OAB) Exchange 2013.

Во-первых, OAB используется Outlook 20** в том случае, если включен режим кэширования.

Читать далее «Update Offline Address Book Exchange 2013»

vSphere и Powershell

Сегодня я хочу рассказать сразу о двух фичах, объединяющих vSphere и Powershell.

1) Для веб-клиента vSphere 6.0 (vSphere Web Client Version 6.0.0 Build 2559277), установленного как на VC, так и на VCVA, появился продукт, транслирующий выполняемые действия в командлеты PowerCLI. Называется этот продукт Onyx.

Onyx

2) Месяц назад появился плагин для веб-клиента PowerActions 1.5.0, поддерживающий vSphere 6 Web Client. Данный клиент работает с веб-клиентами, начиная с vSphere 5.1.

poweraction

Данный плагин позволяет выполнять PowerCLI-команды прямо в веб-клиенте vSphere.

P.S. Из полезных фич для веб-клиента я бы еще отметил ESXTOP-плагин.

esxtopNgcPlugin_500

Скрипт Powershell для включения Change Notification между сайтами Active Directory

Возникла задача включить оповещения между сайтами AD.

Данные оповещения снижают время «сходимости» между сайтами за счет того, что репликация  не по расписанию, а при наличии изменений (как внутри сайта).

Скрипт MS располагается здесь, я его немного допилил:

Get-adobject -filter * -searchbase 'cn=configuration,dc=holding,dc=com' -properties options | where {$_.objectclass -eq "sitelink"} | set-adobject -replace @{options=$($_.options -bor 1)} -Verbose

Оригинальный скрипт не работал.

Инвентаризация ВСЕХ серверов Exchange в организации

Я ранее уже рассказывал об инвентаризации серверов Exchange в организации. Данный скрипт отображал список серверов Exchange с установленными на них Rollup Update.

Один из моих коллег нашел прекрасный скрипт, делающий аудит инфраструктуры Exchange и отображающий просто МОРЕ информации:

  • список серверов с апдейтами, ролями, версиями ОС и сервиспаками (причем скрипт работает от Exch2003 до Exch2013);
  • Список названий внутренних/внешних имен для CAS и CAS Arrays;
  • Список баз с количеством ящиков, средним размером, занятым местом и количеством свободного места в %.

Мы настроили этот скрипт на ежедневный запуск, сделали вывод результатов на корпоративный веб-сервер и долго наслаждались.

Однако затем пришел ОН — Exchange 2013 и наступила тишина…

Читать далее «Инвентаризация ВСЕХ серверов Exchange в организации»

Задание по настройке балансировки Round Robin в VMware vSphere

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

К примеру, я точно помню, что настраивал Round Robin для своего кластера и своей СХД HP EVA пару лет назад.

Однако, текущий вывод скрипта по балансировке показывает, что это далеко не так:

Get-Cluster cluster| Get-VMHost | Get-ScsiLun -LunType disk | group multipathpolicy

Читать далее «Задание по настройке балансировки Round Robin в VMware vSphere»

Настройка пользовательских политик Lync на основе нахождения в OU

Возникла задача предоставить внешний доступ к Lync всем пользователям определенного контейнера AD (OU).

Для данных команд нам потребуется Lync Server Management Shell.

Для начала выведем текущие разрешения для пользователей

get-csuser -OU "OU=папка,DC=holding,DC=com" | select displayname, externalaccesspolicy

Теперь поменяем политику доступа к Lync для этих пользователей

get-csuser -OU "OU=папка,DC=holding,DC=com" | Grant-CsExternalAccessPolicy -PolicyName "Tag:Allow Outside Access" -PassThru

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

Обратите внимание, что в Lync Shell за работу с пользовательскими политиками отвечает 5 командлетов

get-command *externalaccess*

  • Get отображает все имеющиеся политики и их настройки;
  • Grant — назначает применяет пользовательскую политику на пользователя. Чтобы отменить назначение пользовательской политики, необходимо в параметре PolicyName указать $null;
  • New — создание новой политики;
  • Remove — удаление политики;
  • Set — изменение параметров существующей политики

Также стоит ознакомиться со справкой по командлету

get-help Grant-CsExternalAccessPolicy -full | more

Например, из справки я узнал, что мне потребуется параметр -PassThru, иначе командлет не возьмет имена пользователей, передающиеся по конвейеру.