Proxmox перенести диск в другое хранилище

Обновлено: 25.06.2022

Предлагаю вниманию краткую историю переезда одного сервера виртуализации на базе Proxmox из Hetzner в РФ на сервер виртуализации, расположенный в стойке в офисе компании.
Кратко о причинах выбора Proxmox, его особенностях. Википедия о системе виртуализации Proxmox.

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

Если кратко, то главное желание — отсутствие необходимости администрирования запущенного проекта; отсутствие потребности в обновлениях, только по выходу заплаток безопасности; простота веб-интерфейса. Обусловлено тем, что у компании в штате нет настоящего linux-гуру. Так что, практический стандартный Debian решил все вопросы в пользу Proxmox. Еще один плюс — низкая нагрузка ядром виртуализации на процессор(ы) — это действительно так.

Похвалил систему, за остальным прошу под cut.

В связи с ростом курса Евро передаваемая в аренду услуга по предоставлению удаленных рабочих мест на специально арендованном сервере стала дорожать. После расчетов было принято решение о приобретении в физической конфигурации «Процессор 8 x AMD Ryzen 5 1400 Quad-Core Processor (1 Сокет)», 2 * SSD M.2 1ТБ + райзеры к ним для установки в порт PCI-E, 32 Gb ОЗУ. В облаке же машина CPU(s) 8 x Intel® Core(TM) i7 CPU 920 @ 2.67GHz (1 Socket), 2*2ТБ HDD, 47.16 Gb ОЗУ.

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

Настройки хранилища Proxmox из коробки базируются на томах LVM, хотя есть возможность под хранилище образов использовать и папку ОС и другие варианты файловых систем и даже внешние FTP ресурсы (ниже об этом). На данной машине настроен раздел LVM с именем «data» на диске №1 и прописано хранилище данных proxmox с именем «data», на нем хранятся образы дисков виртуальных машин. На второй диск сохраняются бекапы (снэпшоты) виртуальных машин по некоему графику.

В облаке запущено две клиентских ноды на 4 CPU 16GB ОЗУ каждая и типом процессора core2duo. Их виртуальные диски занимают полностью 2ТБ.

Официальный How-To
Смысл в том, что вместо танцев с бубном вокруг скачивания/подключения образа Proxmox можно воспользоваться скриптом для Debian для его установки. Опуская детали, кратко необходимо c правами root:

1) подключить репозиторий без поддержки


2) Обновить данные о доступных пакетах


3) Установить Promox и перезагрузить машину


В результате WEB-Интерфейс будет доступен по адресу: ВашIP:8006/

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

  • Нода 1: 200Gb+400Gb+200Gb; Размер бекапа 175Gb
  • Нода 2: 200Gb+500Gb; Размер бекапа 7Gb;

В веб-интерфейсе делается бекап с произведенными изменениями с максимальным сжатием образа диска в GZip. Получаем те же 6Gb в архиве, что собственно и ожидалось.

В офисном пространстве есть хранилище с доступом по FTP, выделен 1Тб для заливки архивных образов виртуальных машин, поэтому решено подключить к папке "/bkps" облачной ОС это хранилище по FTP.


Должно быть видно содержание шары FTP. Если не видно, то ищем где проблема.

отключит примонтированный ресурс.

На сервере — приемнике настроены диски так: LVM data1 на 1TB-> Хранилище data1; LVM data2 временно на SSD 256Gb -> Хранилище data2. После переноса образа машины на FTP-шару подключаем ее методом, описанным выше к директории /bkps сервера-приемника. В хранилище сервера-приемника подключаем Директорию "/bkps" как хранилище бекапов и пытаемся восстановить в ранее созданную Ноду 2 из Web-интерфейса. Первые проблемы:

  1. Оказывается, что настройки Ноды полностью в архиве, поэтому нет необходимости создавать аналогичную на приемнике с помощью copy-paste.
  2. Оказывается, что для распаковки образа в системе требуется хранилище «data», а у нас же нет такого, поэтому процесс разархивации останавливается с ошибкой.


залить на FTP и развернуть на сервере-приемнике из консоли в созданный на LVM data2 образ с именем "/dev/data2/vm-101-disk0" с помощью команд:


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

С Нодой 1 процесс пошел сложнее, так как с помощью DD не удалось развернуть диск 2 на 400Gb. В чем причина пока мне неизвестна. Так как время поджимало, было принято Соломоново решение: переименовать Хранилище сервера-приемника с «data1» на «data» и развернуть из бекапа Ноду 1. В такой конфигурации процесс пошел отлично, машина запустилась и корректно работает, видит все подключенные диски.

И в заключение кратко о миграции дисков внутри сервера между хранилищами.



После этого можно с помощь scp скопировать фай образа, однако это же не комильфо.
Я даже писал на официальном форуме, но ответа не получил.
Но сегодня мои мучения подошли к концу! Когда я бороздил просторы Хабра. то натолкнулся на цикл статей по использованию кластера Proxmox: статья1, статья2. статья3. Потребности у нас с автором разные, соответственно настройки тоже. Однако некоторые рассуждения натолкнули меня на мысль поэкспериментировать.
Итак.
В настройках хранилища Proxmox есть одна любопытная опция "Общедоступно". По примеру доставшегося мне в наследство хранилища на drbd,я всегда ставил там галку. Но подумайте, что она означает? Эта галочка означает, что все сервера в кластере имеют прямой доступ к данному хранилищу, то есть могут туда свободно писать и читать. Ведь для локального хранилища это не так! Убираем галочку:



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

5 комментариев:

ну разве что клонировать

VarangaOfficial - противогрибковое средство варанга отзывы - все, что бы хотели знать об этом препарате. Воспользовавшись нашим ресурсом, вы получите возможность узнать полную, всеисчерпывающую информацию касательно этого натурального лекарственного комплекса. Лично увидеть данные о проведенных клинических исследований, прочитать реальные отзывы пациентов и медицинского персонала. Ознакомиться с инструкцией по применению, прочесть об особенностях и методах работы мази, уяснить, в чем заключаются особенности работы крема Варанга, где можно приобрести оригинальный сертифицированный препарат и, как избежать покупки подделки. Мы очень тщательно и скурпулезно проверяем публикуемые данные. Предоставляем нашим пользователям сведения, почерпнутые исключительно из достоверных источников. Если вы нашли признаки грибка или же долго и безрезультатно пытаетесь излечиться от этого коварного, неприятного недуга, наш сайт покажет вам быстрый и простой способ решения проблемы. Присоединяетесь и живите полноценной, здоровой жизнью. Теперь все ответы на самые популярные и волнующие пользователей вопросы, собраны на одном ресурсе.

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

Вообще возможен вариант сабжевой миграции?



ни разу не копировал. ты уверен что команда правильная? ну руками скопируй оттуда туда.


надо на лету, руками я уже что только не переносил. надо без простоя


ты шо там кластер мутишь?

boowai ★★★★ ( 31.08.20 17:13:52 )
Последнее исправление: boowai 31.08.20 17:16:15 (всего исправлений: 1)

6 pve из интерфейса мигрирует

убери отсюда true "--with-local-disks true"


Это работает начиная с 5.3 но хранилише точнее имя должны быть одинаковые. Если нет возможности с одинаковыми именами. То поднимаеш одно общие типа NFS и переносиш диск туда, ну а дальше все просто. И да это команда в 5 версии тестовая, в 6 вроде как внедрили в web интерфейс


Если хранилища одинаковые, говорит что по назначению нет файла диска


Снапшотов нет случаем, если есть то ошибка. Снапшоты не копируются. Также на тргете проверить наличие такого диска т.е. имени.

pvvking ★★ ( 31.08.20 19:23:09 )
Последнее исправление: pvvking 31.08.20 19:24:01 (всего исправлений: 1)


в смысле мечты ? на 5 я мигрировал с помощью команд

qm migrate 117 HOSTNAME -online -targetstorage vm1 -with-local-disk

в 6 я из веб интерфейса это делаю. У тебя кластер собран ?


Да, кластер поднят


Собран кластер, я так понял что миграция предполагается с применением глобального хранилища, сейчас же разбираюсь с миграцией из/на локальное хранилище.

Можете помочь, хотя бы наводящие вопросы по задавать, что может быть не так…


Народ, я что понял, оно не хочет мигрировать диски формата raw, так как они не поддерживают снапшоты.

я создал машину с qсow2, и у меня все из интерфейса отработало


А теперь я ничего не понял, я решил вернуть машину на исходный хост, а интерфейс не дает выбрать хранилище и ругается по старому

Ну так я про локальное и говорю, у меня нет шаред стореджа

ну с подключением, прежде чем пост создавать надо документацию почитать, в проксе она довольно хорошая


Вот моя картина хранилищь

Ответ из службы поддержки:

The shared 1 line does not make sense for storages that are only available on one node, and this is likely the reason PVE becomes confused. Please unset the shared flag for your local storages and try again.

я убрал метку «shared» c хранилищ которые не доступны физически на других устройствах.

Перенос виртуальных машин и контейнеров Proxmox VE на другой сервер

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

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

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

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

Первым делом выясним ID виртуальной машины или контейнера которые мы собираемся переносить, затем перейдем в любое удобное расположение, скажем в домашнюю директорию суперпользователя /root, единственное условие - на файловой системе должно хватать места для создания резервной копии виртуалки.

Затем создадим дамп виртуальной машины или контейнера, явно указав его размещение и режим копирования:

В нашем случае ID - 105, директория назначения /root и режим копирования с остановкой виртуальной машины - stop, последнее - важно, данный режим обеспечивает максимальную согласованность резервной копии и при переносе между серверами следует использовать именно его.

transfer-proxmox-vm-001.jpg

Мы не использовали никакого алгоритма сжатия, так как не видим в этом особого смысла если образ будет передаваться по локальной сети или при помощи съемного носителя, но при необходимости можете ее сжать, мы рекомендуем использовать современный быстрый и эффективный алгоритм Zstandard:

В результате в целевой директории появится файл образа с именем подобным vzdump-qemu-105-2021_12_10-16_47_51.vma, которое содержит тип виртуальной машины - qemu/lxc, ее ID, а также дату и время создания. Расширение .vma соответствует несжатому образу, при использовании компрессии добавится еще одно расширение архиватора, для Zstandard - .vma.zstd. Также рядом появится файл с расширением .log, в нем находится показанное на скриншоте выше содержимое и для восстановления он не нужен. Хотя, если вы собираетесь хранить данный образ, то мы советуем копировать его вместе с файлом лога, в последующем это позволит проще и быстрее разобраться с назначением данного дампа.

Теперь передадим копию на новый сервер виртуализации любым удобным способом, например, можно использовать SCP:

Где 192.168.99.8 - адрес нового гипервизора, местом расположения также укажем /root, но вы можете выбрать любую иную локацию.

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

transfer-proxmox-vm-002.jpg

В нашем примере видно, что свободные ID начинаются со 105, а хранилищем образов является local-lvm. Далее все зависит от того, что мы восстанавливаем, виртуальную машину или контейнер. Для виртуалки выполним:

Где мы сначала указываем путь к резервной копии, затем любой свободный ID (он может отличаться от старого ID, в нашем случае просто совпало) и хранилище local-lvm при помощи ключа -storage, если этого не сделать, то виртуальная машина будет восстановлена в хранилище local.

Для контейнеров команда будет немного иной:

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

transfer-proxmox-vm-003.jpg

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

transfer-proxmox-vm-004.jpg

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

Снимок6.PNG

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

Как видим, перенос виртуальных машин или контейнеров между узлами Proxmox VE достаточно прост и универсален, все что вам нужно - это свободное место и знание нескольких команд.

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

Предположим имеется несколько нод в кластере, общего хранилища нет, только локальные. Необходима живая миграция. Оно работает из коробки, или нужны танцы с бубном? Рекомендации?

офтоп: Есть подозрение, что я просто обленился, или перегорел, и стоило бы отдохнуть… Голова совсем не варит.:(

Предположим имеется несколько нод в кластере, общего хранилища нет, только локальные. Необходима живая миграция. Оно работает из коробки, или нужны танцы с бубном? Рекомендации?

Предположим, что расшарили фс. Что нам помешает реализовать миграцию?


работает из коробки

А рекомендации по настройке дадите, или там все до боли банально?

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


Работает без общего хранилища, но только на ZFS.

Пункт 7 по ссылке.

Неужели нет решения? А если в рамках 1 хранилища? ZFS никогда не устраивала скоростью. Не везде есть хороший широкий канал и пинг.

Ну уже и ссылку дали. Пункт назвали. Читать религия не позволяет? А если Вас ввели в заблуждение? И оно работает без зфс?

Нет не только, qcow2 на ext4 перемещает из коробки

Нет, с любым работает.

На самом деле такая возможность есть и в libvirt без всяких кластеров, это не rocket science.


Работает на любом типе хранилища. По поводу ZFS - это ты с репликацией перепутал.

Black_Shadow ★★★★★ ( 03.09.21 07:42:41 )
Последнее исправление: Black_Shadow 03.09.21 07:44:21 (всего исправлений: 1)


А рекомендации по настройке дадите, или там все до боли банально?

Да, там всё банально, оно просто работает.


Читайте также: