- Oct 26, 2012
-
-
Michael Hanselmann authored
The configuration is no longer used for verifying file storage paths. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Oct 25, 2012
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Michele Tartara <mtartara@google.com>
-
Michael Hanselmann authored
An earlier version of this patch series verified all paths in cmdlib in the master daemon. With this change all that verification code is moved to bdev to run inside the node daemon. The checks are much stricter now--it is no longer possible to use forbidden paths (e.g. /bin) to manipulate file storage devices (once these checks are being used). Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Oct 19, 2012
-
-
Iustin Pop authored
This patch adds a small helper function to clear an LV's tags, and calls it at SetInfo time. We need this to be able to correctly track instance renames, once we will call SetInfo at such times. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
I wanted to write that snippet the third time, which is too much :) Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Oct 05, 2012
-
-
Michael Hanselmann authored
My local pylint didn't complain. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Bernardo Dal Seno <bdalseno@google.com>
-
Michael Hanselmann authored
- LoadAllowedFileStoragePaths: Loads a list of allowed file storage paths from a file - CheckFileStoragePath: Checks a path against the list of allowed paths The unit test for “utils.IsBelowDir” is updated with cases which weren't tested before. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Aug 23, 2012
-
-
Iustin Pop authored
Debian Wheezy will ship with this version, and it has many improved checks compared to 0.6, so let's: - bump version in the docs - silence some new checks that are wrong due to our indent=2 instead of 4 - fix lots of errors in the code where the indentation was wrong by 1 or 2 spaces - fix a few cases of == True, False, None and replace with 'is' - re-indent some cases where the code is OK, but pep8 complains Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Jul 19, 2012
-
-
Iustin Pop authored
It seems this was not updated since the move to static minors… Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Agata Murawska <agatamurawska@google.com>
-
- Jul 05, 2012
-
-
Iustin Pop authored
There are two bugs in the current resize code, affecting mostly DRBD. First, due to bugs in old DRBD versions (pre 8.0.14), the code currently calls `drbdsetup resize' on both the primary or secondary. However, this is actually wrong per current DRBD (from drbdsetup(8)): resize This causes DRBD to reexamine the size of the device's backing storage device. To actually do online growing you need to extend the backing storages on both devices and call the resize command on one of your nodes. So calling it just on the primary node should be enough. However, we can't simply remove the calls to the secondary nodes, since that would break the growth of the underlying storage (LVM) on the secondary. Which leads to the second existing bug: we call resize on each node, even before finish the growth of the underlying storage. This can leads to all kind of issues if DRDB is not well behaved. So to fix both these bugs, we have to extend the current RPC call with another parameter, which denotes whether to extend the actual backing storage or just the "logical" one (DRBD being the only one; MD would be another, if implemented). This allows us to do the growth in two steps, first the backing store on all nodes, then the logical storage on just the primary node. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Jun 19, 2012
-
-
Michael Hanselmann authored
The function is supposed to return a list, not a string. Without this patch the error message ends up as “C, a, n, ', t, , c, h, a, n, g, e, …”. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Jun 12, 2012
-
-
Bernardo Dal Seno authored
This patch only touches comments and man pages. Signed-off-by:
Bernardo Dal Seno <bdalseno@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- May 10, 2012
-
-
René Nussbaumer authored
Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
René Nussbaumer authored
Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Mar 23, 2012
-
-
Iustin Pop authored
LVM version 2.02.93 (or at least, sometimes after .88) has extend the lv_attr field with two more flag; we only care about the first digit, so let's change the "!= 6" check to "< 6". Thanks to Robin H Johnson <robbat2@gentoo.org> for finding this issue. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Feb 21, 2012
-
-
Michael Hanselmann authored
In at least two cases "%s" is replaced with str(), too. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jan 23, 2012
-
-
Constantinos Venetsanopoulos authored
Introduce the rbd disk template, which handles provisioning and management of instance disks as block devices mapped to rbd volumes on a RADOS cluster. The rbd template is of type DTS_EXT_MIRROR, meaning rbd-based instances can failover or migrate to any node, without primary-secondary limitations. Use of this template requires the rbd kernel driver and rbd tool on all VM-capable nodes, as well as an operational RADOS cluster, accessible by them. Signed-off-by:
Constantinos Venetsanopoulos <cven@grnet.gr> Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Dec 12, 2011
-
-
Andrea Spadaccini authored
Add the c-plan-ahead, c-fill-target, c-delay-target, c-max-rate, c-min-rate parameters; report errors while setting the synchronization speed. Change the error signaling model of SetSyncParams. Instead of returning True or False, return a list of errors (to make possible error reporting during the recursive call). Signed-off-by:
Andrea Spadaccini <spadaccio@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Andrea Spadaccini authored
constants.py, cmdlib.py: - add the dynamic-resync parameter, both at DT and LD levels; lib/bdev.py: - change SetSyncSpeed to SetSyncParams, and _SetMinorSyncSpeed to _SetMinorSyncParams; - use the dynamic-resync parameter. Later patches will implement the rest of the parameters. Signed-off-by:
Andrea Spadaccini <spadaccio@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Dec 08, 2011
-
-
Andrea Spadaccini authored
Those parameters can be used to pass options directly to drbdsetup disk and drbdsetup net. Signed-off-by:
Andrea Spadaccini <spadaccio@google.com> Reviewed-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Andrea Spadaccini authored
Add the LDP_ prefix to the LD parameters-related constants, in order to avoid pollution in the global constants namespace. Signed-off-by:
Andrea Spadaccini <spadaccio@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Dec 06, 2011
-
-
Andrea Spadaccini authored
Add the disk-barriers and meta-barriers parameters described in the design doc. constants.py: * add the needed LD and DT-level parameters, use the defaults provided at ./configure time; * add constants representing which barriers should be disabled and the set of valid options. lib/bdev.py: * factor the barriers handling code to a class method, for testing purposes; * implement the more granular version checking logic; * use the LD level parameters; * add stricter check on DRBD version (8.0, 8.2 or 8.3), as we do not support 8.4 yet. lib/cmdlib.py: * translate DT level parameters to LD level ones. configure.ac, Makefile.am: * set both disk and meta barriers parameters depending on the value of --enable-drbd-barriers. test/ganeti.bdev_unittest.py: * unit tests for the code that sets DRBD barrier parameters depending on the version. doc/design-resource-model.rst: * reword the description of meta-barriers; * change all disk parameters names to use dashes instead of underscores. Signed-off-by:
Andrea Spadaccini <spadaccio@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Dec 02, 2011
-
-
Andrea Spadaccini authored
configure.ac: * change the documentation of --with-lvm-stripecount parameter to reflect the change doc/design-resource-model.rst: * change drbd/stripes to drbd/data-stripes and drbd/metastripes to drbd/meta-stripes rest of files: * add the plain/stripes, drbd/data-stripes and drbd/meta-stripes disk parameters Signed-off-by:
Andrea Spadaccini <spadaccio@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Dec 01, 2011
-
-
Andrea Spadaccini authored
Signed-off-by:
Andrea Spadaccini <spadaccio@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Andrea Spadaccini authored
* add the params attribute to BlockDev, and add the corresponding parameter to all the BlockDev classes; * change the Create, Assemble and FindDevice factory functions interface to accept as parameters an objects.Disk instance and a list of children block devices; update their callers; * make the factory functions provide default values for params if needed; * factor out a check in the block device factory functions. Signed-off-by:
Andrea Spadaccini <spadaccio@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Nov 21, 2011
-
-
Andrea Spadaccini authored
Instead of relying on clients of the class for setting the device speed (and, in general, the DRBD parameters), move this responsibility inside the Assemble method. Signed-off-by:
Andrea Spadaccini <spadaccio@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Aug 30, 2011
-
-
Andrea Spadaccini authored
In version 0.21, pylint unified all the disable-* (and enable-*) directives to disable (resp. enable). This leads to a lot of DeprecationWarning being emitted even if one uses the recommended version of pylint (0.21.1, as stated in devnotes.rst). This commit changes all the disable-msg directives to disable. Signed-off-by:
Andrea Spadaccini <spadaccio@google.com> Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Aug 25, 2011
-
-
Michael Hanselmann authored
Identified using the “pep8” utility. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Aug 23, 2011
-
-
René Nussbaumer authored
In the Linux kernel commit 4b0715f096 introduced a display bug into /proc/drbd which broke our regex. The bug was first introduced into Linux 2.6.39-rc1. This bug is still unfixed as of today. This patch adapt the regular expression to workaround this bug for the time being. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Aug 05, 2011
-
-
Iustin Pop authored
The docstring of the DRBD8 class says: … The meta device is checked for valid size and is zeroed on create. which is not done today, hence we have http://code.google.com/p/ganeti/issues/detail?id=182 : node1# mkreiserfs -f /dev/xenvg/t8 … ReiserFS is successfully created on /dev/xenvg/t8. node1# drbdmeta --force /dev/drbd256 v08 /dev/xenvg/t8 0 create-md md_offset 0 al_offset 4096 bm_offset 36864 Found reiser filesystem This would corrupt existing data. If you want me to do this, you need to zero out the first part of the device (destroy the content). You should be very sure that you mean it. Operation refused. I've tested and even just 1MB is enough to wipe the meta, but let's be safer and pass a 'clean' meta to drbd. Note: I didn't copy _WipeDevice from backend.py since it seemed more complex than needed here. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Jul 25, 2011
-
-
Iustin Pop authored
s/'/"/ in (hopefully) the right places. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- May 10, 2011
-
-
Iustin Pop authored
This is always called with False from backend for now. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Mar 08, 2011
-
-
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>
-
- Mar 01, 2011
-
-
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>
-
- Jan 11, 2011
-
-
René Nussbaumer authored
Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Dec 02, 2010
-
-
Iustin Pop authored
Currently, the Snapshot() function of LogicalVolume returns only the logical volume path, with the assumption that we only have one VG. But with the recent changes, it makes more sense to return the full data (vg and lv) from it, so as to not require computing it in the master. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Sep 23, 2010
-
-
René Nussbaumer authored
This patch removes duplicate code found in backend which also needs to get VG infos. To make it simpler we moved to bdev.LogicalVolume.GetVGInfo. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Sep 22, 2010
-
-
René Nussbaumer authored
Even for snapshot we looked at the biggest free pv space even though the vg might have fit the snapshot we aborted if one of the pvs was too small. This patch fixes this by looking at the vg size instead of the pv size. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Aug 18, 2010
-
-
Manuel Franceschini authored
This patch unifies the netutils functions dealing with IP addresses to three classes: - IPAddress: Common IP address functionality - IPv4Address: IPv4 specific functionality - IPv6address: IPv6-specific functionality Furthermore it adds methods to check whether an address is a loopback address, replacing the .startswith("127") for IPv4 and adding IPv6 support. It also provides the basis for future IPv6 address handling. Methods to convert IP strings to their corresponding interger values will allow to canonicalize IPv6 addresses. Signed-off-by:
Manuel Franceschini <livewire@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Aug 05, 2010
-
-
Manuel Franceschini authored
This patch fixes a bug reported in [0]. Newer drbd versions can have another digit beyond the regular major, minor and point release digits. We modify the regex used to match that with an optional parts which is not saved. Furthermore it adds unittests that test for these different cases. Now the data read from /proc is passed into the _GetVersion method, which makes testing easier. [0] http://code.google.com/p/ganeti/issues/detail?id=110 Signed-off-by:
Manuel Franceschini <livewire@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-