Поделиться через


Управление дисками в автономных дисковых пространствах в Windows Server, размещенных в Azure

В этой статье содержится подробное руководство по определению логического номера единиц (LUN) физического диска, представленного в Azure для дисковых пространств в Windows Server. Это важно при удалении или замене физического диска из пула носителей. Следуя этим инструкциям, вы можете эффективно управлять конфигурациями дисковых пространств без ущерба для целостности данных или доступности служб.

Это важно

Чтобы выполнить следующие процедуры, убедитесь, что у вас есть права администратора в Windows PowerShell и необходимые разрешения для управления дисками на портале Microsoft Azure.

Определите LUN из пула носителей и сопоставийте его на портале Azure.

Чтобы определить LUN физического диска, выполните следующие действия.

  1. Чтобы получить сведения о физических дисках в указанном пуле носителей, выполните следующий командлет PowerShell от имени администратора:

    Get-StoragePool -FriendlyName "<StoragePoolName>" | Get-PhysicalDisk | Select-Object FriendlyName, UniqueId, HealthStatus, Size, PhysicalLocation, DeviceID, CannotPoolReason, Usage | Format-List
    

    Ниже представлен пример результата.

    Friendlyname     : Msft Virtual Disk
    UniqueId         : <UniqueID>
    HealthStatus     : Healthy
    Size             : 37580963840
    PhysicalLocation : Integrated : Adapter 1 : Port 0 : Target 0 : LUN 2
    DeviceID         : 4
    CannotPoolReason : In a Pool
    Usage            : Auto-Select
    

    Замечание

    Разбивка командлета:

    • FriendlyName: удобное для пользователя имя физического диска.
    • UniqueId: уникальный идентификатор диска.
    • PhysicalLocation: указывает физическое расположение диска в системе. Adapter 0 предназначен для диска операционной системы и временных дисков и Adapter 1 предназначен для дисков данных.
    • Usage: показывает, как используется диск (например, для пулов носителей и виртуальных дисков).
  2. Чтобы получить уникальный идентификатор виртуального диска в пуле носителей, выполните следующие командлеты:

    Get-StorageNode
    

    Ниже представлен пример результата.

    Name                          Manufacturer            Model             OperationalStatus 
    ---                           ------------            -----             ------------                     
    Node1-2019-pool.fabrikam.com  Microsoft Corporation   Virtual Machine   Up
    Node1-2019-pool.fabrikam.com  Microsoft Corporation   Virtual Machine   Up
    Node2-2019-pool.fabrikam.com  Microsoft Corporation   Virtual Machine   Up
    
    Get-StorageNode -name "<StorageNodeName>" | get-virtualdisk | ft friendlyname, uniqueid, allocatedsize, footprintonpool
    

    Ниже представлен пример результата.

    friendlyname uniqueid    allocatedsize footprintonpool
    ------------ --------    ------------- ---------------
    Virtualdisk  <UniqueID>  1073741824      1073741824
    

    Замечание

    Числа, отображаемые в allocatedsize и footprintonpool, указаны в байтах.

  3. Чтобы найти LUN дисков данных на портале Azure, перейдите на портал Azure, выберите виртуальную машину и выберите "Параметры>дисков". Запишите LUN и сопоставите его с полученными сведениями на шаге 1.

    Снимок экрана: окно StorageSpacesVM с сведениями о дисках с LUN.

Удаление физического диска из пула носителей

  1. Чтобы удалить физический диск из пула носителей, выполните командлет Set-PhysicalDisk с помощью уникального идентификатора из шага 1 предыдущего раздела:

    Set-PhysicalDisk -UniqueId <UniqueID> -Usage Retired
    

    Вот пример выходных данных при списании физического диска:

    PS C:\Users\Administrator1> Set-PhysicalDisk -UniqueId <UniqueID> -Usage Retired
    PS C:\Users\Administrator1> Get-PhysicalDisk
    
    Number FriendlyName      SerialNumber MediaType   CanPool OperationalStatus HealthStatus Usage         Size
    ------ ------------      ------------ ---------   ------- ----------------- ------------ -----         ----
    5      Msft Virtual Disk              Unspecified False   OK                Healthy      Auto-Select  40 GB
    0      Msft Virtual Disk              Unspecified False   OK                Healthy      Auto-Select 127 GB
    3      Msft Virtual Disk              Unspecified False   OK                Healthy      Auto-Select  40 GB
    2      Msft Virtual Disk              Unspecified False   OK                Healthy      Auto-Select  32 GB
    1      Msft Virtual Disk              Unspecified False   OK                Healthy      Auto-Select  16 GB
    4      Msft Virtual Disk              Unspecified False   OK                Healthy      Retired      35 GB
    
  2. Чтобы определить физические диски, связанные с виртуальным диском, выполните следующий командлет, используя уникальный идентификатор из шага 2 предыдущего раздела:

    Get-VirtualDisk -UniqueId <UniqueID> | Get-PhysicalDisk
    

    Ниже представлен пример результата.

    DeviceId FriendlyName      SerialNumber MediaType   CanPool OperationalStatus HealthStatus Usage        Size
    -------- ------------      ------------ ---------   ------- ----------------- ------------ -----        ----
    1        Msft Virtual Disk              Unspecified False   OK                Healthy      Auto-Select 40 GB
    2        Msft Virtual Disk              Unspecified False   OK                Healthy      Auto-Select 35 GB
    
  3. Чтобы запустить задание хранилища, заставляя данные переместиться с выведенного из эксплуатации физического диска, выполните следующий командлет, используя уникальный идентификатор из предыдущего шага.

    Get-VirtualDisk -UniqueID <UniqueID> | Repair-VirtualDisk
    
  4. Проверьте состояние задания хранилища с помощью следующего командлета и дождитесь завершения задания хранилища.

    Get-StorageJob
    
  5. Убедитесь, что на выведенном из эксплуатации физическом диске нет образа виртуального диска, выполнив следующий командлет:

    Get-StorageNode -Name "<StorageNodeName>" | Get-PhysicalDisk -PhysicallyConnected | Select FriendlyName, CanPool, UniqueID, @{Name="Size (GB)"; Expression={[math]::Round($_.Size / 1GB, 2)}}, PhysicalLocation, Usage, VirtualDiskFootprint
    

    Ниже приведен пример ожидаемых выходных данных:

    FriendlyName         : Msft Virtual Disk
    CanPool              : False
    UniqueID             : <UniqueID>
    Size (GB)            : 35
    PhysicalLocation     : Integrated : Adapter 1 : Port 0 : Target 0 : LUN 2
    Usage                : Retired
    VirtualDiskFootprint : 0
    

    Замечание

    Разбивка командлета:

    • FriendlyName: удобочитаемое имя физического диска.

    • CanPool: указывает, можно ли добавить диск в пул носителей.

    • UniqueID: уникальный идентификатор диска.

    • Пользовательское свойство: Size (GB)

      • Код: @{Name="Size (GB)"; Expression={[math]::Round($_.Size / 1GB, 2)}}
      • Объяснение:
        • @{...}: хеш-таблица, определяющая вычисляемое свойство.
        • Name="Size (GB)": указывает имя нового свойства (в данном случае —Size (GB)).
        • Expression={...}: определяет, как вычисляется значение свойства:
          • $_.Size: относится к свойству размера текущего физического диска (значение в байтах).
          • / 1GB: преобразует размер из байтов в гигабайты (1 ГБ является константой в PowerShell, равной 1024 * 1024 * 1024 * 1024 байта).
          • [math]::Round(..., 2): округляет результат до 2 десятичных разрядов для удобства чтения.
    • PhysicalLocation: указывает физическое расположение диска в системе.

    • Usage: показывает, как используется диск (например, для пулов носителей и виртуальных дисков).

    • VirtualDiskFootprint: указывает, сколько ресурсов физического диска используется виртуальными дисками.

  6. Удалите физический диск с сервера, выполнив следующие командлеты, используя уникальный идентификатор из шага 1.

    $PDToRemove = Get-PhysicalDisk -UniqueID <UniqueID>
    Remove-PhysicalDisk -PhysicalDisks $PDToRemove -StoragePoolFriendlyName "<StoragePoolName>"
    
  7. Повторно проверьте свойство CanPool физического диска, которое должно отображаться как True после удаления физического диска из пула носителей. Get-PhysicalDisk Запустите командлет:

    PS C:\Users\Administrator1> Get-PhysicalDisk
    Number FriendlyName      SerialNumber MediaType   CanPool OperationalStatus HealthStatus Usage         Size
    ------ ------------      ------------ ---------   ------- ----------------- ------------ -----         ----
    5      Msft Virtual Disk              Unspecified False   OK                Healthy      Auto-Select  40 GB
    0      Msft Virtual Disk              Unspecified False   OK                Healthy      Auto-Select 127 GB
    3      Msft Virtual Disk              Unspecified False   OK                Healthy      Auto-Select  40 GB
    2      Msft Virtual Disk              Unspecified False   OK                Healthy      Auto-Select  32 GB
    1      Msft Virtual Disk              Unspecified False   OK                Healthy      Auto-Select  16 GB
    4      Msft Virtual Disk              Unspecified True    OK                Healthy      Auto-Select  35 GB 
    
  8. После удаления диска из пула носителей он должен быть доступен в исходном пуле.

    Снимок экрана пула хранения, показывающий, что диск доступен в исходном пуле.

  9. После подтверждения удаления с помощью командлета Get-PhysicalDisk в PowerShell отсоедините физический диск на портале Azure при необходимости.

  10. Проверьте работоспособность пула носителей и виртуального диска, выполнив Get-StoragePool команды и Get-VirtualDisk командлеты.