- Mar 18, 2011
-
-
Apollon Oikonomopoulos authored
It is now possible to allow adopting a disk during gnt-instance modify time, as follows: gnt-instance modify --disk add:adopt=/path/to/disk (blockdev) or gnt-instance modify --disk add:adopt=<lvname> (plain) We do the same checks as during instance creation. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Iustin Pop authored
Patches db366d9a and aac4511a added support for EXT_MIRROR instances, but inadvertently introduced a bug: for INT_MIRROR cases, we don't need (actually we can't support) neither an iallocator nor a target node. To fix this, we move the iallocator/node checks in CheckPrereq (or respectively in the tasklet CheckPrereq), where we have access to the instance configuration, and additionally we check for and prevent passing either of these two for INT_MIRROR instances. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Apollon Oikonomopoulos authored
DTS_INT_MIRROR better contrasts DTS_EXT_MIRROR. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> [iustin@google.com: updated patch for changed context] Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Apollon Oikonomopoulos authored
Make burnin work with -t sharedfile and update burnin's help. Shared block storage support is *not* included, as currently there is no way to provision shared block storage from within Ganeti. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Apollon Oikonomopoulos authored
Disable host cache for externally mirrored disks to avoid cache incoherency. Without this, migrations between the same two nodes may end up in disk corruption. This is a runtime override of cluster defaults, mostly a workaround. Unfortunately, we cannot use cmdlib._CheckHVParams, as we want to check the hypervisor parameters *in conjunction* with the disk template, which is part of the instance definition. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Apollon Oikonomopoulos authored
Modify LUFailoverInstance to enable shared storage instances to failover. Shared storage instance failover requires either a target node or an iallocator to determine the target node. If none is given, the cluster default iallocator is used. The hook environment variables {OLD,NEW}_SECONDARY will be blank for shared storage instances. Locking behaviour is the same as for instance migration. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> [iustin@google.com: revert the DTS_NET_MIRROR specific changes] Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Apollon Oikonomopoulos authored
Modify LUNodeMigrate to provide node migration for nodes with instances using shared storage. gnt-node migrate has to be passed an iallocator for migration of shared storage instances to be performed. When using a shared storage backend, all cluster nodes are locked. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Apollon Oikonomopoulos authored
Modify LUMigrateInstance and TLMigrateInstance to allow instance migrations for instances with DTS_EXT_MIRROR disk templates. Migrations of shared storage instances require either a target node, or an iallocator to determine the target node. If none is given, the cluster default iallocator is used. Locking behaviour: If the iallocator is used, then initially all nodes are locked and subsequently only the locks on the source node and the target node selected by the iallocator are retained. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> [iustin@google.com: small changes in cmdlib.py] Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Apollon Oikonomopoulos authored
Add DST_NODE_OPT to cli.py to use for directly specifying the target node during migration/failover. gnt-instance failover/migrate also get passed an iallocator option. gnt-node failover/migrate get only a target_node option. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Apollon Oikonomopoulos authored
Add iallocator and target_node slots to OpMigrateInstance and OpFailoverInstance to facilitate shared-storage-backed instance mobility. Add iallocator slot to OpMigrateNode (no explicit target_node in this case). Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Apollon Oikonomopoulos authored
Make cmdlib.IAllocator shared-storage-aware. IAllocator requires secondary nodes only on DTS_NET_MIRROR disk templates and requires no secondaries for DTS_EXT_MIRROR templates. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Apollon Oikonomopoulos authored
This patch introduces basic shared block storage support. It introduces a new storage backend, bdev.PersistentBlockDevice, to use as a backend for shared block storage. The new bdev requires a new BLOCKDEV_DRIVER_MANUAL constant with the value "manual" and uses it as the first part of the block device unique_id. A new disk template, DT_BLOCK is introduced as well and added to DTS_EXT_MIRROR and DTS_MAY_ADOPT. Also added DTS_MUST_ADOPT constant and use it to check for the presence of the adopt keyword during LU invocation. We enforce the /dev/disk limitation upon adoption, but we allow block devices to reside anywhere under /dev. This is very basic support and includes no storage manipulation (provisioning, resizing, renaming) which will have to be implemented through a "driver" framework. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> [iustin@google.com: slight changes to bdev.py] Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Apollon Oikonomopoulos authored
The bdev_sizes multi-node RPC call returns the sizes of the requested block devices on the desired nodes. Its intended use is to verify the existence of a block device on a given node for shared block storage support. Block device paths are expected to lie under constants.BLOCKDEV_DIR ("/dev/disk" by default), where persistent symlinks for block devices are assumed to exist. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> [iustin@google.com: small changes in backend.py] Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Apollon Oikonomopoulos authored
Use DTS_MIRRORED to indicate mirrored disk templates that allow migrations/failover. DTS_MIRRORED is the union of DTS_EXT_MIRROR and DTS_NET_MIRROR. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> Reviewed-by:
Michael Hanselmann <hansmi@google.com> Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Apollon Oikonomopoulos authored
Add shared file storage handling during cluster initialization. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Apollon Oikonomopoulos authored
This patch introduces core file storage support, consisting of the following: A configure-time switch for enabling/disabling shared file storage support and controlling the shared file storage location: --with-shared-file-storage-dir=. Shared file storage configuration is then available as _autoconf.ENABLE_SHARED_FILE_STORAGE and _autoconf.SHARED_FILE_STORAGE_DIR and there is a cluster-wide ssconf key named "shared_file_storage_dir" for changing the file location. A new disk template named "sharedfile" (DT_SHARED_FILE), using ganeti.bdev.FileStorage. Auxiliary functions in lib/config.py to handle shared file storage. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> [iustin@google.com: small style fixes] Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Apollon Oikonomopoulos authored
Add doc/design-shared-storage.rst to document the proposed changes and update Makefile.am respectively. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr> Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Mar 17, 2011
-
-
Stephen Shirley authored
This isn't only used during cluster merge. Signed-off-by:
Stephen Shirley <diamond@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Mar 10, 2011
-
-
Stephen Shirley authored
There is currently no way to reset oob_program back to its default from the cmdline, which causes problems for cluster-merge. This patch means that the following now works: gnt-cluster modify --node-parameters oob_program= Signed-off-by:
Stephen Shirley <diamond@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Nodes can return unknown instances, so we shouldn't use the name as an index without checking. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
If opening the log file fails, then we shouldn't attempt to use that variable. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Mar 09, 2011
-
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Mar 08, 2011
-
-
Michael Hanselmann authored
The cfgupgrade tool was designed to be idempotent, that means it could be run several times and still give produce the correct result. Ganeti 2.4 moved the file containing the RAPI users to a separate directory (…/lib/ganeti/rapi/users). If it exists, cfgupgrade would automatically move an existing file from …/lib/ganeti/rapi_users and replace it with a symlink. Unfortunately one of the checks for this was incorrect and, when run multiple times, replaces the users file at the new location with a symlink created during a previous run. In addition the “--dry-run” parameter to cfgupgrade was not respected. Unittests are updated for all these cases. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Mar 07, 2011
-
-
Iustin Pop authored
NEWS update and version bump. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
* devel-2.3: Fix LUClusterRepairDiskSizes and rpc result usage Fix RPC mismatch in blockdev_getsize[s] RAPI: fix evacuate node resource Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
Also specifies the comma-escaping feature. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
* devel-2.2: Fix LUClusterRepairDiskSizes and rpc result usage Fix RPC mismatch in blockdev_getsize[s] Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Mar 04, 2011
-
-
Iustin Pop authored
This LU was introduced before the RPC result conversion from .data to .payload, and it has managed to keep the old-style usage (how? it's the only LU that does so). Fix by changing to payload, and add some extra logging for easier diagnose. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Stephen Shirley <diamond@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com> (cherry picked from commit 043beb38)
-
Iustin Pop authored
Commit 92fd2250 added consistency checks in the RPC layer, which broke the call_blockdev_getsizes RPC call (declared with 's' at the end in rpc.py, without 's' in the node daemon). The immediate fix is to correct the rpc function name, the long term one will be to remove this duplication. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Stephen Shirley <diamond@google.com> (cherry picked from commit ccfbbd2d)
-
Iustin Pop authored
PollJob returns the whole op_results, hence a list of opcode results. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Mar 02, 2011
-
-
Guido Trotter authored
* origin/stable-2.4: Fix typo in kvm-ifup script NEWS: Replace smartquotes, start lines with uppercase Update NEWS and release 2.4.0 rc3 Fix potential data-loss bug in disk wipe routines Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Michael Hanselmann authored
Reported-by:
Bas Tichelaar <bas@30loops.net> Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Mar 01, 2011
-
-
Michael Hanselmann authored
- Sphinx converts ASCII quotes ("") to smartquotes (“”) automatically - Sentences or list items start with an uppercase letter - Changed description of non-verbose “gnt-* list” output slightly Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Feb 28, 2011
-
-
Michael Hanselmann authored
The exception was never actually raised. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Adeodato Simo <dato@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
* devel-2.4: 1-char comment typo fix Expand some acronyms, add to glossary query_unittest: Fix argument to set() Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Iustin Pop authored
For the 2.4 release, we only add the missing RPC calls. However, this needs to be fixed properly, by preventing usage of mis-configured disks. Also add a bit more logging so that it's directly clear on which node the wipe is being done. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Feb 25, 2011
-
-
Stephen Shirley authored
Signed-off-by:
Stephen Shirley <diamond@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Feb 24, 2011
-
-
Stephen Shirley authored
Signed-off-by:
Stephen Shirley <diamond@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Feb 23, 2011
-
-
René Nussbaumer authored
Commit e431074f introduced an uncatched bug. This patch fixes this. The set is expecting a list or iteratable to work on, so it splitted the provided instance name into a set of characters. This caused the exp_status never been set and therefore not catched in one assert rule further below who checks that every status was tested. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-