Как подключить реальный жесткий диск к виртуальной машине в Proxmox: Руководство для начинающих

Приветствую, коллеги! Сегодня разберем полезный трюк для тех, кто работает с Proxmox VE. Как отмечает эксперт по виртуализации Майкл Каплан:

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

Представьте: у вас есть отдельный физический диск (например, старый SSD с важными данными или новый вместительный HDD), и вы хотите, чтобы виртуальная машина видела его как родной, а не как виртуальный файл. Именно это мы и сделаем!

Зачем это нужно?

  • Прямой доступ к данным на физическом носителе
  • Максимальная производительность диска в ВМ1
  • Использование дисков с уже установленной ОС
  • Экономия места на основном хранилище Proxmox

⚠️ Важное предупреждение:

  • Proxmox не сможет использовать этот диск параллельно с ВМ
  • Все данные на диске будут контролироваться только виртуальной машиной
  • Обязательно сделайте бэкап данных перед началом!

🔧 Шаг 1: Находим «паспорт» диска

Первым делом узнаем идентификатор диска. Почему не /dev/sda? Потому что эти буквы меняются после перезагрузки, а нам нужно постоянное имя.

  1. Подключаемся к серверу Proxmox через SSH или открываем терминал (Shell) в веб-интерфейсе
  2. Вводим команду:
    ls -l /dev/disk/by-id/
  3. Видим список дисков. Нам нужны строки, начинающиеся на ata- (для SATA) или nvme- (для SSD). Пример:
    ata-Samsung_SSD_870_EVO_500GB_S59CNM0N123456 -> ../../sda
  4. Копируем полное название диска (без -> ../../sda). В нашем случае это:
    ata-Samsung_SSD_870_EVO_500GB_S59CNM0N123456

Пояснение: Это уникальный «серийный номер» диска. Используя его, Proxmox всегда найдет устройство, даже если вы переподключите его к другому порту SATA.

🖥️ Шаг 2: Добавляем диск в виртуальную машину

Способ 1: Через терминал (рекомендуется)

Команда:

qm set <ID_ВМ> --<тип_контроллера>1 /dev/disk/by-id/ваш_диск,size=размерG

Пример из жизни:

  • ID нашей виртуальной машины: 101
  • Тип контроллера: virtio
  • Наш диск: ata-Samsung_SSD_870_EVO_500GB_S59CNM0N123456
  • Размер диска: 500G (можно не указывать размер, просто удалите часть команды «,size=500G»).

Команда будет выглядеть так:

qm set 101 --virtio1 /dev/disk/by-id/ata-Samsung_SSD_870_EVO_500GB_S59CNM0N123456,size=500G

Способ 2: Через конфиг файл

  1. Открываем файл конфигурации ВМ:
    nano /etc/pve/qemu-server/101.conf
  2. Добавляем в конец строку:
    virtio1: /dev/disk/by-id/ata-Samsung_SSD_870_EVO_500GB_S59CNM0N123456,size=500G
  3. Сохраняем (Ctrl+O → Enter) и выходим (Ctrl+X)

Дополнение: Для автоматизации вы можете использовать скрипты, например, для подключения нескольких дисков одновременно.

⚙️ Шаг 3: Выбираем тип контроллера – «переводчик» для ВМ

Контроллер — это «переводчик» между физическим диском и виртуальной машиной. Варианты:

Тип Особенности Рекомендации
virtio Максимальная производительность
Требует драйверы для Windows
Лучший выбор для современных систем
scsi Стабильная работа
Поддержка «из коробки» в Linux
Идеален для серверных ОС
sata/ide Универсальная совместимость
Более медленный
Для старых ОС (Windows XP и ранее)

Важно: Для Windows скачайте драйверы virtio перед первым запуском!

✅ Шаг 4: Проверяем и запускаем

  1. Проверяем конфигурацию:
    qm config 101
    Должны увидеть строку с нашим диском
  2. Запускаем виртуальную машину:
    qm start 101
  3. В гостевой ОС:
    • Windows: Откройте «Управление дисками» → инициализируйте и отформатируйте диск
    • Linux: Выполните lsblk → найдите новое устройство (/dev/vdX)

Экспертный совет: Если диск не появился в гостевой ОС, проверьте параметры контроллера и наличие драйверов. Чаще всего проблема именно в этом.

⚠️ Критически важные нюансы

1. Диск должен быть свободен!

Если Proxmox использует диск:

umount /dev/sdX  # Замените X на вашу букву диска

2. Подключение разделов

Для отдельных разделов используйте суффикс -partN:

/dev/disk/by-id/ata-...-part1

3. Резервное копирование

Proxmox не включает такие диски в стандартные бэкапы! Организуйте резервное копирование отдельно.

4. Для NVMe дисков

Используйте PCI Passthrough:

qm set 101 -hostpci0 01:00.0

Адрес устройства найдите через lspci

Примечание: PCI Passthrough требует включения IOMMU в BIOS/UEFI и дополнительной настройки на хосте.

💎 Заключение

Теперь ваш физический диск работает внутри виртуальной машины как родной! Это открывает новые возможности:

  • Подключение архивных HDD с данными
  • Тестирование ПО на реальном железе
  • Перенос «железных» систем в виртуализацию
  • Использование дисков с аппаратным шифрованием

Пробуйте и делитесь опытом в комментариях! Если возникнут вопросы — задавайте, с удовольствием помогу.

P.S. Для сложных случаев (RAID-массивы, GPU Passthrough) есть продвинутые методы. Нужен гайд по PCI Passthrough? Пишите в комментариях!

1 В тестах производительность прямого доступа к диску может быть на 10-15% выше, чем при использовании виртуальных дисков в формате qcow2.

Предыдущая Статья

Как перенести бекап Proxmox VE на другой сервер через внешний диск

Следующая Статья

10 способов перейти от IT-администратора к инженеру DevOps

Написать комментарий

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *