Revision:

Revisions

# Date Author Comment
7a215c45 05/29/2014 06:31 pm Dimitris Aragiorgis

Check drbd helper only in VM capable nodes

Upon change of enabled disk templates Ganeti checks for a valid drbd
helper among all nodes. Let those nodes be only the VM capable ones.

Signed-off-by: Dimitris Aragiorgis <>

f3d59dc2 05/29/2014 02:08 pm Dimitris Aragiorgis

Disable CheckFileStoragePathNotWritable test

..because it fails when runs as root.

Signed-off-by: Dimitris Aragiorgis <>

6e7d075c 05/29/2014 02:08 pm Dimitris Aragiorgis

(grnet) Remove deprecated physical_id if found

In 2.8 disks have been added to runtime files for hotplug support.
Back then physical_id slot existed. Remove this slot in the early
stage of Disk.FromDict() otherwise an exception will be raised.

Signed-off-by: Dimitris Aragiorgis <>

6ebbfc37 05/29/2014 02:08 pm Dimitris Aragiorgis

(grnet) Upgrade runtime files

Each disk entry should include (disk dict, link name, disk uri).

When hotplug was backported in 2.8 access uri was not supported.
Thus the relevant entry for each disk entry might be missing from
the runtime files. Add an empty string in this case....

08879a9d 05/29/2014 02:08 pm Dimitris Aragiorgis

ifdown: Use new methods to unconfigure NICs

We unconfigure a NIC (invoke ifdown script) during:

  • instance cleanup
  • finalizing successful migration on source node
  • hot-unplugging a NIC

In case of migration we do only a local cleanup.

Signed-off-by: Dimitris Aragiorgis <>

1fda39c4 05/29/2014 02:08 pm Dimitris Aragiorgis

ifdown: Use new methods to create NIC files

NIC files containing corresponding tap name are created during:

  • instance startup
  • NIC hot-add

For compatibility we continue creating indexed based NIC files along
with uuid based ones.

Signed-off-by: Dimitris Aragiorgis <>

3889f749 05/29/2014 02:08 pm Dimitris Aragiorgis

ifdown: Introduce _UnconfigureNIC() helper method

This method takes a NIC object, creates the proper invironment
and invokes ifdown script.

It takes an extra boolean argument only_local which is passed
to ifdown script as the second positional argument. It states...

79f3e9e9 05/29/2014 02:08 pm Dimitris Aragiorgis

ifdown: Make Read/LoadKVMRuntime classmethods

.. and make LoadKVMRuntime() take instance_name rather than the
whole instance object as first argument. This will be needed during
instance cleanup where we the instance object is not available.

We are going to retrieve current NIC configuration from the runtime...

0d2863a2 05/29/2014 02:08 pm Dimitris Aragiorgis

ifdown: Extract env creation from ConfigureNic()

Introduce new helper method that creates the environment passed
to ifup/ifdown scripts. Instance tags and NIC index will be passed
only during ifup script since only then are available and
valid. Both can change until a NIC gets removed and thus will not...

aec254f5 05/29/2014 02:08 pm Dimitris Aragiorgis

ifdown: Introduce helper methods

Until now Ganeti upon TAP creation, a NIC file was created
under $RUNDIR/kvm-hypervisor/nic/<instance_name>/<nic_index>

Since NICs have obtained a UUID, we are going to create another
file named after its UUID. This will be needed during ifdown...

18f16482 05/29/2014 02:08 pm Dimitris Aragiorgis

ifdown: Change kvm-if* scripts

  • Rename kvm-vif-bridge to kvm-ifup-custom
  • Search if /etc/ganeti/kvm-if*-custom is available
    and execute it instead
  • Pass positional argument to custom script

Signed-off-by: Dimitris Aragiorgis <>

36774e23 05/29/2014 02:08 pm Dimitris Aragiorgis

ifdown: Add example kvm-ifdown script

This script currently does nothing more that calling user the
user provided one if it exists.

User provided script should be placed under /etc/ganeti/
and named `ganeti-kvm-ifdown`.

Signed-off-by: Dimitris Aragiorgis <>

d43a4dd9 05/29/2014 02:08 pm Dimitris Aragiorgis

(ipfix) Allow NICs with mode=routed and ip=none

This allows us to define an IPv6 only network (currently with a
dummy IPv4 network) with connectivity mode 'routed' and let
the NICs inside this network have only IPv6 address (auto-generated
from their MAC and the network's prefix)....

f665d9de 05/29/2014 02:08 pm Dimitris Aragiorgis

(ext) Do not remove disks if --keep-disks and DT_EXT

Signed-off-by: Dimitris Aragiorgis <>

1a1af037 05/29/2014 02:08 pm Dimitris Aragiorgis

(ext) Override disk_cache hvp with disk param in ext

This is a hack that brings disk_cache hypervisor param
at disk level. This is supported only for disks of ext
template that allow arbitrary params. The corresponding
param that should be used is 'cache'....

764fce21 05/29/2014 02:08 pm Dimitris Aragiorgis

(ext) Pass disk geometry in kvm command

Currently we allow this feature only for ext templates that
allow arbitrary params per disk. If both 'heads' and 'secs'
params are given then 'cyls' is calculated from the disk size.

TODO: export these params in IDISK_PARAMS since the can be...

dc80cc40 05/29/2014 02:08 pm Dimitris Aragiorgis

(ext) Export logical_id info to hooks env

DISK_ID as the second part of logical_id

Signed-off-by: Dimitris Aragiorgis <>

587832ed 05/29/2014 02:07 pm Dimitris Aragiorgis

(b64) Use base64 encoding in networks' bitarrays

This is needed for GRNET'S production environment.

Signed-off-by: Dimitris Aragiorgis <>

7d81bb8b 05/29/2014 02:07 pm Dimitris Aragiorgis

(snap) Snapshot support for ExtStorage

Extend existing RPC params with the snapshot name and
add allow snapshot not only for LVM but also for EXT.

Signed-off-by: Dimitris Aragiorgis <>

ab0c6a39 05/29/2014 02:07 pm Dimitris Aragiorgis

(grnet) Move disk options before nic ones in kvm command

Older versions of Ganeti did ensure that during startup
disk devices will be inserted before nic devices in PCI
configuration space. KVM inserts devices to PCI slots
depending on the order of command line options....

8e4aacdc 05/29/2014 02:07 pm Ilias Tsitsimpis

(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 for
ExtStorage devices will be 'kernelspace'.

Update the man page for gnt-instance to state that ExtStorage templates...

6c6b4df2 05/29/2014 02:07 pm Ilias Tsitsimpis

(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 instance
creation. This patch fixes this and also fixes a typo in
'_VerifyDiskModification'....

13d30fe9 05/29/2014 02:07 pm Ilias Tsitsimpis

(2.13) Implement GetUserspaceAccessUri for ExtStorage

Allow ExtStorage devices to support userspace access.
The 'attach' script of an ExtStorage provider is now allowed to return
more than one line. The first line will contain as always the block
device path. Each one of the extra lines will contain a URI to be used...

87e9bdb7 05/29/2014 02:07 pm Ilias Tsitsimpis

(2.13) Move ExtStorage code out from bdev

Move the ExtStorage related code out from bdev to a new
file called 'extstorage.py'.

Signed-off-by: Ilias Tsitsimpis <>
Signed-off-by: Thomas Thrainer <>
Reviewed-by: Thomas Thrainer <>...

66a8bb56 05/29/2014 02:07 pm Ilias Tsitsimpis

(2.13) Design document for ExtStorage userspace access

This patch extends the 'shared-storage' design document and more
specifically the ExtStorage Interface to support userspace disk access.

Signed-off-by: Ilias Tsitsimpis <>
Signed-off-by: Thomas Thrainer <>...

ffa2756e 05/29/2014 02:07 pm Ilias Tsitsimpis

(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 <>
Signed-off-by: Klaus Aehlig <>...

4f3bdf5a 05/29/2014 02:07 pm Ilias Tsitsimpis

(2.13) Make 'access' an optional disk parameter

This patch makes 'access' an optional disk parameter just like
spindles, mode, name, vg and metavg. This option can only be set to
'kernelspace' or 'userspace'. When 'userspace' is used, the instance
will access this disk directly without going through a block device....

fc1ca919 05/29/2014 02:07 pm Ilias Tsitsimpis

(2.13) 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 was
causing the 'params' slot to not be written in the config file.

Signed-off-by: Ilias Tsitsimpis <>...

7f5289fd 05/29/2014 02:07 pm Ilias Tsitsimpis

(2.13) Rename DiskParams to GroupDiskParams

DiskParams was used for the cluster/group disk parameters type. This
patch renames it to GroupDiskParams and uses the DiskParams type for
the parameters of one single Disk object.

Signed-off-by: Ilias Tsitsimpis <>...

7f29311a 05/29/2014 02:07 pm Klaus Aehlig

(2.11) Add andRestArguments to IDiskParams

In this way, we cann pass through the opaque parameters
required for disk creation and modification in the case of
external storage.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>...

88dbf231 05/29/2014 02:07 pm Klaus Aehlig

(2.11) Add function providing the canonical andRestArguments

The field catching the remaining fields will always be of the same
shape, so add a function for this to make usage simple.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>...

c26548b8 05/29/2014 02:07 pm Klaus Aehlig

(2.11) Add genAndRestArguments :: Gen (Map String JSValue)

So that objects using AndRestArguments are available for testing.
As the AndRestArguments are intended for passing through additional
parameters passed on the command line, we restrict them to the...

759288ed 05/29/2014 02:07 pm Klaus Aehlig

(2.11) Add additional constructor AndRestArguments to OptionalType

A field of this type will capture all the remaining fields
of an object as JSValues. Obviously, the intended use is
to have precisely one such field. This mechanism will allow
to pass opaque values trough, as it is, e.g., required for...

9d507046 05/29/2014 02:07 pm Ilias Tsitsimpis

(2.11) Add 'provider' to IDiskParams

IDISK_PROVIDER was included in python's IDISK_PARAMS, so it
should also be included in the Haskell code.

Now that luxid creates and enqueues jobs, without this patch the
ExtStorage interface is broken as the user can not pass the disk...

d4928417 05/29/2014 02:07 pm Klaus Aehlig

(2.11) Make BlockDev subclasses adhere the interface for Create

In commit 702c3270 two new parameters were added to the
Create function of BlockDev. Make subclasses also adhere
this specification.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

3317a3e5 05/29/2014 02:07 pm Klaus Aehlig

(2.11) Make BlockDev subclasses adhere to new interface

In commit 702c3270 two new parameters were added to the
constructor of BlockDev. Make the subclassess accept these
additional parameters as well.

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>

9242db4a 05/29/2014 02:07 pm Dimitris Aragiorgis

(2.11) Make disk.name and disk.uuid available in bdev

Until now Disk name and uuid was not available on bdev level.
In case of ExtStorage, this info is useful, and may be for other
templates in the future too.

This patch treats the name and uuid object slots just like the size...

d93e2477 05/29/2014 02:07 pm Dimitris Aragiorgis

(2.13) kvm: Add migration capabilities as an hvparam

Latest QEMU versions support various migration capabilities. Each
can be enabled/disabled with 'migrate_set_capability' monitor
command.

Version 1.7.0 defines x-rdma-pin-all, auto-converge, zero-blocks,...

a2f9ee87 05/29/2014 02:07 pm Dimitris Aragiorgis

(2.8r) Workaround for Issue 621

Upon LUNetworkDisconnect() and LUNetworkConnect() try to acquire
all cluster's instances.

By that _LS_ACQUIRE_ALL acquire mode is set and not
_LS_ACQUIRE_EXACT and thus the deleted lock does cause any problem.

NOTE: This workaround is not merged upstream. They prefer to have...

4922cd73 05/28/2014 06:20 pm Jose A. Lopes

'Raise' called inside 'CheckPrereq' needs the prereq kw

This patch fixes the missing 'prereq' keyword in calls to 'Raise' in
the control flow of 'CheckPrereq', and updates the tests.

Signed-off-by: Jose A. Lopes <>
Reviewed-by: Hrvoje Ribicic <>

b3aa93a2 05/26/2014 06:03 pm Klaus Aehlig

Use more efficient statistics for the standard deviation

Instead of using the full sample as statistics providing
enough information to compute the standard deviation, use
a slightly more elaborate one. It contains the standard
statistics count, sum, and sum of squares, which can also...

c5da4cf1 05/26/2014 06:03 pm Klaus Aehlig

Use statistics updates when allocating on pairs

When considering the various ways of positioning an instance
on a pair of nodes, make use of the fact that the statistics
are extremely similar (only two nodes changed) and obtain the
new statistics by updating the old one, rather than by recomputing...

f66ae90a 05/26/2014 06:03 pm Klaus Aehlig

Factor score computation through abstract statistics

Logically separate the computation of the cluster score into
two steps: the computation of the abstract statistics and its
evaluation. In this way, we obtain an abstract value which we
can update instead of recomputing it when considering different...

6bb77749 05/26/2014 06:03 pm Klaus Aehlig

Verify the update of the standard deviation statistics

Add a test that verifies that the error introduced by updating
a standard-deviation statistics of a sample with at least two
elements is not too large, as compared to the direct computation.

Signed-off-by: Klaus Aehlig <>...

394a5cb9 05/26/2014 06:03 pm Klaus Aehlig

Add data type for abstract statistics

Our cluster score is a weighted sum of certain sums and
standard deviations of node characteristics. When placing
a single instance, the cluster score of a big number of
quite similar clusters are computed: that of the original...

2b296ad4 05/26/2014 06:03 pm Klaus Aehlig

Relax test requirements

Instead of insisting on perfect equality of score
allow for numerical inaccuracies and consider everything
all differences in the cluster score smaller than 1e-12
negligible. Given that, by default, a cluster with a
score of less than 1e-9 is considered perfectly balanced,...

0f63c080 05/23/2014 01:45 pm Dimitris Aragiorgis

Fix gnt-network client wrt instances report

Let the gnt-network client expect a list of instance names and not
UUIDs as returned by QueryNetworks (by both old and new style query
mechanism).

Signed-off-by: Dimitris Aragiorgis <>
Reviewed-by: Helga Velroyen <>

96092119 05/23/2014 01:45 pm Dimitris Aragiorgis

Fix QueryNetworks wrt instances

QueryNetworks tries to find which instances are connected to which
networks. The query mechanism in Haskell was written back when NICs
referred to a network via its name and not its UUID. Fix luxi to
comply with the current implementation (network slot of NIC object...

a37549ea 05/22/2014 12:02 pm Klaus Aehlig

tiered allocation: try canonical search path first

In tiered allocation, instances are put on the cluster, while they
fit---and once no more instances of the given size can be fit, smaller
instances are tried next. There is obviously some heuristics involved...

399aa2ec 05/22/2014 11:44 am Thomas Thrainer

Add QA config flag for all performance tests

Add a config flag similar to "os", "env" or "rapi" which disables all
performance related tests centrally. The individual config flags for
jobqueue and parallel processing focused tests are not touched.

Also, add the flags to qa-sample.json....

1 2 3 ... 240 Next » (1-50/11958) | Per page: 25, 50, 100

Also available in: Atom