Назад | Перейти на главную страницу

Перенос диска данных виртуальной машины Azure из учетной записи хранения Premium в Standard

У меня есть виртуальная машина Ubuntu с отдельным подключенным диском данных в учетной записи хранилища Premium. Диск с данными очень большой, и в результате он стоит мне дороже, чем мне хотелось бы. Пробовал скопировать VHD по инструкции Вот, но операция завершается немедленно, и результирующий размер виртуального жесткого диска равен 0 или -1 в соответствии с Powershell (однако портал Azure показывает правильный размер). Тем не менее, я отсоединил премиальный диск и прикрепил стандартный диск на его место. Это пошло плохо, что привело к первоначальному сообщению об ошибке, что размер диска -512 байт недопустим, и последующим сообщениям об ошибках

Не удалось подключить / отсоединить существующий диск «datadrive» к виртуальной машине «myservername». Ошибка: уже существует аренда контейнера хранения, содержащего большой двоичный объект с URI.

где «прикрепить / отсоединить» зависело от того, какую операцию я выполнял. Я попытался удалить новую стандартную учетную запись хранения и начать процесс с нуля, но мне все равно не повезло. В конце концов, я повторно подключил существующий диск к премиум-аккаунту, и мне удалось снова успешно запустить машину, но попытка перехода на стандартную учетную запись хранения потерпела неудачу.

Возможна ли миграция диска с данными из премиальной учетной записи хранения до стандартной? И если да, то какие шаги?

Переход с Premium на Standard недоступен.

Уменьшение габаритов с P30 / P20 до меньшего также недоступно.

Диски Premium можно подключать только к виртуальным машинам, которые поддерживают хранилище Premium.

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

Если настоящая причина, по которой у вас есть диски P30 Premium Storage, заключается в том, что эти шаблоны ARM любят создавать диски на 1000 ГБ для чего-то столь же глупого, как база данных 1 МБ, попробуйте изменить шаблоны перед их развертыванием.

Есть способ избежать маршрута xcopy или robocopy. Я наткнулся на это, пытаясь найти способ перенести управляемые диски Azure Premium по подпискам с помощью PowerShell. Следующий сайт посвящен конкретным деталям https://cloudpuzzles.net/2017/05/moving-azure-managed-disks-around/

В основном альтернативный способ выглядит следующим образом

  1. В AzureRM перейдите к виртуальной машине, выберите диск и выберите основной диск ОС.
  2. Нажмите «Экспорт», и он предоставит URL-адрес sas оттуда, следуя инструкциям на сайте выше, чтобы использовать powershell для копирования управляемого диска в большой двоичный объект контейнера хранения.
  3. В Azure Storage Explorer мне удалось скопировать диск в другую подписку - вы можете пропустить этот шаг.
  4. Создайте новую виртуальную машину и присоедините скопированный виртуальный жесткий диск к виртуальной машине. Это можно сделать с помощью PowerShell или после создания новой виртуальной машины с помощью Обозревателя хранилищ Azure, чтобы переименовать новый виртуальный жесткий диск и переименовать целевой виртуальный жесткий диск в соответствии с именем нового виртуального жесткого диска.

Исходя из ответа Нура, что переход с Premium на Standard не поддерживается, мне пришлось выбрать другой, более высокий уровень. В конечном итоге мне пришлось создать и подключить новый диск, скопировать файлы с существующего диска на новый диск и удалить + удалить исходный диск. Вот шаги:

  1. Создайте новый диск в стандартной учетной записи хранения и подключите его к виртуальной машине. Это целевой диск.
  2. Отформатируйте и подключите новый диск к виртуальной машине
  3. Остановите все процессы, которые могут изменить файлы на исходном диске (т. Е. На исходном диске в учетной записи хранения Premium). В моем случае этот диск использовал только Postgres, поэтому sudo pkill -u postgres сделали свое дело.
  4. Скопируйте все файлы с исходного диска на целевой, используя cp -a /source/. /destination/.
  5. Размонтируйте исходный диск и удалите его запись fstab.
  6. Размонтируйте целевой диск и измените его точку монтирования с / destination на / source
  7. Повторно смонтируйте целевой диск с обновленной точкой монтирования, включите соответствующие службы и проверьте.
  8. Убедившись, что все работает, вы можете удалить vhd из учетной записи хранилища Premium.

Дополнительную помощь по добавлению и удалению дисков с виртуальных машин Linux Azure можно найти Вот и Вот. Хотя одна ссылка предназначена для Resource Manager, а другая - для классических моделей ресурсов, вы можете управлять созданием и удалением vhds через портал Azure, и команды Linux по-прежнему используются для обеих моделей.