VDS54.RU - Поддержка Unix/Linux серверов ( VPS/VDS и dedicated )

Поддержка Unix/Linux серверов (VPS/VDS и dedicated)

Администрирование серверов. Установка и настройка Directadmin, Amiro.CMS. Услуги администратора.


 
  1: Базовый  
 

Абонентское обслуживание

+ 3 часа администрирования
+ Установка базового ПО
+ Настройка  безопасности
+ Анализ логов
+ Мониторинг загрузки
Аб. плата — 1570 р. / месяц
Установка — 750 р. за сервер

ЗАКАЗАТЬ »   

 
     
  2: Расширенный  
 

Абонентское обслуживание

+ 7 часа администрирования
+ Установка базового ПО
+ Настройка  безопасности
+ Анализ логов
+ Мониторинг загрузки
Аб. плата — 3070 р. / месяц
Установка — 750 р. за сервер

ЗАКАЗАТЬ »   

 
     
  3: Экстра  
 

Абонентское обслуживание

+ 20 часа администрирования
+ Установка базового ПО
+ Настройка  безопасности
+ Анализ логов
+ Мониторинг загрузки
Аб. плата — 6070 р. / месяц
Установка — 750 р. за сервер

ЗАКАЗАТЬ »   

 
     
 

Проброс USB устройства внутрь гостевой OS, используя KVM

19.06.11 21:12

Появилась задача пробросить USB флешку в гостевую FreeBSD. На сервере используется виртуализация KVM.

После поисков и чтения устаревших постов на форумах, решение таки было найдено в официальной документации по libvirt. Отсюда вывод, начинать надо именно с нее.

USB and PCI devices attached to the host can be passed through to the guest using the hostdev element. since after 0.4.4 for USB and 0.6.0 for PCI (KVM only)

Находим, на какой шине находится устройство USB:

# lsusb
Bus 007 Device 002: ID 058f:6387 Alcor Micro Corp. Transcend JetFlash Flash Drive
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

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

# cat usb.device.xml
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <address bus='007' device='002'/>
      </source>
    </hostdev>

Подключаем к VPS:

# virsh attach-device <domain> <file>

В нашем случае примерно так:

# virsh attach-device vm300 usb.device.xml

Где vm300 — это имя VM (VPS) или домен, как принято называть. А usb.device.xml — это конфиг в формате XML с данными USB устройства.

Таким образом устройство сразу же должно стать доступным внутри гостевой OS. Чтобы закрепить данные, т.е. обновить XML конфиг самой виртуальной машины, делаем:

# virsh dumpxml <domain> > /full/path/to/<domain>.xml
# virsh define <file>

Что для нашего пример выглядит так:

# virsh dumpxml vm300 > vm300.xml
# virsh define vm300.xml

Полный конфиг может выглядеть так:

<domain type='kvm' id='23'>
  <name>vm300</name>
  <uuid>11b6aa11-e215-e4f0-20a3-c76a0c0958b7</uuid>
  <memory>524288</memory>
  <currentMemory>524288</currentMemory>
  <vcpu>1</vcpu>
  <os>
    <type arch='i386' machine='pc'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <apic/>
    <pae/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/kvm-freebsd</emulator>
    <disk type='block' device='disk'>
      <source dev='/dev/pool1/vm300'/>
      <target dev='hda' bus='ide'/>
    </disk>
    <disk type='file' device='cdrom'>
      <source file='/home/isos/freebsd/7.4/FreeBSD-7.4-RELEASE-i386-disc1.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
    </disk>
    <interface type='bridge'>
      <mac address='54:52:00:79:b5:eb'/>
      <source bridge='kvmbr0'/>
      <target dev='vnet2'/>
    </interface>
    <interface type='bridge'>
      <mac address='54:52:00:47:5c:72'/>
      <source bridge='kvmbr1'/>
      <target dev='vnet3'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/6'/>
      <target port='0'/>
    </serial>
    <console type='pty' tty='/dev/pts/6'>
      <source path='/dev/pts/6'/>
      <target port='0'/>
    </console>
    <input type='mouse' bus='ps2'/>
    <hostdev mode='subsystem' type='usb'>
      <source>
        <address bus='7' device='2'/>
      </source>
    </hostdev>
  </devices>
</domain>

Полезные ссылки:

» http://libvirt.org/formatdomain.html#elementsUSB

» http://wiki.libvirt.org/page/QEMUSwitchToLibvirt




Рубрики: Debian KVM Qemu virsh FreeBSD libvirt



« FreeBSD cpu_reset: Stopping other CPUs внутри KVM   В начало   Как принудительно остановить контейнер OpenVZ »





При перепечатке, копировании материалов с сайта прямая и активная ссылка, разрешенная для индексации поисковыми роботами, на источник www.vds54.ru обязательна!



[ Новости ] [ Контакты ] [ Регламент ] [ Порядок работы ] [ Как оплатить ] [ Администирование серверов ] [ Карта сайта ]

2005-2012 © VDS54.RU - Администрирование серверов в Новосибирске. Настройка web и хостинг серверов. Панель управления Directadmin.   Консультационный центр.   Платный VPS/VDS хостинг на базе OpenVZ.   База знаний по хостинг панели Директадмин. Заметки и решения.
 2009-2012 © Powered by NSK21.RU. Copyright © VDS54.RU 2010-2012 All rights reserved. Все права защищены.

Работает на Amiro CMS - Free