|
|
Line 1: |
Line 1: |
− | https://blueprints.launchpad.net/nova/+spec/libvirt-virtio-scsi-driver already support controller
| + | redirector: |
| | | |
− | ovirt:
| + | glance image-update centos-minimal --property usb_redirector="{'bus': 'usb', 'type': 'spicevmc'}" |
− | https://github.com/oVirt/ovirt-node
| |
− | kimchi
| |
− | https://github.com/kimchi-project/kimchi
| |
− | | |
− | follow kimii gi
| |
− | yum install xxxx
| |
− | ./autogen.sh --system
| |
− | make
| |
− | make rpm
| |
− | | |
− | autoconf、automake、createrepo、livecd-tools、appliance-tools-minimizer
| |
− | | |
− | (1)selinux common-install.ks.in selinux --disabled
| |
− | (2)recipe/Make.am
| |
− | printf "repo --name=fedora20 --baseurl=http://186.100.8.148/repo/fedora/releases/$(FEDORA)/Everything/${ARCH}/os\n" > repos.ks ;\
| |
− | printf "repo --name=ovirt-node --baseurl=file:///root/rpmbuild/RPMS/noarch\n" >> repos.ks ;\
| |
− | printf "repo --name=kimchi --baseurl=file:///home/kimchi/kimchi-master/rpm/RPMS/x86_64\n" >> repos.ks ;\
| |
− | | |
− | ...
| |
− | This work is licensed under a Creative Commons Attribution 3.0 Unported
| |
− | License.
| |
− | | |
− | http://creativecommons.org/licenses/by/3.0/legalcode
| |
− | | |
− | ====================================================
| |
− | tag
| |
− | Add support for USB 2.0 controller
| |
− | ====================================================
| |
− | | |
− | Users have requirements of using USB device, the detailed information can refer
| |
− | to BP in https://blueprints.launchpad.net/nova/+spec/usb-passthrough.
| |
− | | |
− | If not specify appropriate USB controller for USB device, USB device will
| |
− | use the default piix3-usb-uhci, which results in some problems.
| |
− | | |
− | 1. The low speed of USB device.
| |
− | | |
− | 2. If use spice client to redirect USB device to VM, the mismatched speed may
| |
− | prevent the connection.
| |
− | | |
− | | |
− | USB 2.0 has other good point that it will result in dramatically lower CPU usage
| |
− | when the USB tablet is present for VNC/SPICE.
| |
− | | |
− | As described above, I think that support USB 2.0 controller is valuable in
| |
− | Openstack.
| |
− | | |
− | | |
− | Problem description
| |
− | ===================
| |
− | tag
| |
− | Use cases:
| |
− | | |
− | 1. User creates a VM, the system creates a default ehci USB controller, attach
| |
− | USB tablet to the ehci controller.
| |
− | | |
− | | |
− | Proposed change
| |
− | ===============
| |
− | tag
| |
− | 1. Add function of create ehci controller in libvirt driver when create
| |
− | VM.
| |
− | | |
− | 2. Add function of specify USB controller for USB tablet in libvirt driver
| |
− | when create VM.
| |
− | | |
− | Alternatives
| |
− | ------------
| |
− | | |
− | None
| |
− | | |
− | Data model impact
| |
− | -----------------
| |
− | tag
| |
− | 1. Use object 'LibvirtConfigGuestController' for USB controller in libvirt driver,
| |
− | create ehci xml in 'get_guest_config' function.
| |
− | | |
− | The xml may like:
| |
− | | |
− | <controller type='usb' index='1' model='ehci'/>
| |
− | | |
− | All values of above properties are constant.
| |
− | | |
− | 2. Add 'address' element to USB tablet object 'LibvirtConfigGuestInput',
| |
− | specify ehci controller in 'get_guest_config' function.
| |
− | | |
− | The xml may like:
| |
− | | |
− | <input type='tablet' bus='usb'>
| |
− | | |
− | <address type='usb' bus='1' port='1'/>
| |
− | | |
− | </input>
| |
− | | |
− | The values of address are constant.
| |
− | | |
− | REST API impact
| |
− | ---------------
| |
− | | |
− | None
| |
− | | |
− | Security impact
| |
− | ---------------
| |
− | | |
− | None
| |
− | | |
− | Notifications impact
| |
− | --------------------
| |
− | | |
− | None
| |
− | | |
− | Other end user impact
| |
− | ---------------------
| |
− | | |
− | None
| |
− | | |
− | Performance Impact
| |
− | ------------------
| |
− | | |
− | None
| |
− | | |
− | Other deployer impact
| |
− | ---------------------
| |
− | | |
− | None
| |
− | | |
− | Developer impact
| |
− | ----------------
| |
− | | |
− | None
| |
− | | |
− | Implementation
| |
− | ==============
| |
− | | |
− | Assignee(s)
| |
− | -----------
| |
− | | |
− | Primary assignee:
| |
− | <Jing Yuan>
| |
− | | |
− | | |
− | Work Items
| |
− | ----------
| |
− | Step 1: Create ehci xml in 'get_guest_config' function.
| |
− | | |
− | Step 2: Modify USB tablet object, specify ehci controller for USB tablet
| |
− | in 'get_guest_config' function.
| |
− | | |
− | Dependencies
| |
− | ============
| |
− | | |
− | None
| |
− | | |
− | | |
− | Testing
| |
− | =======
| |
− | | |
− | None
| |
− | | |
− | | |
− | Documentation Impact
| |
− | ====================
| |
− | | |
− | None
| |
− | | |
− | | |
− | References
| |
− | ==========
| |
− | | |
− | https://blueprints.launchpad.net/nova/+spec/usb-passthrough
| |
− | | |
− | | |
− | ..
| |
− | This work is licensed under a Creative Commons Attribution 3.0 Unported
| |
− | License.
| |
− | | |
− | http://creativecommons.org/licenses/by/3.0/legalcode
| |
− | | |
− | ===================================
| |
− | Support function of USB-redirection
| |
− | ===================================
| |
− | | |
− | We provide VDI(Virtual Desktop)solution for customers, our customers have strong
| |
− | requirements for using USB devices.
| |
− | | |
− | The typical use cases and our solutions are described as below:
| |
− | Customers want to use local USB printers or USB scanners with
| |
− | TC(Thin-Client), because remote desktop protocol like ICA have already supported
| |
− | USB-redirection, so customers only need to attach USB device to TC, the protocol
| |
− | can map USB device to VM.
| |
− | | |
− | | |
− | Problem description
| |
− | ===================
| |
− | tag
| |
− | | |
− | Use cases 1:
| |
− | | |
− | A end user wants to print some documents in cloud environments, him perform the
| |
− | following steps:
| |
− | | |
− | 1. Create a VM with virtual USB-redirection devices.
| |
− | | |
− | 2. Use TC with spice client to connect to VM, insert USB printer to TC, select
| |
− | printer to redirect to VM in GUI of spice client.
| |
− | | |
− | 3. User can see printer in VM and use printer to print documents.
| |
− | | |
− | Use cases 2:
| |
− | | |
− | A end user wants to take a video chat with friends in cloud environments, him
| |
− | perform the following steps:
| |
− | | |
− | 1. Create a VM with virtual USB-redirection devices.
| |
− | | |
− | 2. Use TC with spice client to connect to VM, insert USB camera to TC, select
| |
− | camera to redirect to VM in GUI of spice client.
| |
− | | |
− | 3. User can see camera in VM and take video chat with friends.
| |
− | | |
− | Use cases 3:
| |
− | | |
− | A end user wants a on-line shopping, which needs a USB-key for more secure payment.
| |
− | | |
− | 1. Create a VM with virtual USB-redirection devices.
| |
− | | |
− | 2. Use TC with spice client to connect to VM, insert USB-key to TC, select
| |
− | USB-key to redirect to VM in GUI of spice client.
| |
− | | |
− | 3. User can see USB-key in VM, the security check and payment plugin in
| |
− | Browser like IE can use USB-key for authentication.
| |
− | | |
− | | |
− | Proposed change
| |
− | ===============
| |
− | tag
| |
− | | |
− | 1. Add function of create USB-redirection device in libvirt driver.
| |
− | | |
− | 2. Support specify USB-redirection device in image properties and create VM
| |
− | with this kind of image. If libvirt driver find this kind of property it then
| |
− | construct related xml.
| |
− | | |
− | Alternatives
| |
− | ------------
| |
− | | |
− | None
| |
− | | |
− | Data model impact
| |
− | -----------------
| |
− | tag
| |
− | | |
− | 1. Add USB-redirection device data object in libvirt driver, the libvirt xml may
| |
− | like:
| |
− | | |
− | <redirdev bus='usb' type='spicevmc'>
| |
− | | |
− | <address type='usb' bus='1' port='2'/>
| |
− | | |
− | </redirdev>
| |
− | | |
− | All values of above properties are constant. The USB-redirection device use port
| |
− | 2 of echi controller. BTW: The BP about echi controller can refer to
| |
− | https://review.openstack.org/#/c/88334/
| |
− | | |
− | 2. Use key-value to specify USB-redirection device in image, the command may like:
| |
− | | |
− | glance image-update img1 --property redirection_devices="{'bus': usb, 'type': 'spicevmc'}" | |
− | | |
− | REST API impact
| |
− | ---------------
| |
− | | |
− | None
| |
− | | |
− | Security impact
| |
− | ---------------
| |
− | | |
− | None
| |
− | | |
− | Notifications impact
| |
− | --------------------
| |
− | | |
− | None
| |
− | | |
− | Other end user impact
| |
− | ---------------------
| |
− | | |
− | None
| |
− | | |
− | | |
− | Performance Impact
| |
− | ------------------
| |
− | | |
− | None
| |
− | | |
− | | |
− | Other deployer impact
| |
− | ---------------------
| |
− | | |
− | None
| |
− | | |
− | | |
− | Developer impact
| |
− | ----------------
| |
− | | |
− | None
| |
− | | |
− | Implementation
| |
− | ==============
| |
− | | |
− | Assignee(s)
| |
− | -----------
| |
− | | |
− | Primary assignee:
| |
− | <Jing Yuan>
| |
− | | |
− | | |
− | Work Items
| |
− | ----------
| |
− | Step 1: Add object of USB-redirection device in libvirt driver.
| |
− | | |
− | Step 2: Create VM with image which contains property of USB-redirection device.
| |
− | | |
− | Dependencies
| |
− | ============
| |
− | | |
− | None
| |
− | | |
− | | |
− | Testing
| |
− | =======
| |
− | | |
− | None
| |
− | | |
− | | |
− | Documentation Impact
| |
− | ====================
| |
− | | |
− | It is necessary to add doc for how to use this new function.
| |
− | | |
− | | |
− | References
| |
− | ==========
| |
− | | |
− | None
| |
glance image-update centos-minimal --property usb_redirector="{'bus': 'usb', 'type': 'spicevmc'}"