Перенос томов в Azure NetApp Files

С помощью помощника по миграции Azure NetApp Files вы можете выполнять пиринговые и переносить тома из локальной среды ONTAP или облачных томов ONTAP в Azure NetApp Files. Помощник по миграции общедоступен с помощью REST API и в предварительной версии портала Azure.

Требования

  • В ONTAP или облачных томах ONTAP необходимо запустить ONTAP 9.10.0 или более поздней версии.
  • Права на лицензию SnapMirror необходимо получить и применить к локальному кластеру ONTAP или cloud Volumes ONTAP. Обратитесь к группе учетной записи, чтобы привлечь специалиста по технологиям Azure к применению лицензии к локальному кластеру хранилища.
  • Блокировка моментальных снимков должна быть отключена для томов в исходном кластере. Если блокировка моментальных снимков включена, вы получите Last transfer error сообщение. Сведения об отключении блокировки моментальных снимков см. в документации ONTAP.
  • Убедитесь, что топология сети поддерживается для Azure NetApp Files. Убедитесь, что вы установили подключение из локального хранилища к Azure NetApp Files.
  • Делегированное адресное пространство подсети для размещения томов Azure NetApp Files должно иметь по крайней мере семь бесплатных IP-адресов: шесть для пиринга кластера и один для доступа к томам миграции.
  • Делегированное адресное пространство подсети должно иметь соответствующий размер, чтобы разместить больше сетевых интерфейсов Azure NetApp Files. Ознакомьтесь с рекомендациями по планированию сети Azure NetApp Files, чтобы обеспечить соответствие требованиям для делегированного размера подсети.
  • С помощью помощника по миграции тома Azure NetApp Files необходимо использовать стандартные сетевые функции. Дополнительные сведения о настройке сетевых функций см. в разделе "Настройка сетевых функций".
  • После выдачи запроса пиринга запрос должен быть принят в течение 60 минут. Срок действия одноранговых запросов истекает, если не принимается в течение 60 минут.
  • Перед переносом томов, предназначенных для другой подписки, необходимо выполнить миграцию из одного исходного кластера с помощью одной подписки Azure. Пиринг кластера завершается ошибкой при использовании второй подписки Azure и одного и того же внешнего исходного кластера.
  • Перед тем, как инициировать новый запрос пиринга кластера, убедитесь, что все предыдущие запросы пиринга удалены и не отображаются на исходном кластере.
  • Если вы используете Azure RBAC для разделения роли управления хранилищем Azure NetApp Files с намерением разделения задач управления томами, в которых тома находятся в одном наборе одноуровневых сетей, обратите внимание, что внешние подключенные системы ONTAP пиринговые с этим набором не соответствуют этим определяемым Azure ролям. Внешний администратор хранилища может иметь ограниченную видимость для всех томов в наборе одноуровневых элементов с подробными сведениями о метаданных уровня хранилища.
  • При создании каждого тома миграции алгоритм размещения томов Azure NetApp Files пытается повторно использовать ту же систему хранения Azure NetApp Files, что и все ранее созданные тома в подписке, чтобы уменьшить количество сетевых карт или IP-адресов, используемых в делегированной подсети. Если это невозможно, потребляются дополнительные семь сетевых адаптеров.
  • Убедитесь, что внешних томов FlexGroup нет, так как их нельзя перенести в большие тома Azure NetApp Files.
  • При выполнении миграции не включите такие функции, как резервное копирование. Включите только функции после завершения миграции.

Подсказка

Сведения о создании тома миграции и кластеров пиринга для помощника по миграции см. в примере сценария рабочего процесса помощника по миграции PowerShell.

Зарегистрируйте функцию

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

  1. Зарегистрируйте функцию.

    Register-AzProviderFeature -ProviderNamespace Microsoft.NetApp -FeatureName ANFMigrationAssistant
    
  2. Проверьте статус регистрации функции:

    Замечание

    RegistrationState может находиться в Registering состоянии до 60 минут, прежде чем переходить наRegistered. Перед продолжением подождите, пока состояние не изменится на Зарегистрировано.

    Get-AzProviderFeature -ProviderNamespace Microsoft.NetApp -FeatureName ANFMigrationAssistant
    

Вы также можете использовать команды Azure CLIaz feature register и az feature show, чтобы зарегистрировать эту функцию и отобразить состояние регистрации.

Перед тем как начать

Необходимо создать ресурсы ExpressRoute или VPN, чтобы обеспечить сетевое подключение из внешнего кластера NetApp ONTAP к целевому кластеру Azure NetApp Files. Существует несколько способов обеспечения сетевого подключения. Подключение включает этот набор правил брандмауэра, которые являются двунаправленными:

  • ICMP
  • TCP 11104
  • TCP 11105
  • HTTPS

Сетевое подключение должно быть на месте для всех интерфейсов LIFs intercluster (IC) в исходном кластере ко всем сетевым файлам IC в конечной точке Azure NetApp Files.

Замечание

Помощник по миграции копирует все содержимое тома, включая каталоги, файлы, метаданные файла (например, дату создания, дату создания, дату изменения) и существующие моментальные снимки. Вы несете ответственность за настройку целевого тома Azure NetApp Files с помощью LDAP или Active Directory.

Перенос томов

  1. Проверка подлинности с помощью Azure Active Directory для получения маркера OAuth. Этот маркер используется для последующих вызовов API.

  2. Создайте запрос API миграции для создания томов Azure NetApp Files для каждого локального тома, который планируется перенести.

    Это важно

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

    Необходимо создать том Azure NetApp Files с 20% или более квотой, чем исходный том. Тома Azure NetApp Files используют размер логической емкости. Исходный том может быть меньше из-за дедупликации и сжатия. Чтобы правильно определить размер тома Azure NetApp Files, используйте логическое пространство, сообщаемое томом, который вы мигрируете. После миграции вы можете уменьшить неразрывно сжатие Azure NetApp Files, чтобы предотвратить чрезмерную подготовку.

    Значения удаленного пути — это имена узлов, серверов и томов локального хранилища.

    PUT: https://<region>.management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.NetApp/netAppAccounts/<account-name>/capacityPools/<capacity-pool-name>/volumes/Migvolfinal?api-version=2025-07-01
    Body: {
       "type":"Microsoft.NetApp/netAppAccounts/capacityPools/volumes",
       "location":"<LOCATION>",
       "properties":{
          "volumeType":"Migration",
          "dataProtection":{
             "replication":{
                "endpointType":"Dst",
                "replicationSchedule":"Hourly",
                "remotePath":{
                   "externalHostName":"<external-host-name>",
                   "serverName":"<server-name>",
                   "volumeName":"<volume-name>"
                }
             }
          },
          "serviceLevel":"<service-level>",
          "creationToken":"<token>",
          "usageThreshold":<value>,
          "exportPolicy":{
             "rules":[
                {
                   "ruleIndex":1,
                   "unixReadOnly":false,
                   "unixReadWrite":true,
                   "cifs":<true|false>,
                   "nfsv3":<true|false>,
                   "nfsv41":<true|false>,
                   "allowedClients":"0.0.0.0/0",
                   "kerberos5ReadOnly":<true|false>,
                   "kerberos5ReadWrite":<true|false>,
                   "kerberos5iReadOnly":<true|false>,
                   "kerberos5iReadWrite":<true|false>,
                   "kerberos5pReadOnly":<true|false>,
                   "kerberos5pReadWrite":<true|false>,
                   "hasRootAccess":<true|false>
                }
             ]
          },
          "protocolTypes":[
             "<protocols>"
          ],
          "subnetId":"/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet>",
          "networkFeatures":"Standard",
          "isLargeVolume":"false"
       }
    }
    
  3. Выполните запрос API пиринга кластера для каждого целевого тома миграции Azure NetApp Files в локальный кластер. Повторите этот шаг для каждого тома миграции. Каждый вызов должен содержать список локальных кластеров, интеркластер LIFs. Одноранговые IP-адреса должны соответствовать локальной сети.

    Замечание

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

    Замечание

    Каждому узлу в системе ONTAP требуется IC LIF. Каждый IC LIF должен быть указан здесь.

        PUT https://<region>.management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.NetApp/netAppAccounts/<account-name>/capacityPools/<capacity-pool-name>/volumes/<volume-names>/peerExternalCluster?api-version=2025-07-01
    
        Body: {
           "PeerAddresses":[
              "<LIF address>",
              "<LIF address>", 
              "<LIF address>",
              "<LIF address>"
           ]
        }
    
  4. Просмотр заголовка результата. Azure-AsyncOperation Скопируйте идентификатор.

  5. В системе ONTAP или Cloud Volumes ONTAP примите одноранговый запрос кластера из Azure NetApp Files, отправив запрос GET с помощью идентификатора Azure-AsyncOperation.

    POST https://<region>.management.azure.com/subscriptions/<subscription-ID>/providers/Microsoft.NetApp/locations/<location>/operationResults/<Azure-AsyncOperation>?api-version=2025-07-01...
    

    Замечание

    Эта операция может занять время. Проверьте состояние запроса. После того, как это состояние считывает сообщение "Успешно". Azure-AsyncOperation Если ответ не выполнен через час или ошибка завершается ошибкой, выполните peerExternalCluster команду еще раз. Убедитесь, что конфигурация сети между внешней системой ONTAP или Облачными томами ONTAP и делегированной подсетью Azure NetApp Files работает перед продолжением работы.

    {
        "id": "/subscriptions/<subscriptionID>/providers/Microsoft.NetApp/locations/southcentralus/operationResults/00000-aaaa-1111-bbbb-22222222222",
        "name": "<name>",
        "status": "Succeeded",
        "name": "<name>",
        "status": "Succeeded",
        "startTime": "2023-11-02T07:48:53.6563893Z",
        "endTime": "2023-11-02T07:53:25.3253982Z",
        "percentComplete": 100.0,
        "properties": {
            "peerAcceptCommand": "cluster peer create -ipspace <IP-SPACE-NAME> -encryption-protocol-proposed tls-psk -peer-addrs <peer-addresses-list>",
            "passphrase": "<passphrase>"
        }
    }
    
  6. После получения успешного состояния скопируйте и вставьте peerAcceptCommand строку в командную строку для локальных томов, за которым следует строка парольной фразы.

    Замечание

    peerAcceptCommand Если строка в тексте ответа пуста, пиринг уже установлен. Пропустите этот шаг для соответствующего тома миграции.

  7. authorizeExternalReplication Отправьте запрос API для томов миграции. Повторите этот запрос для каждого тома миграции.

    POST: https://<region>.management.azure.com/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.NetApp/netAppAccounts/<account-name>/capacityPools/<capacity-pool-name>/volumes/<volume-names>/authorizeExternalReplication?api-version=2025-07-01
    
  8. Примите одноранговый запрос виртуальной машины хранилища из Azure NetApp Files, отправив запрос GET с помощью идентификатора Azure-AsyncOperation на шаге 4.

    GET https://<region>.management.azure.com/subscriptions/<subscription-ID>/providers/Microsoft.NetApp/locations/<location>/operationResults/<>?api-version=2025-07-01&...
    

    Ответ выглядит следующим образом:

    {
        "id": "/subscriptions/00000000-aaaa-0000-aaaa-0000000000000/providers/Microsoft.NetApp/locations/southcentralus/operationResults/00000000-aaaa-000-aaaa-000000000000"
        "name": "00000000-aaaa-000-aaaa-000000000000",
        "status": "Succeeded",
        "name": "00000000-aaaa-0000-aaaa-0000000000000",
        "status": "Succeeded",
        "startTime": "2023-11-02T07:48:53.6563893Z",
        "endTime": "2023-11-02T07:53:25.3253982Z",
        "percentComplete": 100.0,
        "properties": {
            "svmPeeringCommand": "vserver peer accept -vserver on-prem-svm-name -peer-vserver destination-svm-name",
        }
    }
    

    Разрешить завершению передачи базовых данных. Вы можете отслеживать состояние репликации с помощью портала Azure или REST API.

  9. После получения ответа скопируйте команду CLI из svmPeeringCommand ONTAP CLI.

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

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

        POST https://<region>.management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-names>/providers/Microsoft.NetApp/netAppAccounts/<account-name>>/capacityPools/<capacity-pool>/volumes/<volumes>/performReplicationTransfer?api-version=2025-07-01 
    
  12. Разорвать связь репликации. Чтобы разорвать репликацию на портале, перейдите в меню репликации каждого тома и выберите "Разорвать пиринг". Можно также отправить запрос API:

    POST https://<region>.management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group>/providers/Microsoft.NetApp/netAppAccounts/<NetApp-account>/capacityPools/<capacity-pool-name>>/volumes/<volumes>/breakReplication?api-version=2025-07-01
    

    Замечание

    После разрыва связи репликации не выполняйте snapmirror никаких команд (например snapmirror delete , или snapmirror release); эти команды отрисовки томов Azure NetApp Files недоступны для использования.

  13. Удалите связь репликации миграции. Если удаленная репликация является последней миграцией, связанной с вашей подпиской, удаляются связанные одноранговые узлы кластера и межкластерные LIFs.

    POST https://<region>.management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.NetApp/netAppAccounts/<NetApp-account>/capacityPools/<capacity-pool>/volumes/<volume-names>/finalizeExternalReplication?api-version=2025-07-01
    

    Завершение репликации удаляет все сведения об пиринге в Azure NetApp Files. Вручную убедитесь, что все данные репликации удаляются в кластере ONTAP. Если какие-либо сведения об пиринге cluster peer delete остаются, выполните команду.

Дополнительные сведения