- PVSM.RU - https://www.pvsm.ru -

Экономим ресурсы при использовании виртуальных машин в Windows Azure

image
Рассмотрим два сценария работы с виртуальными машинами в Windows Azure, которые помогут сэкономить деньги и время:

  • Удаляем виртуальные машины, когда они не используются – Windows Azure снимает деньги за виртуальные машины независимо от ее состояния (работает или остановлена). Проблема актуальна в случаях, если вы используете машины для тестирования или разработки (например, если вы занимаетесь разработкой на платформе SharePoint);
  • Изменение сетевых настроек – если вам нужно сменить настройки облачного сервиса или сетевых настроек.

Для решения этих задач будем использовать командлеты PowerShell для Windows Azure.

Предварительные действия

Подразумеваем, что у вас уже есть аккаунт в Windows Azure.
Загрузите и установите командлеты PowerShell для Windows на официальном сайте [1].
Теперь нужно получить файл с настройками для публикации и информацией о подписке, для чего запустите Windows Azure PowerShell и выполните:

Get-AzurePublishSettingsFile

В результате откроется страница https://windows.azure.com/download/publishprofile.aspx [2] и сохраните файл.
Далее выполните:

Import-AzurePublishSettingsFile <mysettings>. publishsettings

После чего файл с данными о подписке можно удалить.

Экспортируем и удаляем виртуальную машину

Для экспорта настроек виртуальной машины в XML файл воспользуемся командлетом Export-AzureVM [3]:

Export-AzureVM -ServiceName '<CloudService>'  -Name '<VmName>' -Path 'c:VMsVMstate.xml'

И для удаления Remove-AzureVM [4]:

Remove-AzureVM -ServiceName '<CloudService>'  -Name '<VmName>'

При этом Remove-AzureVM не удаляет VHD, и все ваши данные не теряются.
В случае, когда вам нужно начать использовать виртуальную машину, используйте экспортированный ранее файл и командлет Import-AzureVM [5]:

Import-AzureVM -Path 'c:VMsVMstate.xml' | New-AzureVM -ServiceName '<CloudService>' -Location '<Location>'

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

Экспортируем и удаляем все виртуальные машины в Cloud Service

Get-AzureVM -ServiceName '<CloudService>' | foreach { 
	$path = 'c:VMs' + $_.Name + '.xml'
	Export-AzureVM -ServiceName '<CloudService>' -Name $_.Name -Path $path
}
Remove-AzureDeployment -ServiceName '<CloudService>' -Slot Production –Force

Импортируем виртуальные машины в существующий Cloud Service

$vms = @()
Get-ChildItem 'c:VMs' | foreach {
	$path = 'c:VMs' + $_
	$vms += Import-AzureVM -Path $path
}
New-AzureVM -ServiceName '<CloudService>' -VMs $vms

Автор: dplotnikov


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/microsoft/11042

Ссылки в тексте:

[1] официальном сайте: https://www.windowsazure.com/en-us/manage/downloads/

[2] https://windows.azure.com/download/publishprofile.aspx: https://windows.azure.com/download/publishprofile.aspx

[3] Export-AzureVM: http://msdn.microsoft.com/en-us/library/windowsazure/jj152899

[4] Remove-AzureVM: http://msdn.microsoft.com/en-us/library/windowsazure/jj152859

[5] Import-AzureVM: http://msdn.microsoft.com/en-us/library/windowsazure/jj152820