Я заметил, что в определенных случаях, когда используется RSS и Dynamic VMQ, первое ядро при настройке пропускается. Почему?
Существует множество сетевых технологий, которые повышают производительность сети. Механизм динамических очередей виртуальных машин Dynamic VMQ (DVMQ) активирует различные очереди VMQ в сетевом адаптере, чтобы они были назначены различным виртуальным машинам, а каждая очередь VMQ может быть назначена различным процессорам в системе. Это позволяет распределять сетевую нагрузку на несколько локальных процессоров и помогает виртуальному коммутатору быстрее распределять трафик, поскольку конкретные очереди VMQ привязаны к определенной виртуальной машине. Обратите внимание, что теперь хост и каждая виртуальная машина привязаны к единой очереди и, таким образом, к одному ядру. Это означает, что каждый из них ограничен полосой пропускания, поддерживаемой одним ядром; это обычно примерно 5–6 Гбит/с на современных процессорах. Более подробную информацию можно найти по адресу: http://blogs.technet.com/b/networking/archive/2013/09/10/vmq-deep-dive-1 of-3.aspx.
Механизм масштабирования на стороне приема Receive Side Scaling (RSS) также использует очереди адаптера для распределения входящего трафика по нескольким логическим процессорам, чтобы повысить сетевую производительность. RSS полагается на очереди, так что вы не можете активировать RSS и VMQ на одной и той же сетевой карте, поскольку очереди могут использовать либо RSS, либо VMQ. VMQ является технологией виртуализации, тогда как RSS используется на самом хосте (без vSwitch). У хоста с несколькими сетевым адаптерами можно часто встретить два адаптера: один адаптер, используемый для Live Migration, с активным механизмом RSS; другой адаптер используется виртуальным коммутатором Hyper-V virtual switch, чтобы активировать DVMQ для виртуальных машин.
Кроме того, существует технология, которая называется vRSS. Она активирует RSS внутри виртуальных машин, запущенных на Windows Server 2012 R2 Hyper-V (дополнительную информацию можно найти по адресу: http://blogs.technet.com/b/networking/archive/
2013/07/31/drive-up-networking-performance-for-your-most-demanding-workloads-with-virtual-rss.aspx), и распределяет рабочие процессы по разным процессорам виртуальной машины. Обратите внимание, что vRSS активируется посредством Hyper-V и не использует очереди сетевого адаптера, таким образом, vRSS может применяться с VMQ.
В настройках RSS и VMQ существует параметр BaseProcessorNumber, который часто настраивается на значение 1, тогда как номера реальных процессоров начинаются со значения 0. Данный параметр задает стартовый процессор, который взаимодействует с данным сетевым адаптером. Это связано с бронированием CPU0 для процессов операционной системы, поскольку операционная система использует CPU0 для большей части системной операционной работы. Это самый лучший вариант, поскольку процессор устраняет конфликт между системой и сетевой обработкой. Обратите внимание, что если вы используете несколько сетевых адаптеров, то рекомендуется разделить диапазоны логических процессоров. Например, если возможно, первый адаптер должен использовать ядра с первого до четвертого включительно, тогда как следующий адаптер будет использовать ядра с пятого по восьмое включительно и т. д. Например:
Set-NetAdapterVmq -Name NIC1 -BaseProcessorGroup -0 -BaseProcessorNumber 1 -MaxProcessorNumber 4 -MaxProcessors 4 Set-NetAdapterVmq -Name NIC2 -BaseProcessorGroup -0 -BaseProcessorNumber 5 -MaxProcessorNumber 8 -MaxProcessors 4
У меня установлен DirSync для синхронизации с Azure. Существует ли простой способ обновить его до Azure AD Connect?
Azure AD Connect был выпущен 24 июня 2015 года, и сейчас его можно загрузить по адресу: https://www.microsoft.com/en-us/download/confirmation.aspx?id=47594. После загрузки он будет работать так: обнаружит существующую копию DirSync, автоматически удалит ее, а затем установит Azure AD Connect, обслуживая вашу исходную среду. Если вы повторно запустите мастер установки Azure AD Connect, то можно отрегулировать настройки и добавить дополнительные приложения на экран Start или в меню. Чтобы выполнить детальную настройку, включая параметры разных OU для выполнения ими резервирования, используйте менеджер синхронизации служб Synchronization Service Manager, который является клиентом Microsoft Identity Manager. Его можно найти по адресу: C:\Program Files\Microsoft Azure AD Sync\UIShell\miisclient.exe.
После развертывания Azure AD Connect вы можете задействовать функцию Azure AD Connect Health, которая поможет отслеживать работоспособность синхронизации. Полную информацию об Azure AD Connect Health можно найти по адресу: https://msdn.microsoft.com/en-us/library/azure/dn906722.aspx.
В предварительном обзоре портала Azure Portal говорится о функции автоматического обновления настроек операционной системы Automatic Updates OS Setting. В чем она заключается?
При помощи новой архитектуры, описанной в предварительном обзоре портала Azure, можно предоставить гораздо более удобный интерфейс, чем позволяет инициализация новой виртуальной машины Azure. Одной из новых функций является настройка автоматического обновления Automatic Updates на значение «включено», On (по умолчанию) или «выключено», Off. Эта настройка ссылается на исходную настройку Windows Update. Оставив настройку по умолчанию, выбранную в Windows Update, вы будете активировать ее же по умолчанию внутри гостевой операционной системы. Эту настройку можно найти на вкладке Optional Configuration — OS Settings, как показано на экране 1.
Экран 1. Включение автоматического обновления |
Подробная информация опубликована в статье по адресу: https://msdn.microsoft.com/en-us/library/azure/jj157194.aspx. Особый акцент сделан на параметр EnableAutomaticUpdates.
Почему я получаю сообщение о возражении, связанное с использованием Switch-AzureMode?
С внедрением менеджера ресурсов Azure Resource Manager появилось два разных компонента операций при взаимодействии с Azure: менеджер служб Azure Service Manager (ASM) и менеджер ресурсов Azure Resource Manager (ARM).
Команда Switch-AzureMode используется для переключения между двумя компонентами. Это необходимо, поскольку команды имеют одно и то же имя в обоих компонентах. Но это становится причиной конфликта, поскольку они используются с разными параметрами. Для решения проблемы в дальнейшем команда Switch-AzureMode больше не будет предоставляться и вместе с командами Azure, которые работают с ASM, переместится в отдельный модуль. Более того, их имена будут изменены. Например, New-AzureVM для ASM будет называться New-ASMVM.
Сейчас вы можете игнорировать это сообщение о возражении. Но имейте в виду, что если вы продолжите использовать PowerShell с ASM, то в дальнейшем команды будут переименованы с Azure на ASM. Обратите внимание, что Microsoft будет предоставлять свой сценарий, который вы сможете использовать и который будет добавлять для команд имя Azure к имени ASM. При этом существующие сценарии ASM будут применяться без модификации.
Более подробную информацию можно найти в материале https://github.com/Azure/azure-powershell/issues/428.
Как мне удержать отдельную виртуальную машину в кластере Hyper-V от динамической миграции на другой узел?
При обычных обстоятельствах любая виртуальная машина в кластере Hyper-V должна иметь возможность запускаться на любом узле в кластере. Это дает максимум гибкости в вопросах регулировки нагрузки, доступности виртуальных машин во время процесса обновления и другого технического обслуживания, а также обеспечения запуска рабочих процессов при незапланированных отказах в работе. Таким образом, ваши параметры настройки не должны ограничивать виртуальные машины от запуска на любом из узлов в кластере. Однако в некоторых случаях (обычно из-за лицензирования ряда приложений, которые привязаны к конкретным физическим процессорам) может потребоваться убедиться, что определенные виртуальные машины могут запускаться только на конкретных хостах в кластере, даже если это означает, что виртуальная машина недоступна во время технического обслуживания или при отказе в работе.
Вы не можете блокировать функцию динамической миграции Live Migration виртуальной машины. Однако решение есть: переадресация возможных владельцев и удаление всех хостов, кроме того, на котором запускается Live Migration. Это можно сделать так:
- Откройте менеджер кластера Failover Cluster Manager.
- Во вкладке Roles выберите виртуальную машину.
- В нижней секции окна разверните ресурс Virtual Machine на вкладке Resources.
- Правой кнопкой мыши щелкните по VM configuration и выберите пункт Properties.
- В окне Properties выберите Advanced Properties.
- Снимите флажки со всех узлов, кроме текущего узла, затем щелкните ОК (см. экран 2).
Экран 2. Настройка работы виртуальной машины |
Обратите внимание, что, если вы решите выполнить указанные действия, у вас должен быть локальный процесс для восстановления работы виртуальной машины вручную в случае возникновения проблемы.
Какая самая маленькая подсеть, которую можно использовать в виртуальной подсети Azure?
А/29 является наименьшей доступной подсетью в Azure, которая может давать восемь IP-адресов. Однако, принимая во внимание, что минимум четыре IP-адреса используются для задач Azure, доступными остаются только четыре. Вот почему любая меньшая подсеть не будет иметь показателя в силу того, что не будет доступного для использования адресного пространства. Это описано в материале https://msdn.microsoft.com/en-us/library/azure/dn133803.aspx. Поскольку адресное пространство, которое вы используете в виртуальной сети Azure, может быть таким, каким вы хотите его видеть, не должно быть проблем с владением подсетями, по крайней мере такого размера.
Я пытаюсь изменить размер диска Azure, но получаю сообщение об ошибке при сжатии диска до объема менее 20 Гбайт. Что можно предпринять?
20 Гбайт — самый маленький размер для виртуального диска Azure VHD, тогда как самый большой размер — 1023 Гбайт. Пытаясь изменить размер диска до объема, выходящего за рамки этого диапазона, вы будете получать сообщение об ошибке. Также помните, что при сжатии VHD должно оставаться достаточное нераспределенное пространство внутри VHD для того, чтобы позволить диску сжиматься до нужного размера. Таким образом, вы не можете сжать диск до 50 Гбайт, если внутри VHD 60 Гбайт занятого пространства.
Как мне запустить приложение, которое требует запуска пользовательской сессии в начале работы операционной системы?
Для активации автоматической регистрации настройте параметр AutoAdminLogon:
- Откройте редактор системного реестра (regedit.exe).
- Перейдите в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon.
- Создайте параметр AutoAdminLogon (со строковым значением) или модифицируйте AutoAdminLogon и присвойте ему значение 1.
- Создайте или настройте параметры DefaultUsername (со строковым значением) и DefaultPassword для нужных учетных данных.
Вероятно, у вас уже есть какой-то командный файл или сценарий для запуска приложения. Просто перетащите с помощью мыши его ярлык в папку запуска. Папку запуска можно открыть путем вызова командного процессора: Startup. Существуют и другие методы, такие как пользовательский раздел Run (в HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run), запланированное задание и т. д., но папка запуска — самый простой вариант. Обратите внимание, что было бы хорошо, если бы часть этого командного файла заблокировала систему таким образом, чтобы ваша консоль не была доступна. Просто добавьте приведенную ниже информацию к своему командному файлу:
::Launch the batch file start minecraft.bat ::Lock the machine rundll32.exe user32.dll,LockWorkStation
Теперь, когда операционная система начинает работу, пользователь будет автоматически регистрироваться, и приложение будет запускаться.
Другой возможностью является конвертация приложения в службу. Существует много доступных инструментов, которые делают приложение службой путем создания надстройки вокруг него. Для приложений Java (типа сервера Minecraft) подходит следующий способ: http://sourceforge.net/projects/yajsw/.
Почему система выдает ошибку об отсутствии раздела для запуска задания missing-partition-for-run-step в менеджере службы синхронизации Synchronization Service Manager после развертывания Azure AD Connect?
Это происходит в том случае, если у вас есть несколько доменов, но они не синхронизированы. При том что ничего не синхронизировано, мастер установки добавляет шаг в профили запуска, необходимый для выполнения попытки синхронизации. Это и вызывает ошибку. Решением является удаление этого шага из профилей запуска, с использованием Synchronization Service Manager:
- Запустите Synchronization Service Manager (C:\Program Files\Microsoft Azure AD Sync\UIShell\miisclient.exe).
- На вкладке операций Operations вы заметите ошибки, относящиеся к шагу missing-partition-for-run-step.
- Выберите вкладку Connectors.
- Правой кнопкой мыши щелкните по коннектору локальной службы Active Directory и выберите действие по настройке профилей запуска Configure Run Profiles.
- Выбирайте каждый из профилей запуска и для каждого выполните шаг 6.
- Выберите шаг для домена, который вы не хотите реплицировать, это будет GUID, и выберите Delete Step (см. экран 3).
- Щелкните ОК.
- Теперь выберите Run и запустите то действие, которое выдавало ошибку. Теперь система должна показать успешное выполнение Success. Статус можно увидеть на вкладке Operations (см. экран 4).
Экран 3. Работа с профилем запуска |
Экран 4. Проверка статуса выполнения шага |
Я использую общий виртуальный диск Shared VHDX в кластере Hyper-V и обратил внимание на увеличенный сетевой трафик между узлами в кластере. Почему это происходит?
Общие тома кластера Cluster Shared Volumes (CSV) были вновь введены в Windows Server 2008 R2. Они разрешают доступ к LUN всем узлам в кластере, одновременно допуская прямые операции ввода-вывода данных со всех узлов, тогда как изменения любых метаданных выполняются узлом-координатором для конкретного тома CSV. Запросы метаданных отсылаются по сети кластера на узел-координатор. Узлы могут потерять прямой доступ к хранилищу данных, но тогда они переходят в режим перенаправления и отсылают все операции ввода-вывода по сети кластера на узел-координатор. Таким образом, продолжается чтение и запись данных.
Общий виртуальный диск Shared VHDX позволяет нескольким виртуальным машинам использовать один и тот же файл VHDX на нескольких узлах. Таким образом, необходимо управлять общим доступом.
Как это происходит? Узел-координатор отсылает все операции ввода-вывода на общий VHDX. Тот, в свою очередь, требует от всех узлов, которые являются хостами виртуальных машин и не являются узлами-координаторами, отсылки своих операций ввода-вывода на узел-координатор.
Например, если система хранения данных располагается на масштабируемом сервере Scale-out File Server (SoFS), доступ к которому осуществляется по SMB 3, тогда все узлы будут перенаправлены на узел-координатор в SoFS для заданного совместно используемого ресурса, который является хостом общего диска Shared VHDX. Если у сервера есть соединение с SAN со скоростью 8 Гбит/с и соединение с другими узлами со скоростью в 1 Гбит/с по сети кластера, то это повлияет на производительность системы хранения данных. Вы непременно заметите увеличенный трафик по сети кластера.
Когда используется общий диск Shared VHDX, даже если узлы в кластере имеют прямое подсоединение к системе хранения данных, которая является хостом для Shared VHDX, реальная операция ввода-вывода отсылается по сети кластера, чтобы ее выполнил координатор. Таким образом, очень важно внимательно отнестись к созданию схемы организации сети в кластере, когда вы используете Shared VHDX.
Обратите внимание, что это применимо только к трафику для Shared VHDX, остальной трафик ввода-вывода отсылается прямо в систему хранения данных.
Достаточно много полезной информации вы можете найти в следующих материалах:
- Details on how Cluster Shared Volumes work (http://blogs.msdn.com/b/clustering/archive/2013/12/02/10473247.aspx);
- Specific changes to the workings of Shared VHDX(http://blogs.technet.com/b/askpfeplat/archive/2015/06/01/how-shared-vhdx-works-on-server-2012 r2.aspx).
Если распределение виртуальной машины в Azure отменено, плачу ли я за систему хранения данных, которую она использует?
Да. Даже если виртуальная машина больше не распределена на хосте в Azure, физическая система хранения данных для виртуальной машины все еще существует в учетной записи системы хранения данных Azure. Это означает, что вы все еще платите за систему хранения данных для диска операционной системы и за любые диски данных.
Как мне назначить тип сети в Windows, используя PowerShell?
Windows подразделяет сети на три типа: общедоступная сеть, частная внутренняя сеть и сеть домена. Это позволяет выбирать различные настройки сетевых экранов, базируясь на типе сети. Например, самая ограниченная схема настройки — для общедоступных сетей, а наименее ограниченная — для сетей домена. По умолчанию любое новое сетевое соединение становится частным внутренним соединением, а если службы Active Directory обнаруживаются в сети, ее тип автоматически изменяется на сеть домена. Если вам нужно заставить сеть иметь иной профиль, самый распространенный способ изменения общедоступной сети на частную внутреннюю сеть — это использование PowerShell.
Давайте сначала рассмотрим профиль, используемый сетевыми адаптерами:
Get-NetConnectionProfile
Найдите InterfaceIndex — номер адаптера, который вы хотите изменить, а затем используйте команду:
Set-NetConnectionProfile -InterfaceIndex-NetworkCategory Private
Например:
PS C:\> Get-NetConnectionProfile Name : savilltech.net InterfaceAlias : Internal InterfaceIndex : 12 NetworkCategory : DomainAuthenticated IPv4Connectivity : LocalNetwork IPv6Connectivity : LocalNetwork Name : Network InterfaceAlias : Internet InterfaceIndex : 13 NetworkCategory : Public IPv4Connectivity : LocalNetwork IPv6Connectivity : LocalNetwork PS C:\> Set-NetConnectionProfile -InterfaceIndex 13 -NetworkCategory Private
Как мне задать параметры нескольких серверов Web Application Proxy, чтобы опубликовать те же самые приложения в резервной среде?
Компонент Web Application Proxy (WAP), который составляет часть Windows Server 2012 R2, использует обобщенную схему настроек, которая является частью развертывания федеративной службы каталогов ADFS, к которой этот компонент подсоединен. Следовательно, если несколько серверов WAP используют одну и ту же среду ADFS, то они будут иметь те же самые опубликованные приложения и службы. Никаких других действий не требуется.
Если вам нужны глобальные возможности, такие как переход на другой ресурс при сбое в работе с одного местоположения опубликованных приложений на другое, то вам нужен парный WAP с глобальной службой DNS для решения проблемы, с учетом географического положения, например менеджер трафика Azure Traffic Manager. В таком сценарии WAP в нескольких местоположениях будет публиковать те же самые службы, но пользователи будут перенаправляться на экземпляр WAP, который находится к ним ближе всего, с помощью компонента балансировки нагрузки Performance в менеджере Traffic Manager.
Как мне использовать шаблон для создания виртуальных машин в Azure IaaS v2 (ARM)?
Использование шаблона JSON дает многократно воспроизводимый и возобновляемый способ создания одной виртуальной машины или нескольких виртуальных машин, которые могут составлять даже многоуровневые службы. Службы внутри шаблона разворачиваются параллельно, исключение — наличие зависимостей. Ресурс на дне стека взаимозависимости разворачивается первым, затем разворачиваются ресурсы, которые зависят от первого ресурса, и т. д.
В то же время вы можете создать собственные шаблоны, используя редактор JSON, включающий обычный текстовый редактор или более сложные инструменты, такие как Visual Studio. Самый лучший способ — просмотреть существующие шаблоны, которые доступны от GitHub. Ресурс шаблонов GitHub (https://
github.com/Azure/azure-quickstart-templates) представляет собой библиотеку шаблонов Azure Resource Manager (ARM). Наилучшая отформатированная версия доступна по ссылке: http://azure.microsoft.com/en-us/documentation/templates/. Отличный шаблон, с которого лучше всего начать, — это 101 simple-windows-vm. Он разворачивается на одиночной виртуальной машине. Обратите внимание, что существует набор файлов для всех шаблонов:
- .json — это главный файл шаблона;
-
.parameters.json — параметры, которые могут быть переданы шаблону, и файл позволяет предварительно заполнить значения, которые могут быть переданы, во время создания копии этого шаблона; - metadata.json — данные о шаблоне, которые использует Azure для активации его применения и публикации;
- README.md — информация о шаблоне и зачастую кнопка, которая разворачивает шаблон в Azure посредством ввода шаблона в редактор шаблона на портале Azure.
Каждый файл можно просмотреть в GitHub, выбрав конкретный файл и загрузив его. Единственным файлом, который вы обязаны загрузить, является главный файл шаблона. В Azure также существуют шаблоны, которые можно посмотреть и загрузить, используя PowerShell, как только вы будете аутентифицированы с учетной записью Azure AD и подключитесь к узлу ARM:
- Add-AzureAccount; - Switch-AzureMode -Name AzureResourceManager.
После этого шаблоны можно просмотреть и загрузить:
Get-AzureResourceGroupGalleryTemplate -Publisher Microsoft Get-AzureResourceGroupGalleryTemplate -Identity Microsoft.WindowsServer2012Datacenter.0.2.77-preview Save-AzureResourceGroupGalleryTemplate -Identity Microsoft.WindowsServer2012Datacenter.0.2.77-preview -Path D:\Temp\Microsoft.WindowsServer2012Datacenter.0.2.77- preview.json
Откройте загруженный файл JSON и просмотрите необходимые параметры. На экране 5 представлен образец раздела параметров.
Экран 5. Образец раздела параметров |
Эти значения нужно заполнить в процессе развертывания шаблона. Когда вы разворачиваете шаблон, параметры будут проанализированы и добавлены к команде, которую можно посмотреть через IntelliSense в PowerShell ISE или посредством меню. Например, как на экране 6.
Экран 6. Просмотр параметров шаблона |
Убедитесь, что в шаблоне заполнены все параметры. Если вы пропустите параметры, появится подсказка, что необходимо заполнить их, например:
PS D:\temp> New-AzureResourceGroup -Name TestRGDeploy -Location "East US" -GalleryTemplateIdentity Microsoft.WindowsServer2012Datacenter.0.2.77-preview cmdlet New-AzureResourceGroup at command pipeline position 1 Supply values for the following parameters: (Type !? for Help.) newStorageAccountName:
То же самое происходит и в случае с шаблонами, загруженными с GitHub. Исключение: -TemplateFile используется вместо -GalleryTemplateIdentity, например:
New-AzureResourceGroup -Name TestRGDeploy -Location "East US" -TemplateFile D:\temp\101-simple-windows-vm.json
Если вы загрузили файл параметров и заполнили его значениями, то вам нужно передать его, используя параметр -TemplateParameterFile
У Microsoft есть хорошая статья об ARM и использовании PowerShell. Ее можно найти по адресу: https://azure.microsoft.com/en-us/documentation/articles/powershell-azure-resource-manager/. Кроме того, посмотрите эту статью: https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-azurerm-versus-azuresm/, здесь содержится общая информация.
Как проверить реальный объем данных в моей учетной записи Azure Storage или контейнере?
Обычное хранилище Azure Storage использует разреженную систему хранения данных. Это означает, что реально вы платите за количество записанных данных, а не за объем. Это, например, разные виртуальные диски VHD, хранящиеся в контейнерах. Если у меня есть 127 Гбайт настроенных файлов VHD, но из них заполнено только 16 Гбайт, я буду платить за 16 Гбайт реальных данных.
Великолепный сценарий доступен по адресу: https://gallery.technet.microsoft.com/Get-Billable-Size-of-32175802. Однако, когда я загрузил сценарий, мне пришлось внести небольшое изменение для того, чтобы он заработал. При запуске функции Get-BlobBytes я изменил второй параметр:
[Microsoft.WindowsAzure.Commands.Storage.Model. ResourceModel.AzureStorageBlob]$Blob)
И запуск функции получился таким:
function Get-BlobBytes { param ( [Parameter(Mandatory=$true)] [Microsoft.WindowsAzure.Commands.Storage. Model.ResourceModel.AzureStorageBlob]$Blob)
Если внести это изменение, использовать сценарий довольно легко. В итоге он выводит реальный объем данных и, таким образом, количество данных, за которые вам выставлен счет.
.\CalculateBlobCost.ps1 -storageaccountname "savtechstorenortheurope"
Я забыл пароль UEFI- для своего устройства Surface Pro 3. Как мне переустановить его?
Вы не можете этого сделать, так как, если бы существовал способ переустановить пароль, устройство не было бы конкурентоспособно с точки зрения системы безопасности. Единственным способом переустановить пароль UEFI является отправка устройства в сервисный центр Microsoft. Мораль такова: если вы установили пароль UEFI, позаботьтесь о том, чтобы записать его где-то в целях собственной же безопасности.
Могу ли я создать канал VPN в Azure, используя тип Point-to-Site на системе, не использующей Windows?
Microsoft Point-to-site (P2 S) VPN включает клиент для Windows, но не предусматривает клиент для системы, отличной от Windows. Если вы хотите создать соединение типа P2S с такой системы и при этом не можете задействовать соединение site-to-site (S2S) из своей сети для создания соединения со старых устройств, лучше всего воспользоваться VPN-решением сторонней фирмы, которое может запускаться в Azure в качестве устройства. Такая программа — это BarracudaNG (http://www.barraguard.com/NG-Firewall-Azure.asp), которая доступна как виртуальная машина в галерее Azure. Существуют и другие клиенты, в том числе для Mac OS X. Дополнительную информацию можно найти по адресу: https://techlib.barracuda.com/display/bngv52/the+barracuda+vpn+client+for+mac+os+x.
Могу ли я настроить использование отдельной сетевой карты для трафика Hyper-V Replica?
Нет. Параметров для назначения адаптера или IP-адреса для использования трафиком Hyper-V Replica не существует. Hyper-V Replica будет использовать пути, которые уже существуют между источником и местом назначения. Даже если вы добавите дополнительный путь при условии наличия других путей, они также могут быть использованы, учитывая, что для Hyper-V Replica применяется протокол SMB. Данный протокол поддерживает функцию многоканальности SMB Multichannel, которая может использовать несколько путей для передачи трафика одновременно.
Если вы посмотрите в Интернете, то найдете сообщения об использовании файла Hosts («хосты») для блокировки определенных маршрутов, однако этого делать не рекомендуется, так как файлы Hosts быстро становятся тяжелы для управления и могут принести больше вреда, чем пользы.
Как я могу отослать объекты в переменную или файл так, чтобы конвейер команд в PowerShell продолжал функционировать?
Обычно объекты, выходящие из команды, могут идти в одном направлении. Например, выходные данные могут быть направлены на экран, в файл или в переменную, но нет возможности продолжать конвейер команд. Например, команда, показанная ниже, сохранит список процессов в переменной $procs и будет продолжать отсылать его в конвейер команд, который, поскольку дальнейшей команды нет, выведет информацию на экран:
get-process | tee-object -Variable procs
Ниже приведен пример, который выводит объекты и продолжает конвейер команд, и у вас все еще есть возможность использовать $procs для доступа к объектам.
get-process | tee-object -Variable procs | Select-Object processname, id
Как мне сохранить выходные данные конвейера PowerShell в переменную?
При обычных условиях, чтобы сохранить выходные данные команды PowerShell в переменную, вы можете использовать следующую операцию:
$variable =
Однако если у вас конвейер команд PowerShell и вы хотите сохранить конечный результат в переменную, то этот процесс может оказаться не таким очевидным, то есть:
|
Выходные данные команды command2 будут сохранены на $variable. Также вы можете использовать -outvariable с command2, но убедитесь, что вы не добавили $ к имени переменной и выходные данные также отсылаются на экран:
| -outvariable variable
Когда я создаю расписание для Azure Automation, какую временную зону оно использует?
Когда вы настраиваете расписание для Azure Automation через портал, временная зона, которую вы видите, основывается на локальном браузере. Местное время используется и при настройке параметров PowerShell.
Однако реальное время сохраняется в формате UTC (всеобщего скоординированного времени; это временная зона, которая используется для всех хостов последовательности задач). Таким образом, если вы посмотрите на время в последовательности задач, вы увидите время в виде UTC.
Какие кластерные порты требуются для узлов в кластере, если между ними расположены сетевые экраны?
На сайте Microsoft опубликована статья, где подробно разбираются порты, необходимые для узлов в кластере. Ее можно найти здесь: https://technet.microsoft.com/en-us/library/cc728293(v=ws.10).aspx.
Существует ли простой способ вызвать Azure Automations из Azure Scheduler?
Раньше было возможно вызвать Azure Automations из Azure Scheduler (у которого имеются более широкие возможности по сравнению с родным планировщиком Azure Automations) через довольно сложную последовательность действий. Сейчас существует новая функция, которая описана в документе https://azure.microsoft.com/en-in/documentation/articles/automation-webhooks/.
Применение этой функции web hook осуществляется через действия последовательности задач, которые впоследствии используются в качестве действия HTTP POST для Azure Scheduler (см. экран 7).
Экран 7. Новая функция планирования |
Существует ли способ проверить раздел или файл реестра при помощи PowerShell, и, если он изменяется, можно ли вернуть изменения назад?
Существует несколько способов это сделать. Ниже представлен базовый пример, который один раз в минуту проверяет значение параметра реестра, и, если нет нужного значения, возвращает его:
$key = 'HKLM:\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\Winlogon' while ($true) { #Check the registry value for AutoAdminLogon $AutoAdminLogon = (Get-ItemProperty -Path $key -Name AutoAdminLogon).AutoAdminLogon if ($AutoAdminLogon -eq "0") { $timenow = [datetime]::Now Write-Output "$timenow - AutoAdminLogon is 0" #Enable the AutoAdminLogon Set-ItemProperty -Path $key -Name AutoAdminLogon -Value "1" Set-ItemProperty -Path $key -Name DefaultUsername -Value "localadmin" Set-ItemProperty -Path $key -Name DefaultPassword -Value "Password" } #Now wait a minute before checking again Start-Sleep -Seconds 60 }
Обратите внимание, что другой подход, в отличие от чтения параметра реестра, состоит в настройке подписки, которая будет уведомлять, изменяется ли параметр. Этот процесс описан в документе https://msdn.microsoft.com/en-us/library/aa393035(v=vs.85).aspx. Тот же самый подход может применяться и для проверки файлов или чего-либо еще.
Как мне быстро проверить время в окне PowerShell?
Самый простой способ — запустить следующую команду:
[datetime]:: Now
Обратите внимание, что вы можете запустить и другую команду, чтобы получить время в формате UTC (всемирное скоординированное время):
[datetime]:: UtcNow
Как проще всего остановить и запустить виртуальную машину Azure в определенные промежутки времени?
Механизм Azure Automation предусматривает простой способ запускать рабочие процессы PowerShell в Azure, а благодаря интеграции службы каталогов Azure AD использовать его стало еще легче, чем раньше.
В следующем пошаговом примере будет создана новая учетная запись Azure Automation, безопасно сохраняемые учетные данные Azure AD, две последовательности задач (рабочие процессы PowerShell), разработанные для остановки или запуска виртуальной машины, а затем задано расписание для их запуска в нужное время. Я делаю это на новом портале Azure — https://portal.azure.com.
Для начала создадим новую учетную запись Azure Automation, это будет частью формирования первой актуальной последовательности задач.
- В меню New выберите Management — Runbook.
- Щелкните по учетной записи Automation и выберите New Account.
- Как показано на экране 8, введите имя учетной записи автоматизации, выберите ресурсную группу Resource Group (или создайте новую) наряду с регионом. Регион не обязательно должен соответствовать региону реальной виртуальной машины (или машин), которыми вы хотите управлять. Щелкните ОК для создания учетной записи.
Экран 8. Создание учетной записи автоматизации |
Теперь учетная запись автоматизации Automation Account создана.
- В поле имени Runbook напечатайте Start-VM (или любое другое имя, которое вы хотите использовать для запуска) и настройте тип Runbook на Textual, а не Graphical.
- Отключите параметр Pin to Startboard внизу панели и щелкните Create.
- Нажмите кнопку Browse All в общем меню и выберите Automation Accounts. Будет показана ваша новая учетная запись автоматизации. Щелкните по ней.
Следующий шаг — это создание учетных данных, который последовательности задач будут использовать для аутентификации в подписке Azure.
- Щелкните по ячейке Assets, затем щелкните по ячейке Credentials на панели Assets.
- Нажмите кнопку Add a credential.
- Присвойте имя учетной записи, затем введите имя пользователя и пароль, как показано на экране 9.
Экран 9. Ввод учетных данных |
Теперь могут быть созданы две последовательности задач.
- Выйдите обратно на панель учетной записи Azure Automation, которую создали, и щелкните по ячейке Runbooks.
- Выберите последовательность задач, созданную ранее, которая являлась начальной последовательностью задач. Это действие откроет панель последовательностей задач. Нажмите кнопку Edit.
- Введите код, показанный ниже, заменяя имя рабочего процесса на имя вашей последовательности задач (которая уже загружена), имя вашей учетной записи, имя подписки, имя виртуальной машины и «облачной» службы.
workflow Start-MineVM { $Cred = Get-AutomationPSCredential -Name 'MyCred' Add-AzureAccount -Credential $Cred Select-AzureSubscription -SubscriptionName 'Windows Azure Internal Consumption' Start-AzureVM -ServiceName 'Minecraft-Savill' -Name 'Minecraft' }
Пример показан ниже.
Щелкните по Save, и код сохранится (см. экран 10). Обратите внимание, что, если вы забудете имя учетной записи, вы можете развернуть Assets — Credentials, правой кнопкой мыши щелкнуть по учетной записи и выбрать Add, чтобы указать действие, которое поместит код в ваш сценарий для подключения учетных данных. Если вы не уверены в имени виртуальной машины и «облачной» службы, выберите в меню Browse all hub, Virtual machines (classic), затем выберите свою виртуальную машину. Раздел Essentials в разделе виртуальных машин показывает имя машины и «облачной» службы (первая часть имени DNS). Помните, что вы можете щелкнуть по ячейке Active в общем меню, чтобы быстро вернуться к редактированию последовательности задач.
Экран 10. Указание учетных данных |
- Последовательность задач достаточно сохранить один раз, затем нажмите кнопку Test на панели. Это позволит вам проверить запуск последовательности задач и убедиться, что она работает. Для этого просто нажмите кнопку Start.
- Сделав это один раз и проверив последовательность задач, нажмите кнопку Publish, затем щелкните Yes для подтверждения.
- Закройте панели до того, как вернетесь на панель Runbooks.
- Нажмите кнопку Add a runbook, чтобы создать новую последовательность задач для остановки виртуальной машины.
- Выберите вариант Quick Create и введите имя, затем снова выполните настройку типа на Textual (см. экран 11).
Экран 11. Быстрое создание последовательности задач |
После создания откроется окно редактирования. Вписывайте тот же самый код, только на этот раз действием является Stop-AzureVM, параметр -Force добавляется для того, чтобы избежать требования ввода данных пользователем:
workflow Minecraft-Stop { $Cred = Get-AutomationPSCredential -Name 'MyCred' Add-AzureAccount -Credential $Cred Select-AzureSubscription -SubscriptionName 'Windows Azure Internal Consumption' Stop-AzureVM -ServiceName 'Minecraft-Savill' -Name 'Minecraft' -Force }
Еще раз протестируйте сценарий и убедитесь, что вы выбрали параметр Publish. Теперь у вас есть последовательности задач для запуска и остановки вашей виртуальной машины Azure.
Финальный шаг — это назначение расписания для последовательностей задач.
- Выберите последовательность задач (то же самое будет повторяться и для другой последовательности задач); это действие откроет панель последовательностей задач.
- Щелкните по ячейке Schedules, затем щелкните по Add a schedule. Если кнопка Add a schedule недоступна, это означает, что вы забыли опубликовать последовательность задач, поэтому вернитесь назад и сделайте это из панели редактирования последовательности задач.
- Выберите параметр Schedule, Create a new schedule, затем присвойте расписанию имя (помните, что эти расписания могут быть назначены для нескольких последовательностей задач, поэтому попытайтесь избежать наименования конкретной последовательности задач, формируйте имена на базе времени и числа повторений) и время запуска. Например, для Start в качестве времени запуска можно указать 7.00 утра, затем щелкнуть Create (см. экран 12).
Экран 12. Создание расписания запуска |
Теперь повторите все это для другой последовательности задач, указав желаемое время (см. экран 13).
Экран 13. Создание расписания остановки |
Ваши последовательности задач будут запускаться автоматически в заданное время. Помните, что, если вам нужно полностью остановить приложения, запускаемые в виртуальной машине, убедитесь, что у вас есть несколько процессов, чтобы это сделать (это может быть запланированная в операционной системе задача, которая запускается незадолго до того, как операционная система будет свернута; или это может быть действие, выполняемое вручную).