Приветствую, коллеги! Сегодня разберем полезный трюк для тех, кто работает с Proxmox VE. Как отмечает эксперт по виртуализации Майкл Каплан:
«Прямой доступ к физическим дискам — один из наиболее мощных инструментов в арсенале администратора Proxmox, позволяющий объединить гибкость виртуализации с производительностью реального железа»
Представьте: у вас есть отдельный физический диск (например, старый SSD с важными данными или новый вместительный HDD), и вы хотите, чтобы виртуальная машина видела его как родной, а не как виртуальный файл. Именно это мы и сделаем!
Зачем это нужно?
- Прямой доступ к данным на физическом носителе
- Максимальная производительность диска в ВМ1
- Использование дисков с уже установленной ОС
- Экономия места на основном хранилище Proxmox
⚠️ Важное предупреждение:
- Proxmox не сможет использовать этот диск параллельно с ВМ
- Все данные на диске будут контролироваться только виртуальной машиной
- Обязательно сделайте бэкап данных перед началом!
🔧 Шаг 1: Находим «паспорт» диска
Первым делом узнаем идентификатор диска. Почему не /dev/sda? Потому что эти буквы меняются после перезагрузки, а нам нужно постоянное имя.
- Подключаемся к серверу Proxmox через SSH или открываем терминал (Shell) в веб-интерфейсе
- Вводим команду:
ls -l /dev/disk/by-id/
- Видим список дисков. Нам нужны строки, начинающиеся на
ata-
(для SATA) илиnvme-
(для SSD). Пример:ata-Samsung_SSD_870_EVO_500GB_S59CNM0N123456 -> ../../sda
- Копируем полное название диска (без
-> ../../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: Через конфиг файл
- Открываем файл конфигурации ВМ:
nano /etc/pve/qemu-server/101.conf
- Добавляем в конец строку:
virtio1: /dev/disk/by-id/ata-Samsung_SSD_870_EVO_500GB_S59CNM0N123456,size=500G
- Сохраняем (Ctrl+O → Enter) и выходим (Ctrl+X)
Дополнение: Для автоматизации вы можете использовать скрипты, например, для подключения нескольких дисков одновременно.
⚙️ Шаг 3: Выбираем тип контроллера – «переводчик» для ВМ
Контроллер — это «переводчик» между физическим диском и виртуальной машиной. Варианты:
Тип | Особенности | Рекомендации |
---|---|---|
virtio | Максимальная производительность Требует драйверы для Windows |
Лучший выбор для современных систем |
scsi | Стабильная работа Поддержка «из коробки» в Linux |
Идеален для серверных ОС |
sata/ide | Универсальная совместимость Более медленный |
Для старых ОС (Windows XP и ранее) |
Важно: Для Windows скачайте драйверы virtio перед первым запуском!
✅ Шаг 4: Проверяем и запускаем
- Проверяем конфигурацию:
qm config 101
Должны увидеть строку с нашим диском - Запускаем виртуальную машину:
qm start 101
- В гостевой ОС:
- 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.