Руководство. Управление дисками Azure с помощью Azure PowerShell
Виртуальные машины Azure хранят операционные системы (ОС), приложения и данные на дисках. При создании виртуальной машины важно выбрать размер диска и конфигурацию в соответствии с ожидаемой рабочей нагрузкой.
В этом руководстве показано, как развернуть и администрировать диски виртуальных машин. В этом руководстве описано следующее:
- создание, подключение и инициализация диска данных;
- проверка состояния диска;
- инициализация диска;
- расширение и обновление диска;
- отключение и удаление диска.
Необходимые компоненты
Подготовьте учетную запись Azure с активной подпиской. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Azure Cloud Shell
В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.
Начало работы с Azure Cloud Shell
Вариант | Пример и ссылка |
---|---|
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. | |
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. | |
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. |
Чтобы использовать Azure Cloud Shell, выполните следующие действия:
Запустите Cloud Shell.
Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.
Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.
Нажмите клавишу ВВОД, чтобы запустить код или команду.
создание виртуальной машины;
Для выполнения упражнений в этом руководстве требуется виртуальная машина. В этом разделе приведены инструкции по ее созданию.
Прежде чем начать, найдите переменную $azRegion
, расположенную в первой строке примера кода, и измените значение, чтобы оно соответствовало нужному региону. Например, чтобы указать регион Центральная часть США, введите $azRegion = "Central US"
. Затем используйте код для развертывания виртуальной машины в новой группе ресурсов. Вам будет предложено ввести имя пользователя и пароль для учетной записи локального администратора виртуальной машины.
$azRegion = "[Your Region]"
$azResourceGroup = "myDemoResourceGroup"
$azVMName = "myDemoVM"
$azDataDiskName = "myDemoDataDisk"
New-AzVm `
-Location $azRegion `
-ResourceGroupName $azResourceGroup `
-Name $azVMName `
-Size "Standard_D2s_v3" `
-VirtualNetworkName "myDemoVnet" `
-SubnetName "myDemoSubnet" `
-SecurityGroupName "myDemoNetworkSecurityGroup" `
-PublicIpAddressName "myDemoPublicIpAddress"
Выходные данные подтвердят успешное создание виртуальной машины.
ResourceGroupName : myDemoResourceGroup
Id : /subscriptions/{GUID}/resourceGroups/myDemoResourceGroup/providers/Microsoft.Compute/virtualMachines/myDemoTestVM
VmId : [{GUID}]
Name : myDemoVM
Type : Microsoft.Compute/virtualMachines
Location : centralus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, AllowExtensionOperations, RequireGuestProvisionSignal}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
FullyQualifiedDomainName : mydemovm-abc123.Central US.cloudapp.azure.com
Виртуальная машина будет подготовлена к работе. Автоматически создаются и подключаются два диска:
- диск операционной системы, на котором размещается операционная система виртуальной машины;
- временный диск, который в основном используется для таких операций, как обработка временных данных.
Добавление диска данных
Рекомендуется по возможности отделять данные приложений и пользователей от данных, связанных с ОС. Если необходимо хранить данные пользователей или приложений на виртуальной машине, обычно создаются и подключаются дополнительные диски данных.
Выполните действия, описанные в этом разделе, чтобы создать, подключить и инициализировать диск данных на виртуальной машине.
Создание диска данных
В этом разделе показано, как создать диск данных.
Прежде чем можно будет создать диск данных, необходимо создать объект диска. В следующем примере кода используется командлет New-AzDiskConfig для настройки объекта диска.
$diskConfig = New-AzDiskConfig ` -Location $azRegion ` -CreateOption Empty ` -DiskSizeGB 128 ` -SkuName "Standard_LRS"
После создания объекта диска используйте командлет New-AzDisk для подготовки диска данных к работе.
$dataDisk = New-AzDisk ` -ResourceGroupName $azResourceGroup ` -DiskName $azDataDiskName ` -Disk $diskConfig
Чтобы убедиться, что диск создан, можно использовать командлет Get-AzDisk.
Get-AzDisk ` -ResourceGroupName $azResourceGroup ` -DiskName $azDataDiskName
В этом примере выходные данные подтвердят, что диск был создан. Значения свойств
DiskState
иManagedBy
подтверждают, что диск еще не подключен.ResourceGroupName : myDemoResourceGroup ManagedBy : ManagedByExtended : {} OsType : DiskSizeGB : 128 DiskSizeBytes : 137438953472 ProvisioningState : Succeeded DiskIOPSReadWrite : 500 DiskMBpsReadWrite : 60 DiskState : Unattached Name : myDemoDataDisk
Подключение диска данных
Диск данных должен быть подключен к виртуальной машине, чтобы она могла получить к нему доступ. Выполните действия, описанные в этом разделе, чтобы создать ссылку на виртуальную машину, подключить диск и обновить конфигурацию виртуальной машины.
Получите виртуальную машину, к которой будете подключать диск данных. В примере кода ниже командлет Get-AzVM используется для создания ссылки на виртуальную машину.
$vm = Get-AzVM ` -ResourceGroupName $azResourceGroup ` -Name $azVMName
Затем добавьте диск данных в конфигурацию виртуальной машины с помощью командлета Add-AzVMDataDisk.
$vm = Add-AzVMDataDisk ` -VM $vm ` -Name $azDataDiskName ` -CreateOption Attach ` -ManagedDiskId $dataDisk.Id ` -Lun 1
Наконец, обновите конфигурацию виртуальной машины с помощью командлета Update-AzVM.
Update-AzVM ` -ResourceGroupName $azResourceGroup ` -VM $vm
После короткой паузы выходные данные подтвердят успешное подключение.
RequestId IsSuccessStatusCode StatusCode ReasonPhrase --------- ------------------- ---------- ------------ True OK OK
Инициализация диска данных
После подключения диска данных к виртуальной машине необходимо настроить ОС для использования диска. В следующем разделе приведены инструкции по подключению к удаленной виртуальной машине и настройке первого добавленного диска.
Войдите на портал Azure.
Найдите виртуальную машину, к которой подключен диск данных. Создайте подключение по протоколу удаленного рабочего стола (RDP) и войдите от имени локального администратора.
После установки подключения к удаленной виртуальной машине по протоколу RDP выберите в Windows кнопку меню Пуск. В поле поиска введите PowerShell и выберите Windows PowerShell, чтобы открыть окно PowerShell.
В открытом окне PowerShell выполните приведенный ниже скрипт.
Get-Disk | Where PartitionStyle -eq 'raw' | Initialize-Disk -PartitionStyle MBR -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "myDemoDataDisk" -Confirm:$false
Выходные данные подтвердят успешную инициализацию.
DriveLetter FileSystemLabel FileSystem DriveType HealthStatus OperationalStatus SizeRemaining Size ----------- --------------- ---------- --------- ------------ ----------------- ------------- ---- F myDemoDataDisk NTFS Fixed Healthy OK 127.89 GB 128 GB
Расширение диска
Вы можете расширить диски Azure, чтобы предоставить дополнительные ресурсы хранилища, если на виртуальной машине недостаточно свободного дискового пространства.
Для некоторых сценариев требуется, чтобы данные хранились на диске ОС. Например, может потребоваться поддержка устаревших приложений, устанавливающих компоненты на диск ОС. Кроме того, в некоторых случаях нужно выполнить перенос локального физического компьютера или виртуальной машины с более крупным диском ОС. В таких случаях может потребоваться расширить диск ОС виртуальной машины.
Сжатие существующего диска не поддерживается и может привести к потере данных.
Обновление размера диска
Выполните приведенные ниже действия, чтобы изменить размер диска ОС или диска данных.
Выберите виртуальную машину, содержащую диск, размер которого вы измените, с помощью командлета
Get-AzVM
.$vm = Get-AzVM ` -ResourceGroupName $azResourceGroup ` -Name $azVMName
Прежде чем можно будет изменить размер диска виртуальной машины, виртуальную машину нужно остановить. Сделайте это с помощью командлета
Stop-AzVM
. Появится сообщение с предложением подтвердить операцию.Внимание
Прежде чем инициировать завершение работы виртуальной машины, обязательно убедитесь, что в ней нет важных ресурсов или данных, которые могут быть утеряны.
Stop-AzVM ` -ResourceGroupName $azResourceGroup ` -Name $azVMName
После небольшой паузы выходные данные подтвердят успешную остановку виртуальной машины.
OperationId : abcd1234-ab12-cd34-123456abcdef Status : Succeeded StartTime : 9/13/2021 7:10:23 PM EndTime : 9/13/2021 7:11:12 PM Error :
После остановки получите ссылку на подключенный к виртуальной машине диск ОС или диск данных с помощью командлета
Get-AzDisk
.В примере ниже показано, как выбрать диск ОС виртуальной машины.
$disk= Get-AzDisk ` -ResourceGroupName $azResourceGroup ` -DiskName $vm.StorageProfile.OsDisk.Name
В примере ниже показано, как выбрать первый диск данных виртуальной машины.
$disk= Get-AzDisk ` -ResourceGroupName $azResourceGroup ` -DiskName $vm.StorageProfile.DataDisks[0].Name
Теперь, когда у вас есть ссылка на диск, установите размер диска равным 250 ГиБ.
Внимание
Новый размер должен быть больше, чем размер существующего диска. Максимально допустимый размер диска ОС — 4095 ГиБ.
$disk.DiskSizeGB = 250
Затем обновите образ диска с помощью командлета
Update-AzDisk
.Update-AzDisk ` -ResourceGroupName $azResourceGroup ` -Disk $disk -DiskName $disk.Name
Образ диска будет обновлен, а выходные данные подтвердят новый размер диска.
ResourceGroupName : myDemoResourceGroup ManagedBy : /subscriptions/{GUID}/resourceGroups/myDemoResourceGroup/providers/Microsoft.Compute/virtualMachines/myDemoVM Sku : Microsoft.Azure.Management.Compute.Models.DiskSku TimeCreated : 9/135/2021 6:41:10 PM CreationData : Microsoft.Azure.Management.Compute.Models.CreationData DiskSizeGB : 250 DiskSizeBytes : 268435456000 UniqueId : {GUID} ProvisioningState : Succeeded DiskIOPSReadWrite : 500 DiskMBpsReadWrite : 60 DiskState : Reserved Encryption : Microsoft.Azure.Management.Compute.Models.Encryption Id : /subscriptions/{GUID}/resourceGroups/myDemoResourceGroup/providers/Microsoft.Compute/disks/myDemoDataDisk Name : myDemoDataDisk Type : Microsoft.Compute/disks Location : centralus
Наконец, перезапустите виртуальную машину с помощью командлета
Start-AzVM
.Start-AzVM ` -ResourceGroupName $azResourceGroup ` -Name $azVMName
После небольшой паузы выходные данные подтвердят успешный запуск виртуальной машины.
OperationId : abcd1234-ab12-cd34-123456abcdef Status : Succeeded StartTime : 9/13/2021 7:44:54 PM EndTime : 9/13/2021 7:45:15 PM Error :
Расширение тома диска в ОС
Прежде чем можно будет воспользоваться новым размером диска, необходимо расширить том в ОС. Выполните приведенные ниже действия, чтобы расширить том диска и воспользоваться преимуществами нового размера диска.
Войдите на портал Azure.
Найдите виртуальную машину, к которой подключен диск данных. Создайте подключение по протоколу удаленного рабочего стола (RDP) и выполните вход. Если у вас больше нет доступа к учетной записи администратора, создайте объект учетных данных для указанного имени пользователя и пароля с помощью командлета Get-Credential.
После установки подключения к удаленной виртуальной машине по протоколу RDP выберите в Windows кнопку меню Пуск. В поле поиска введите PowerShell и выберите Windows PowerShell, чтобы открыть окно PowerShell.
Откройте PowerShell и выполните следующий скрипт: Измените значение переменной
-DriveLetter
соответствующим образом. Например, чтобы изменить размер раздела на диске F:, используйте$driveLetter = "F"
.$driveLetter = "[Drive Letter]" $size = (Get-PartitionSupportedSize -DriveLetter $driveLetter) Resize-Partition ` -DriveLetter $driveLetter ` -Size $size.SizeMax
Сверните окно RDP и вернитесь к Azure Cloud Shell. С помощью командлета
Get-AzDisk
проверьте, успешно ли был изменен размер диска.Get-AzDisk ` -ResourceGroupName $azResourceGroup | Out-Host -Paging
Обновление диска
Есть несколько способов реагирования на изменения в рабочих нагрузках вашей организации. Например, вы можете обновить стандартный жесткий диск до твердотельного накопителя ценовой категории "Премиум" для удовлетворения возросшего спроса.
Выполните действия, описанные в этом разделе, чтобы обновить управляемый диск с ценовой категории "Стандартный" до ценовой категории "Премиум".
Выберите виртуальную машину, содержащую диск, который вы хотите обновить, с помощью командлета
Get-AzVM
.$vm = Get-AzVM ` -ResourceGroupName $azResourceGroup ` -Name $azVMName
Прежде чем можно будет обновить диск виртуальной машины, виртуальную машину нужно остановить. Сделайте это с помощью командлета
Stop-AzVM
. Появится сообщение с предложением подтвердить операцию.Внимание
Прежде чем инициировать завершение работы виртуальной машины, обязательно убедитесь, что в ней нет важных ресурсов или данных, которые могут быть утеряны.
Stop-AzVM ` -ResourceGroupName $azResourceGroup ` -Name $azVMName
После небольшой паузы выходные данные подтвердят успешную остановку виртуальной машины.
OperationId : abcd1234-ab12-cd34-123456abcdef Status : Succeeded StartTime : 9/13/2021 7:10:23 PM EndTime : 9/13/2021 7:11:12 PM Error :
После остановки получите ссылку на подключенный к виртуальной машине диск ОС или диск данных с помощью командлета
Get-AzDisk
.В примере ниже показано, как выбрать диск ОС виртуальной машины.
$disk= Get-AzDisk ` -ResourceGroupName $azResourceGroup ` -DiskName $vm.StorageProfile.OsDisk.Name
В примере ниже показано, как выбрать первый диск данных виртуальной машины.
$disk= Get-AzDisk ` -ResourceGroupName $azResourceGroup ` -DiskName $vm.StorageProfile.DataDisks[0].Name
Теперь, когда у вас есть ссылка на диск, установите SKU диска Premium_LRS.
$disk.Sku = [Microsoft.Azure.Management.Compute.Models.DiskSku]::new('Premium_LRS')
Затем обновите образ диска с помощью командлета
Update-AzDisk
.Update-AzDisk ` -ResourceGroupName $azResourceGroup ` -Disk $disk -DiskName $disk.Name
Образ диска будет обновлен. Используйте следующий пример кода, чтобы проверить, обновлен ли номер SKU диска.
$disk.Sku.Name
Выходные данные подтвердят новый номер SKU диска.
Premium_LRS
Наконец, перезапустите виртуальную машину с помощью командлета
Start-AzVM
.Start-AzVM ` -ResourceGroupName $azResourceGroup ` -Name $azVMName
После небольшой паузы выходные данные подтвердят успешный запуск виртуальной машины.
OperationId : abcd1234-ab12-cd34-123456abcdef Status : Succeeded StartTime : 9/13/2021 7:44:54 PM EndTime : 9/13/2021 7:45:15 PM Error :
Отключение диска данных
Диск данных можно отключить от виртуальной машины, если вы хотите подключить его к другой виртуальной машине или если он больше не нужен. По умолчанию отключенные диски не удаляются во избежание непреднамеренной потери данных. За отключенный диск по-прежнему будет начисляться плата, пока он не будет удален.
Сначала с помощью командлета
Get-AzVM
выберите виртуальную машину, к которой подключен диск.$vm = Get-AzVM ` -ResourceGroupName $azResourceGroup ` -Name $azVMName
Затем отключите диск от виртуальной машины с помощью командлета
Remove-AzVMDataDisk
.Remove-AzVMDataDisk ` -VM $vm ` -Name $azDataDiskName
Обновите состояние виртуальной машины с помощью командлета
Update-AzVM
, чтобы удалить диск данных.Update-AzVM ` -ResourceGroupName $azResourceGroup ` -VM $vm
После небольшой паузы выходные данные подтвердят обновление виртуальной машины.
RequestId IsSuccessStatusCode StatusCode ReasonPhrase --------- ------------------- ---------- ------------ True OK OK
Удаление диска данных
При удалении виртуальной машины диски данных, подключенные к виртуальной машине, остаются подготовленными. За них и дальше будет взиматься плата, пока они не будут удалены. Такое поведение по умолчанию помогает предотвратить потери данных, вызванные случайным удалением.
Для удаления неподключенных дисков можно использовать приведенный ниже пример скрипта PowerShell. Извлечение дисков ограничено группой ресурсов myDemoResourceGroup, так как с командлетом Get-AzDisk
используется параметр -ResourceGroupName
.
# Get all disks in resource group $azResourceGroup
$allDisks = Get-AzDisk -ResourceGroupName $azResourceGroup
# Determine the number of disks in the collection
if($allDisks.Count -ne 0) {
Write-Host "Found $($allDisks.Count) disks."
# Iterate through the collection
foreach ($disk in $allDisks) {
# Use the disk's "ManagedBy" property to determine if it is unattached
if($disk.ManagedBy -eq $null) {
# Confirm that the disk can be deleted
Write-Host "Deleting unattached disk $($disk.Name)."
$confirm = Read-Host "Continue? (Y/N)"
if ($confirm.ToUpper() -ne 'Y') { break }
else {
# Delete the disk
$disk | Remove-AzDisk -Force
Write-Host "Unattached disk $($disk.Name) deleted."
}
}
}
}
Неподключенный диск данных удаляется, что отображается в выходных данных.
Name : abcd1234-ab12-cd34-ef56-abcdef123456
StartTime : 9/13/2021 10:14:05 AM
EndTime : 9/13/2021 10:14:35 AM
Status : Succeeded
Error :
Очистка ресурсов
Если виртуальная машина, группа ресурсов и связанные с ней ресурсы вам больше не нужны, их можно удалить. Для удаления группы ресурсов, созданной, как описано ранее в этом руководстве, можно использовать приведенный ниже пример скрипта PowerShell.
Внимание
Будьте внимательны при удалении группы ресурсов. Чтобы не потерять важные данные, перед удалением группе ресурсов убедитесь, что она не содержит важные ресурсы или данные.
Remove-AzResourceGroup -Name $azResourceGroup
Появится сообщение с предложением подтвердить операцию. После короткой паузы ответ True
подтвердит, что группа ресурсов myDemoResourceGroup удалена.
Confirm
Are you sure you want to remove resource group 'myDemoResourceGroup'
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y
True
Следующие шаги
Из этого руководства вы узнали, как:
- создание, подключение и инициализация диска данных;
- проверка состояния диска;
- инициализация диска;
- расширение и обновление диска;
- отключение и удаление диска.
Перейдите к следующему руководству, чтобы узнать об автоматизации настройки виртуальных машин.