(2.13) kvm: Use the new interface during instance start
Use new OpenTap() and _GetNetworkDeviceFeatures() interfacesduring _ExecuteKVMRuntime().
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>Reviewed-by: Hrvoje Ribicic <riba@google.com>
(2.13) monitor: Extend HotAddNic() for advanced features
In case vhost is enabled we have to pass the vhostfds as returned byOpenTap() via SCM_RIGHTS prior issuing netdev_add command with vhostand vhostfds extra arguments.
In case multiqueue is enabled we add the mq and vectors extra...
(2.13) kvm: Refactor _GetNetworkDeviceFeatures() helper
Make _GetNetworkDeviceFeatures() return a tuple of (dict, str, str).The first item should be a dictionary including the enablednetdev/device features (vhost, vnet_hdr, mq). The other two arestrings to be appended to --netdev and --device qemu options....
(2.13) netdev: Refactor OpenTap for future use
Make OpenTap() helper method to take a dictionary with the featuresthat should be enabled or not. Currently these features are: vhost,vnet_hdr, multiqueue.
In case vhost is enabled, along with the tapfds we return a list of...
(2.13) hotplug: Use QMP in VerifyHotplugCommand
This used to check whether a specific hotplug action has succeeded.Use HasPCIDevice() qmp method to verify if the requested deviceexists or not.
(2.13) hotplug: Use QMP in VerifyHotplugSupport
This used to check whether a specific hotplug action is supported.Since everything is about to be done via qmp commands delegate thesechecks to QmpConnection class.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>...
(2.13) monitor: Close socket fd if already connected
We close the socket fd only if we have an active connection.We hide this logic in the public close() method, and allthe actions are moved to a private method.
(2.13) kvm: New _with_qmp decorator
The decorator takes the hypervisor and the instance object as passedto all hotplug related commands and ensures a valid QmpConnection()object is found in hypervisor's qmp attribute.
This decorator is responsible for all actions related to the...
(2.13) qmp: Add Disk hotplugging related methods
HotAddDisk() uses blockdev-add and device_add after getting thedrive fd and passing it with the AddFd() helper method. Please notethat in case of userspace access mode this step will be omitted.
HotDelDisk() uses device_del. Please note that drive_del is...
(2.13) qmp: Add NIC hotplugging related methods
HotAddNic() uses netdev_add and device_add after passing the tapfdto the running process with the GetFd() helper method.
HotDelNic() uses device_del and netdev_del qmp commands.
(2.13) qmp: Helper methods for parsing query-pci output
Introduce GetPCIDevices() that gets the devices of the first PCI busof a running instance, HasPCIDevice() that will be used to verifyif a specific device is correctly hotplugged or not, andGetFreePCISlot() that will be used during hot-add to find the first...
(2.13) qmp: Add helper methods to verify hotplug support
Introduce CheckDiskHotAddSupport() and CheckNicHotAddSupport()helper methods that will be used to verify hotplug support.Both check for fdsend python module and if the required qmpcommands are supported....
(2.13) qmp: Add GetFd() wrapper around getfd command
getfd qmp command will be used to pass an fd using SCM_RIGHTSand name it properly so that NIC hot-add can take place.
(2.13) qmp: Refactor of add-fd and remove-fd commands
Instead of sending the qmp command along with the SCM_RIGHTS controlmessage we send just a blank (idea taken from qemu iotests). Then weinvoke the corresponding command (add-fd, remove-fd) with theregular way (qmp.Execute). Since the qmp connection does not close...
(2.13) utils: Introduce GetFreeSlot() function
Since this is a generic function that implements bitarray logic moveit from kvm to utils so that it can be easily used across all modules.
Make it raise errors.GenericError if it cannot find a free slot in...
(2.13) kvm: Minor refactor of MonitorSocket
Create socket upon connect(), keep the status of connection(self._connected = False) in close(), make existing connect()method protected and let connect() act as a reconnect method.
(2.13) Let drbd disks resync during cluster verify
Commit 9b0e86e issues an error during cluster verify if the statusof DRBD is degraded and if the local disk is not UpToDate.
Still in case of a newly created instance or a newly attached disk with--no-wait-for-sync, if a cluster verify runs it will report errors...
(2.12) Gen nic_type related opts inside _WriteNicConfig()
The xen-hvm hypervisor has two extra hvparams concerning NICS;nic_type, and vif_type. Let _WriteNicConfig() calculate all neededextra options for the instance's NICs based on its hvparams.
(2.12) Fix NIC options in Xen's config files
Commit e32cc48 added wrongly an extra comma between mac andtype in NIC options. Fix this.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>Signed-off-by: Klaus Aehlig <aehlig@google.com>Reviewed-by: Klaus Aehlig <aehlig@google.com>
(2.12) Refactor NIC configuration for Xen
Extract common code between the PVM and HVM Xen hypervisors regardingNIC configuration.
Signed-off-by: Jose A. Lopes <jabolopes@google.com>Reviewed-by: Hrvoje Ribicic <riba@google.com>
(2.12) Move 'ConfigureNIC' to 'hv_base'
... so it can be reused by the Xen hypervisor.
Signed-off-by: Jose A. Lopes <jabolopes@google.com>Reviewed-by: Hrvoje Ribicic <riba@google.com>Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
(2.13) Fix size handling in ExtStorage
Commit 9504487 introduced the Snapshot() method in ExtStrorage,where the snap_size was erroneously exported to the externalscript's environment without making it a string. This patch fixesthat in the following manner: The size/snap_size/grow of a disk are...
(2.13) Check if chroot/SM is used without add-fd support
..and raise HotplugError inside VerifyHotplugSupport(). Thisway disk hot-add is not supported only if chroot or user/poolsecurity model is used AND QMP does not support add-fd command(QEMU versions < 1.7) OR fdsend python module is missing....
(2.13) Support disk hot-add even with chroot or SM
Up until now we did not allow disk hot-add in case of chrootor pool/user security model because the running QEMU processdoes not have access permissions on the disk link.
This patch slightly changes the way we hot-add a disk; before...
(2.13) Some minor kvm refactoring wrt hotplug
Make _CallHotplugCommands() a classmethod, rename _PassTapFd()to _HMPPassFd() and make it a wrapper for MonitorSocket's GetFd().
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>Reviewed-by: Helga Velroyen <helgav@google.com>
(2.13) Add helper methods for passing fds via SCM_RIGHTS
..through qemu monitor sockets using fdsend.
For the hmp the `get-fd` command is used while for the qmp the`add-fd` command is used, where the fd is added to the firstavailable fdset. Currently the first one is used during NIC hot-add...
(2.13) Let the snapshot script be optional
..for the ExtStorage providers. This way we do not breakcompatibility with existing providers that do not implementsuch a functionality.
In case an action that is not supported is requested raisethe proper exception....
(2.13) Update docs wrt snapshot support for ext
Mention the new snapshot script and the new exported variablesin both docs and man pages.
(2.13) Add snap_name/size to the blockdev_snapshot RPC
Currently, this remains unused, until we add support forexplicitly snapshotting instance disks.
(2.13) Support Snapshot() for the ExtStorage interface
The `snapshot` script is added to the interface and the new variablesVOL_SNAPSHOT_NAME and VOL_SNAPSHOT_SIZE are exported to theenvironment.
(2.13) Introduce Snapshot() method at bdev
Currently the Snapshot() method is used only during`gnt-backup export` and is only implemented in the LogicalVolume()class.
This patch makes this method a BlockDev() method, changes itssignature so that it can take both snap_size and snap_name and...
(2.13) Export logical_id info to hooks env
..and let utils compute the hooks environment related to disks.
Until now, the only exported information regarding disks in hookscontext was their size, mode, name and uuid.
With this patch, depending on the disk template, we export the info...
(2.13) Allow NICs with routed mode and no IP
..in case attached to a network.
This allows us to define an IPv6 only network (currently with adummy IPv4 subnet) with connectivity mode 'routed' and let a NICinside this network have only an IPv6 address, e.g. an...
(2.13) Pass the access parameter to ExtStorage template
Add the ExtStorage template to the set of templates that accept the'access' parameter. The default 'access' of the node-group forExtStorage devices will be 'kernelspace'.
Update the man page for gnt-instance to state that ExtStorage templates...
(2.13) Handle IDISK_ACCESS parameter in ComputeDisks
The IDISK_ACCESS disk parameter was not handled in the 'ComputeDisks'function, thus the 'access' parameter was ignored during the instancecreation. This patch fixes this and also fixes a typo in'_VerifyDiskModification'....
(2.13) Implement GetUserspaceAccessUri for ExtStorage
Allow ExtStorage devices to support userspace access.The 'attach' script of an ExtStorage provider is now allowed to returnmore than one line. The first line will contain as always the blockdevice path. Each one of the extra lines will contain a URI to be used...
(2.13) Move ExtStorage code out from bdev
Move the ExtStorage related code out from bdev to a newfile called 'extstorage.py'.
Signed-off-by: Ilias Tsitsimpis <iliastsi@grnet.gr>Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Thomas Thrainer <thomasth@google.com>...
(2.13) Design document for ExtStorage userspace access
This patch extends the 'shared-storage' design document and morespecifically the ExtStorage Interface to support userspace disk access.
Signed-off-by: Ilias Tsitsimpis <iliastsi@grnet.gr>Signed-off-by: Thomas Thrainer <thomasth@google.com>...
(2.13) Add 'access' disk option to man pages
Update 'gnt-instance' man page and document the 'access' disk option.Also fix a typo in 'metavg' disk parameter.
Signed-off-by: Ilias Tsitsimpis <iliastsi@grnet.gr>Signed-off-by: Klaus Aehlig <aehlig@google.com>...
(2.13) Make 'access' an optional disk parameter
This patch makes 'access' an optional disk parameter just likespindles, mode, name, vg and metavg. This option can only be set to'kernelspace' or 'userspace'. When 'userspace' is used, the instancewill access this disk directly without going through a block device....
(2.12) Add support for KVM multiqueue virtio-net
This patch adds support for multiqueue virtio-net1 which sets a number ofqueues (file descriptors) from virtio_net_queues parameter for tap deviceto parallelize packets sending or receiving. Tap devices will be created with...
(2.12) Add DiskParams to Disk object
The 'DiskParams' slot was missing from Haskell's Disk objects.Since Wconfd is now responsible for writting the config file this wascausing the 'params' slot to not be written in the config file.
Signed-off-by: Ilias Tsitsimpis <iliastsi@grnet.gr>...
(2.12) Rename DiskParams to GroupDiskParams
DiskParams was used for the cluster/group disk parameters type. Thispatch renames it to GroupDiskParams and uses the DiskParams type forthe parameters of one single Disk object.
(2.12) QMP: make QmpConnection act as a context manager
This will allow automatic connection and socket cleanup on commandcompletion.
We also repeat the Qmp tests using the context manager. For this to befeasible, we move the test scenario to class variables and modify...
(2.12) QMP: always return the command result
According to the QEMU Machine Protocol Specification, the messages sentby QMP as a response to a command can be of two types: either an errormessage (identified by the "error" key), or a success message(identified by the "return" key)....
(2.12) QMP: keep greeting message version info
QMP will always report the QEMU version and package-specific string inthe greeting message, as per the QEMU Machine Protocol Specification. Westore this information and make it available to users of the monitor....
(2.12) QMP: test supported_commands
Add test for supported_commands.
Signed-off-by: Apollon Oikonomopoulos <apoikos@gmail.com>Signed-off-by: Thomas Thrainer <thomasth@google.com>Reviewed-by: Thomas Thrainer <thomasth@google.com>
(2.12) QMP: raise exception on unsupported QMP command
Raise a special exception, qmp.QmpCommandNotSupported, whenever anunsupported QMP command is about to be executed. This is intended toassist in falling back to the human monitor for hotplug operations. As...
(2.12) QMP: fetch supported commands on connect
Store the set of supported QMP commands inQmpConnection.supported_commands. This allows selective error handlingto give the caller a chance to downgrade to HMP when unsupportedcommands are encountered.
The `query-commands` QMP command used to implement this, appeared in...
(2.12) KVM: move tap control functions to a submodule
Move all tap-related functionality to the hv_kvm.netdev submodule.We rename _OpenTap to OpenTap, since it will now be used as a publicfunction.
Also, change the hv_kvm tests to import the new code....
« Previous 1 2 3 4 5 6 ... 322 Next » (151-200/16089) | Per page: 25, 50, 100
Also available in: Atom