Proxmox подключает необработанный диск к виртуальной машине

Обновлено: 21.11.2024

Как видите, у меня есть куча неиспользуемых образов дисков ВМ из предыдущей установки Proxmox. Эти диски расположены на отдельном жестком диске. Теперь я установлю этот жесткий диск в мою новую установку Proxmox. Я использую это руководство для установки дополнительного жесткого диска в Proxmox VE. Итак, теперь моя новая система Proxmox настроена и работает, и я хочу повторно использовать образы дисков с моих предыдущих виртуальных машин Proxmox.

Шаги по созданию новой виртуальной машины из существующего образа диска в Proxmox

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

Шаг 1. Подключите диск к Proxmox

Вы можете пропустить этот шаг, если вы его уже сделали. В этом примере мой второй диск смонтирован в /mnt/disk1. А затем мои старые образы дисков находятся по следующему пути: /mnt/disk1/vm_disk/images. И он загружается из веб-управления Proxmox как disk1. Это важно отметить. Он понадобится нам позже.

Шаг 2. Создайте новую виртуальную машину

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

Мой новый идентификатор ВМ — 100, и нам нужно будет изменить его, чтобы он соответствовал образу нашего диска в конце процесса.

Шаг 3. Измените конфигурацию ВМ

Теперь нам нужно изменить новую конфигурацию виртуальной машины. Войдите на сервер Proxmox и отредактируйте файл конфигурации нашей новой виртуальной машины. В этом случае мой файл конфигурации для моей новой виртуальной машины — 100.conf. Он находится в следующей папке: /etc/pve/qemu-server.

Выше показан файл 100.conf по умолчанию для моей новой виртуальной машины. Мы собираемся изменить это. В этом примере я буду использовать свой существующий диск с именем: vm-106-disk0.raw. Итак, давайте изменим следующую строку в файле конфигурации с этой

Если вы используете UEFI, вам также потребуется изменить строку uefidisk0 и настроить ее для использования существующего диска EFI. В моем случае я меняю строку на эту

Теперь давайте переименуем наш файл конфигурации виртуальной машины с 100.conf на 106.conf. Я не уверен, что это необходимо, но я всегда меняю свой идентификатор виртуальной машины, чтобы он соответствовал идентификатору образа диска.

При этом идентификатор виртуальной машины в сети Proxmox также отразит это изменение.

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

АНТОН

Новый участник

Здравствуйте,
Я перехожу с KVM на Proxmox VE.
Два небольших вопроса о хранилище:

1) Как подключить блочное устройство в качестве необработанного диска к ВМ? У меня есть жесткий диск с зашифрованным разделом LUKS с LVM. Я хочу передать один из LV на свою виртуальную машину как необработанный диск.

2) Можно ли подключить диски к работающей ВМ?Если я объявлю диск из моего Вопроса (1) в ВМ, ВМ не запустится, если раздел LUKS не расшифрован (поскольку LVM не будет виден). Я хочу, чтобы моя виртуальная машина загружалась без этого диска, тогда я открою раздел LUKS и вручную присоединю LV (необработанное устройство) к работающей виртуальной машине.

Эльмаркони

Член

АНТОН

Новый участник

Спасибо, elmarconi, я также нашел это руководство, добавил строку
virtio1: /dev/mapper/gueststorage-intratorage,size=3500G
в файл конфигурации виртуальной машины, и, похоже, это работает.

Теперь нужно найти способ подключить его к работающей ВМ

Эльмаркони

Член

АНТОН

Новый участник

Спасибо, Эльмаркони! Кажется, работает. Любая идея о том, как запустить его в неинтерактивном режиме? (Обходной путь — запустить его в интерактивном режиме и перенаправить стандартный ввод из файла, но это некрасиво).

Эльмаркони

Член

АНТОН

Новый участник

Хорошо, наконец-то это заработало, но я открыт для любого более простого решения.

Что я сделал (Обратите внимание, что я новичок в Proxmox, поэтому я не могу гарантировать, что мои манипуляции "правильные", "безопасные" или "оптимальные"):

1) Обнаружение прослушивания сокетов qemu

которые возвращают что-то вроде
qmp: filename=unix:/var/run/qemu-server/101.qmp,server

У меня прослушивается только сокет QMP, что означает, что я должен говорить с ним JSON.

2) Проверьте конфигурацию, созданную VE

Отредактируйте файл конфигурации виртуальной машины /etc/pve/qemu-server/101.conf и добавьте диск:
virtio1: /dev/mapper/gueststorage-intratorage,size=3500G
Совет: запустите повторное сканирование qm

Запустите виртуальную машину в обычном режиме, подключитесь ssh к хост-ОС (Proxmos) и проверьте «отпечаток» работающей виртуальной машины:
ps aux | grep qemu

Извлеките параметры, относящиеся к вашему диску. В моем случае это было что-то вроде:
-drive file=/dev/mapper/gueststorage-intrastorage,if=none,id=drive-virtio1,format=raw,cache=none,aio=native,detect-zeroes =на устройстве virtio-blk-pci,drive=drive-virtio1,id=virtio1,bus=pci.0,addr=0xb

3) Остановить ВМ, убрать строку диска из конфига, запустить ВМ.

4) Попробуйте подключить диск к работающей ВМ

Запустите socat на сокете и скажите ему принимать команды из стандартного ввода, используя "-":
socat -,echo=0,icanon=0 unix-connect:/var/ запустить/qemu-сервер/101.qmp

вы должны получить его в ожидании команд.

Подайте его в формате JSON. Первая команда должна быть для переключения его в командный режим. Остальные команды "создаются" из данных, найденных в (2).

На этом этапе устройство blk/pci должно стать видимым в гостевой ОС. Проверьте его с помощью lsblk, затем смонтируйте .

Виртуальные машины — это прекрасно, они позволяют объединить множество компьютеров в одну физическую систему, не заставляя вас использовать одну ОС. Иногда полезно предоставить этим виртуальным машинам доступ к HW напрямую. В этом руководстве я покажу вам, как передать диск на блочном уровне через виртуальную машину в Proxmox. Это не передает диск напрямую, поэтому не рекомендуется использовать ZFS или рейд на пропущенных дисках. Вы заметите, что они по-прежнему отображаются как устройства VirtIO внутри виртуальной машины.

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

Партнерские ссылки Amazon для хороших жестких и твердотельных накопителей:

Поиск диска в терминале Proxmox

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

Первый шаг — найти идентификатор диска, через который вы хотите пройти. Хотя вы можете использовать /dev/sdX, вы не хотите этого делать, так как это может измениться при добавлении, удалении или перестановке дисков. Вот шаги для поиска идентификатора. Вам нужно либо войти в систему по SSH, либо перейти к терминалу Proxmox напрямую.

Введите ls /dev/disk/by-id/

Строки, оканчивающиеся на part1, part2 и т. д., — это разделы на каждом диске. Нас это не интересует, так как нам нужен весь диск независимо от разделов. Строка, которую я хочу передать своему диску WD 2 ТБ, — «ata-WDC_WD20EARX-00ZUDB0_WD-WMC1H0037415», однако она будет уникальной для каждого жесткого диска/твердотельного накопителя.

После того, как вы определили интересующий вас диск, вам нужно ввести всего 1 строку! Но сначала давайте определим идентификатор виртуальной машины, к которой вы хотите подключить этот диск. Откройте Proxmox WebGUI и просмотрите список ВМ.

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

замените VM-ID на номер виртуальной машины, а DISK-ID на идентификатор диска.В моем случае я получу «qm set 100 -virtio2 /dev/disk/by-id/ata-WDC_WD20EARX-00ZUDB0_WD-WMC1H0037415».

После этого вы сможете увидеть диск на вкладке «Оборудование» для вашей виртуальной машины.

Теперь, если ваша ОС уже знает о VirtIO, все готово! Если нет, продолжайте читать… Я объясню, как установить драйвер.

Драйвер VirtIO в Windows

Установить драйвер VirtIO очень просто. Они не предоставляют вам программу установки, поэтому ниже я проведу вас через процесс установки вручную.

  1. Перейдите по этой ссылке и загрузите ISO-образ VirtIO. Прокрутите вниз до пункта «Прямые загрузки» и выберите «Стабильный virtio-win iso».
  2. Загрузите этот ISO-образ в хранилище Proxmox ISO Storage и смонтируйте его на компакт-диске виртуальной машины Windows.
  3. Загрузите виртуальную машину и откройте диспетчер устройств.
  4. Щелкните правой кнопкой мыши новый жесткий диск и выберите «Обновить программное обеспечение драйвера…».
  5. Выберите Поиск драйверов на моем компьютере.
  6. Нажмите «Обзор», затем перейдите к папке Viostor внутри компакт-диска.
  7. Выберите свою ОС и 64/32-разрядную папку, затем перейдите к следующему шагу. Он должен установить драйвер, и ваш диск должен работать. Теперь вы можете сделать свой раздел в управлении дисками как обычно.

Все готово! Поздравляем.

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

В зависимости от варианта использования у вас может быть хранилище данных NFS или хранилище данных ISCSI. В зависимости от вашего варианта использования выполните следующие действия. Если у вас есть оба, выполните оба набора шагов.

Выключение и подключение хранилищ данных NFS к Proxmox

  • Выключите все виртуальные машины в среде ESXi, размещенные в вашем хранилище данных NFS.
  • SSH на вашем компьютере с Proxmox.
  • Временно подключите общий ресурс NFS, который использует ESXi и содержит все образы дисков, которые вы хотите перенести.

  • Перейдите к разделу «Миграция на Proxmox», если у вас также нет хранилища данных ISCSI.

Выключение и подключение хранилищ данных iSCSI к Proxmox

  • Выключите все виртуальные машины в среде ESXi, которые используют диск iSCSI, который вы собираетесь сопоставить с Proxmox.
  • Далее вам нужно подключить диск(и) iSCSI к вашей среде Proxmox. Инструмент iscsiadm уже должен быть установлен на Proxmox, но если по какой-то причине это не так, запустите:
  • Если вы не знаете свое IQN-имя iSCSI, вы можете запустить команду запроса, если знаете IP-адрес своего портала iSCSI. В этом списке будут перечислены все доступные IQN, которые находятся на этом IP-адресе.
  • Сопоставьте диск или диски iSCSI, содержащие все диски ВМ, которые вы хотите перенести. Это можно сделать с помощью инструмента iscsiadm. Карта со следующим синтаксисом:

По умолчанию iSCSI использует порт 3260. Если в вашей среде используется другой порт, замените номер порта.

Это сопоставит ваш iSCSI LUN с машиной Proxmox. Он будет отображать их как обычные диски с именами sd, такими как sdb, sdc, sdd и т. д. Если на iSCSI LUN есть файловая система VMFS, она будет находиться в разделе этого диска, например sdb1.

  • Далее вам нужно иметь возможность смонтировать файловую систему, которую использует ESXi (VMFS), чтобы извлечь из нее образы дисков наших виртуальных машин, чтобы их можно было преобразовать в необработанный формат, чтобы их можно было сопоставить с виртуальной машиной Proxmox. Для этого нам нужно установить vmfs6-tools.
  • Если ваш репозиторий не может найти этот пакет, вместо этого вы можете получить его с зеркала здесь с помощью wget или curl, а затем установить его:
  • Затем создайте каталог для монтирования файловой системы VMFS
  • Выведите список блочных устройств, чтобы найти диски iSCSI, сопоставленные с этой машиной.
  • После того, как диск iSCSI будет идентифицирован, мы воспользуемся командой vmfs6-fuse для его монтирования в системе Proxmox. Не забудьте заменить «sdb1» буквенным именем диска устройства iSCSI.
  • Теперь можно перемещаться по файловой системе VMFS. Если вы перейдете в точку монтирования VMFS и просмотрите каталоги, вы увидите каталог для каждой виртуальной машины. Внутри этих каталогов вы можете найти файлы VMDK.
  • Перейти к разделу: Миграция на Proxmox.

Миграция на Proxmox

  • Если вы следовали руководству до этого момента, у вас должен быть смонтирован либо общий ресурс NFS с доступными для просмотра файлами VMDK, либо диск iSCSI, смонтированный с помощью VMFS, и снова должны быть доступны для просмотра файлы VMDK.
  • Следующие шаги заключаются в преобразовании этих файлов VMDK в необработанный формат, чтобы Proxmox мог использовать их в виртуальной машине. То, как это будет сделано, будет зависеть от того, какой тип хранилища вы используете для своих виртуальных машин Proxmox.
  • В этом руководстве рассматриваются как RBD, так и ZFS, но вам нужен только идентификатор хранилища.
  • Вам понадобится уже созданная в Proxmox виртуальная машина, к которой вы планируете подключить диск. Итак, если вы переносите виртуальные машины Windows с VMware, вы создадите виртуальную машину Windows в Proxmox. Если диск, который вы переносите, является фактическим диском ОС, вы можете просто создать пустую виртуальную машину, чтобы перенести диск ОС непосредственно на виртуальную машину.

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

  • Для хранилища RBD
  • Для хранилища ZFS
  • После завершения перейдите к графическому интерфейсу Proxmox и щелкните виртуальную машину, на которую вы переместили диск. Теперь вы увидите неиспользуемый диск.

  • Чтобы добавить это к виртуальной машине, дважды щелкните неиспользуемый диск и выберите тип диска. Для Windows используйте SCSI и VirtIO SCSI для контроллера. Далее нажмите добавить. Теперь к диску можно получить доступ и использовать его на вашей виртуальной машине на Proxmox.

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

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