Руководство. Управление дисками 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 автоматически. Screenshot that shows an example of Try It for Azure Cloud Shell.
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. Button to launch Azure Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Чтобы использовать Azure Cloud Shell, выполните следующие действия:

  1. Запустите Cloud Shell.

  2. Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.

  3. Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.

  4. Нажмите клавишу ВВОД, чтобы запустить код или команду.

создание виртуальной машины;

Для выполнения упражнений в этом руководстве требуется виртуальная машина. В этом разделе приведены инструкции по ее созданию.

Прежде чем начать, найдите переменную $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

Виртуальная машина будет подготовлена к работе. Автоматически создаются и подключаются два диска:

  • диск операционной системы, на котором размещается операционная система виртуальной машины;
  • временный диск, который в основном используется для таких операций, как обработка временных данных.

Добавление диска данных

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

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

Создание диска данных

В этом разделе показано, как создать диск данных.

  1. Прежде чем можно будет создать диск данных, необходимо создать объект диска. В следующем примере кода используется командлет New-AzDiskConfig для настройки объекта диска.

    $diskConfig = New-AzDiskConfig `
        -Location $azRegion `
        -CreateOption Empty `
        -DiskSizeGB 128 `
        -SkuName "Standard_LRS"
    
  2. После создания объекта диска используйте командлет 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
    

Подключение диска данных

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

  1. Получите виртуальную машину, к которой будете подключать диск данных. В примере кода ниже командлет Get-AzVM используется для создания ссылки на виртуальную машину.

    $vm = Get-AzVM `
        -ResourceGroupName $azResourceGroup `
        -Name $azVMName
    
  2. Затем добавьте диск данных в конфигурацию виртуальной машины с помощью командлета Add-AzVMDataDisk.

    $vm = Add-AzVMDataDisk `
        -VM $vm `
        -Name $azDataDiskName `
        -CreateOption Attach `
        -ManagedDiskId $dataDisk.Id `
        -Lun 1
    
  3. Наконец, обновите конфигурацию виртуальной машины с помощью командлета Update-AzVM.

    Update-AzVM `
        -ResourceGroupName $azResourceGroup `
        -VM $vm
    

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

    RequestId IsSuccessStatusCode StatusCode ReasonPhrase
    --------- ------------------- ---------- ------------
                             True         OK OK
    

Инициализация диска данных

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

  1. Войдите на портал Azure.

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

  3. После установки подключения к удаленной виртуальной машине по протоколу RDP выберите в Windows кнопку меню Пуск. В поле поиска введите PowerShell и выберите Windows PowerShell, чтобы открыть окно PowerShell.

    Image of a remote desktop connection window.

  4. В открытом окне 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, чтобы предоставить дополнительные ресурсы хранилища, если на виртуальной машине недостаточно свободного дискового пространства.

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

Сжатие существующего диска не поддерживается и может привести к потере данных.

Обновление размера диска

Выполните приведенные ниже действия, чтобы изменить размер диска ОС или диска данных.

  1. Выберите виртуальную машину, содержащую диск, размер которого вы измените, с помощью командлета Get-AzVM.

     $vm = Get-AzVM `
       -ResourceGroupName $azResourceGroup `
       -Name $azVMName
    
  2. Прежде чем можно будет изменить размер диска виртуальной машины, виртуальную машину нужно остановить. Сделайте это с помощью командлета 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       :
    
  3. После остановки получите ссылку на подключенный к виртуальной машине диск ОС или диск данных с помощью командлета Get-AzDisk.

    В примере ниже показано, как выбрать диск ОС виртуальной машины.

    $disk= Get-AzDisk `
        -ResourceGroupName $azResourceGroup `
        -DiskName $vm.StorageProfile.OsDisk.Name
    

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

        $disk= Get-AzDisk `
            -ResourceGroupName $azResourceGroup `
            -DiskName $vm.StorageProfile.DataDisks[0].Name
    
  4. Теперь, когда у вас есть ссылка на диск, установите размер диска равным 250 ГиБ.

    Внимание

    Новый размер должен быть больше, чем размер существующего диска. Максимально допустимый размер диска ОС — 4095 ГиБ.

    $disk.DiskSizeGB = 250
    
  5. Затем обновите образ диска с помощью командлета 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
    
    
  6. Наконец, перезапустите виртуальную машину с помощью командлета 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       :
    

Расширение тома диска в ОС

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

  1. Войдите на портал Azure.

  2. Найдите виртуальную машину, к которой подключен диск данных. Создайте подключение по протоколу удаленного рабочего стола (RDP) и выполните вход. Если у вас больше нет доступа к учетной записи администратора, создайте объект учетных данных для указанного имени пользователя и пароля с помощью командлета Get-Credential.

  3. После установки подключения к удаленной виртуальной машине по протоколу RDP выберите в Windows кнопку меню Пуск. В поле поиска введите PowerShell и выберите Windows PowerShell, чтобы открыть окно PowerShell.

    Image of a remote desktop connection window.

  4. Откройте PowerShell и выполните следующий скрипт: Измените значение переменной -DriveLetter соответствующим образом. Например, чтобы изменить размер раздела на диске F:, используйте $driveLetter = "F".

    $driveLetter = "[Drive Letter]" 
    $size = (Get-PartitionSupportedSize -DriveLetter $driveLetter) 
    Resize-Partition `
        -DriveLetter $driveLetter `
        -Size $size.SizeMax
    
  5. Сверните окно RDP и вернитесь к Azure Cloud Shell. С помощью командлета Get-AzDisk проверьте, успешно ли был изменен размер диска.

    Get-AzDisk `
        -ResourceGroupName $azResourceGroup | Out-Host -Paging
    

Обновление диска

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

Выполните действия, описанные в этом разделе, чтобы обновить управляемый диск с ценовой категории "Стандартный" до ценовой категории "Премиум".

  1. Выберите виртуальную машину, содержащую диск, который вы хотите обновить, с помощью командлета Get-AzVM.

     $vm = Get-AzVM `
       -ResourceGroupName $azResourceGroup `
       -Name $azVMName
    
  2. Прежде чем можно будет обновить диск виртуальной машины, виртуальную машину нужно остановить. Сделайте это с помощью командлета 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       :
    
  3. После остановки получите ссылку на подключенный к виртуальной машине диск ОС или диск данных с помощью командлета Get-AzDisk.

    В примере ниже показано, как выбрать диск ОС виртуальной машины.

    $disk= Get-AzDisk `
        -ResourceGroupName $azResourceGroup `
        -DiskName $vm.StorageProfile.OsDisk.Name
    

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

        $disk= Get-AzDisk `
            -ResourceGroupName $azResourceGroup `
            -DiskName $vm.StorageProfile.DataDisks[0].Name
    
  4. Теперь, когда у вас есть ссылка на диск, установите SKU диска Premium_LRS.

    $disk.Sku = [Microsoft.Azure.Management.Compute.Models.DiskSku]::new('Premium_LRS')
    
  5. Затем обновите образ диска с помощью командлета Update-AzDisk.

    Update-AzDisk `
        -ResourceGroupName $azResourceGroup `
        -Disk $disk -DiskName $disk.Name
    

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

    $disk.Sku.Name
    

    Выходные данные подтвердят новый номер SKU диска.

    Premium_LRS
    
  6. Наконец, перезапустите виртуальную машину с помощью командлета 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       :
    

Отключение диска данных

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

  1. Сначала с помощью командлета Get-AzVM выберите виртуальную машину, к которой подключен диск.

    $vm = Get-AzVM `
       -ResourceGroupName $azResourceGroup `
       -Name $azVMName
    
  2. Затем отключите диск от виртуальной машины с помощью командлета Remove-AzVMDataDisk.

    Remove-AzVMDataDisk `
        -VM $vm `
        -Name $azDataDiskName
    
  3. Обновите состояние виртуальной машины с помощью командлета 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

Следующие шаги

Из этого руководства вы узнали, как:

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

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