Как подключить жесткие диски в Proxmox VE: 2 метода

Pass-through-диски (Disk passthrough) предоставляет виртуальной машине эксклюзивный доступ к физическому диску, что даёт несколько преимуществ, включая снижение нагрузки на I/O и использование родных возможностей оборудования внутри ВМ.

download-icon
Скачайте Бесплатно
Для ВМ, ОС, БД, файлов, NAS и т.д.
elena-zhang

Обновлено Elena Zhang 2024/12/19

Оглавление
  • Что такое Pass-through-диски?

  • Типы Pass-through-дисков

  • Обычные случаи использования

  • Метод 1: Настройка Pass-through одного жесткого диска с помощью команды

  • Метод 2: Добавление PCI-устройства для передачи SATA-контроллера

  • Резервное копирование ВМ Proxmox необходимо

  • Заключение

Proxmox VE — это мощная и открытая платформа для виртуализации, поддерживающая как виртуальные машины на базе KVM, так и контейнеры Linux. Одной из ключевых особенностей Proxmox, которая делает его особенно гибким для опытных пользователей, является возможность pass-through-дисков (disk passthrough), позволяющая виртуальной машине иметь прямой доступ к физическим дискам. Это крайне важно для таких сценариев, как использование ресурсоёмких приложений, нативная работа с ZFS или передача аппаратных RAID-контроллеров гостевым системам.

Что такое Pass-through-диски?

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

Типы Pass-through-дисков

1. Полный Pass-through-диск: Весь физический диск передается виртуальной машине без промежуточных слоев. Это позволяет виртуальной машине полностью контролировать диск, что полезно для конфигураций ZFS, RAID или при использовании специализированных приложений для хранения данных.

2. Pass-through-раздела: Вместо того чтобы передавать весь диск, можно передать только конкретный раздел виртуальной машине. Это позволяет более гибко управлять ресурсами, если не требуется выделение всего диска.

3. Pass-through контроллера: Для настроек, включающих аппаратные RAID-карты или специализированные контроллеры, передача всего контроллера хранения виртуальной машине позволяет управлять всеми дисками, подключенными к контроллеру, на уровне виртуальной машины.

Обычные случаи использования

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

ВМ с подключенным хранилищем: Для систем, таких как NAS, iSCSI-цели или других приложений с высокой нагрузкой на диск, прямая передача диска обеспечивает минимизацию производственных узких мест, обычно вызванных слоями виртуализации.

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

Существует два способа подключения жестких дисков в Proxmox VE:

Метод 1: Настройка Pass-through одного жесткого диска с помощью команды.

Метод 2: Добавление PCI-устройства для передачи SATA-контроллера.

Метод 1: Настройка Pass-through одного жесткого диска с помощью команды

Подключитесь к SSH системы Proxmox VE или напрямую войдите в Web Shell управления PVE.

1. Проверьте ID диска

ls -l /dev/disk/by-id/

Примечание: “ata, mmc” и другие указывают на метод интерфейса. Обычные типы включают ATA, SATA, SCSI, NVME, eMMC и SASI. Интерфейсы IDE и SATA обычно помечаются как "ata", в то время как интерфейсы SCSI и SAS — как "scsi".

2. Импортировать виртуальную машину

qm set <vm_id> –<disk_type>[n] /dev/disk/by-id/<type>-$brand-$model_$serial_number

<disk_type>[n]: Тип шины и её номер для импортируемого диска. Типы шин могут быть IDE, SATA, VirtIO Block или SCSI, с нумерацией, начинающейся с 0. Максимальное значение зависит от типа интерфейса шины: для IDE — 3, для SATA — 5, для VirtIO Block — 15, для SCSI — 13.

/dev/disk/by-id/-brand-brand−model_$serial_number: Конкретный путь и имя ID диска.

Пример: Если данные диска — “ata-ST4000VX000-2AG166_ZGY163KG”, то этот диск будет передан в виртуальную машину с ID 102, а тип интерфейса шины — sata2 (пожалуйста, настройте номер шины в соответствии с виртуальной машиной PVE).

qm set 102 -sata2 /dev/disk/by-id/ata-ST4000VX000-2AG166_ZGY163KG

Информация о возврате будет отображаться следующим образом:

update VM 102: -sata2 /dev/disk/by-id/ata-ST4000VX000-2AG166_ZGY163KG

Это указывает на то что пропуск был успешным.

Метод 2: Добавление PCI-устройства для передачи SATA-контроллера  

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

Примечание: Если ваша система PVE установлена на SATA-накопителе, это может привести к сбою при запуске системы PVE. Поэтому перед передачей SATA-контроллера убедитесь в месте установки системы PVE или установите систему непосредственно на NVMe-диск.

Перед началом убедитесь, что функция IOMMU (виртуализация на уровне ввода-вывода) включена, а затем переходите к добавлению SATA-контроллера.

1. Подтвердите, поддерживает ли процессор вашей материнской платы Vt-d

Если процессор не поддерживает Vt-d, вы не сможете выполнить передачу. Для Intel требуется чипсет не ниже B75 для поддержки этой функции. Другими словами, процессоры Intel Core с 4-го поколения и выше поддерживают эту функцию. VT-D предназначен для виртуализации ввода-вывода, а не для виртуализации процессора VT-X.

Многие начинающие ошибочно считают, что достаточно включить виртуализацию на материнской плате для выполнения передачи, но это не так. Для виртуализации ввода-вывода необходимо включить VT-D. На платформе AMD это называется IOMMU, а на некоторых OEM-материнских платах — SRIOV. Обратите внимание на это.

2. Включите IOMMU

Отредактируйте файл grub. Не модифицируйте его наугад, а настройте в соответствии с вашим окружением.

vi /etc/default/grub

Найдите эту строку:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

Если у вас процессор Intel, измените строку на:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

Если у вас процессор AMD, измените строку на:

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"

Если требуется передача GPU, рекомендуется добавить дополнительные строки:

video=vesafb:off video=efifb:off video=simplefb:off

После добавления этой строки система PVE перезагрузится и останется на экране после входа в ядро.

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt video=vesafb:off video=efifb:off video=simplefb:off"

После изменения обновите grub:

update-grub

Примечание: Если этот метод не включил IOMMU, отредактируйте файл “/etc/kernel/cmdline” и используйте команду proxmox-boot-tool refresh для обновления параметров загрузки.

3. Загрузите необходимые модули ядра

echo vfio >> /etc/modules
echo vfio_iommu_type1 >> /etc/modules
echo vfio_pci >> /etc/modules
echo vfio_virqfd >> /etc/modules

Обновите параметры ядра:

update-initramfs -k all -u

Перезагрузите хост:

reboot

4. Проверьте, включен ли IOMMU

После перезагрузки введите следующую команду в терминале:

dmesg | grep iommu

Если появляется следующий вывод, это означает, что IOMMU успешно включен:

[ 1.341100] pci 0000:00:00.0: Adding to iommu group 0
[ 1.341116] pci 0000:00:01.0: Adding to iommu group 1
[ 1.341126] pci 0000:00:02.0: Adding to iommu group 2
[ 1.341137] pci 0000:00:14.0: Adding to iommu group 3
[ 1.341146] pci 0000:00:17.0: Adding to iommu group 4

На этом этапе введите:

find /sys/kernel/iommu_groups/ -type l

Если появляется несколько групп передачи (pass-through), это означает успешное включение. Если ничего не появляется, значит, IOMMU не включен.

Теперь выберите нужную систему PVE, нажмите "Hardware" > "Add" > "PCI Device" > выберите "SATA Controller" и нажмите "Add", чтобы назначить SATA-контроллер в соответствующую систему. После перезагрузки настройки передачи оборудования PVE вступят в силу.

Резервное копирование ВМ Proxmox необходимо

Vinchin Backup & Recovery — это мощное решение для защиты данных виртуальных машин, предназначенное для многоплатформенных сред и полностью поддерживающее популярные платформы виртуализации, такие как Proxmox. Его основные функции включают автоматические резервные копии, дедупликацию и сжатие данных, что помогает пользователям экономить значительное количество места на хранение. Кроме того, оно поддерживает миграцию данных между платформами и продвинутые функции, такие как мгновенное восстановление и восстановление на уровне отдельных файлов, значительно повышая скорость и эффективность восстановления. В среде Proxmox Vinchin Backup & Recovery обеспечивает безопасность и надежность данных через эффективное шифрование и защиту резервных копий, делая его необходимым решением для сред виртуальных машин.

Для резервного копирования виртуальных машин Proxmox VE с помощью Vinchin Backup & Recovery требуется всего 4 шага:

1. Выберите объект для резервного копирования.

Резервное копирование виртуальных машин Proxmox VE

2.Выберите место назначения для резервной копии.

Резервное копирование виртуальных машин Proxmox VE

3. Настройте стратегии резервного копирования.

Резервное копирование виртуальных машин Proxmox VE

4. Просмотрите и отправьте работу.

Резервное копирование виртуальных машин Proxmox VE

Нажмите кнопку ниже для загрузки бесплатной пробной версии на 60 дней и ознакомьтесь с более продвинутыми функциями самостоятельно!

Заключение

Pass-through дисков в Proxmox — это незаменимая функция для сценариев, когда виртуальной машине требуется доступ к физическим дискам. Независимо от того, запускаете ли вы ресурсоемкие приложения, управляете пулами ZFS или работаете с конфигурациями аппаратного RAID, прямой доступ к физическим дискам значительно повышает производительность и функциональность.

поделиться:

Категории: Виртуальная машина
Рекомендуемые статьи
Скачать сейчас close-icon