- Apr 20, 2011
-
-
Iustin Pop authored
For whatever reason, my test cluster managed to acquire shared_file_storage_dir with a None value, instead of empty string. This is not flagged in masterd itself, but the node daemon will fail in writing the value to disk, as it calls len() on the received value. Since this is a bad case, we should detect it as soon as possible (we basically shouldn't be able to set it), but in the meantime we at least prevent ssconf writes with such values. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Apollon Oikonomopoulos authored
New versions of KVM support booting from HTTP-hosted ISO images, via libcurl. This patch adds a proper check to allow defining either a sane, absolute path or an HTTP URL as an iso image path. Remove "format=raw" from the cdrom device options when iso_image starts with "(https?|ftp)://", to allow latest KVM versions (qemu-kvm) to boot from HTTP-hosted iso images. Added FILE_OR_URL check to allow booting from HTTP (kvm). Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Named parameters are only handled by zsh completion for the time being. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Add completion generator script for zsh. Using native zsh completion functions we can auto-complete things like instance/node names, job ids, nic/disk/backend parameters etc. The generated completion file can be copied to e.g. /usr/share/zsh/functions/Completion/Unix/_ganeti under Debian, or any other location under $fpath on other systems. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Add suggestions for disk-, nic-, and backend-parameter completion. Also alter autotools/build-bash-completion to ignore the new suggestion types for the moment. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Commit faaabe3c fixed failover behaviour for DTS_INT_MIRROR instances, however it broke migration for DTS_EXT_MIRROR instances, by moving iallocator and node checks from LUInstanceMigrate to TLMigrateInstance. This has the side-effect that the LU called the TL with None for both, node and iallocator when the default iallocator was being used. This patch maintains the iallocator checks in TLMigrateInstance and fixes the LU-TL integration. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
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 28, 2011
-
-
Stephen Shirley authored
Set the default stderr logging level to WARNING so the relevant output can be seen. Signed-off-by:
Stephen Shirley <diamond@google.com> Reviewed-by:
René Nussbaumer <rn@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>
-