Skip to content
Snippets Groups Projects
  1. Feb 15, 2010
  2. Feb 11, 2010
  3. Feb 10, 2010
  4. Feb 09, 2010
    • Iustin Pop's avatar
      Add an early release lock/storage for disk replace · 7ea7bcf6
      Iustin Pop authored
      
      This patch adds an early_release parameter in the OpReplaceDisks and
      OpEvacuateNode opcodes, allowing earlier release of storage and more
      importantly of internal Ganeti locks.
      
      The behaviour of the early release is that any locks and storage on all
      secondary nodes are released early. This is valid for change secondary
      (where we remove the storage on the old secondary, and release the locks
      on the old and new secondary) and replace on secondary (where we remove
      the old storage and release the lock on the secondary node.
      
      Using this, on a three node setup:
      
      - instance1 on nodes A:B
      - instance2 on nodes C:B
      
      It is possible to run in parallel a replace-disks -s (on secondary) for
      instances 1 and 2.
      
      Replace on primary will remove the storage, but not the locks, as we use
      the primary node later in the LU to check consistency.
      
      It is debatable whether to also remove the locks on the primary node,
      and thus making replace-disks keep zero locks during the sync. While
      this would allow greatly enhanced parallelism, let's first see how
      removal of secondary locks works.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      7ea7bcf6
  5. Feb 08, 2010
  6. Feb 03, 2010
  7. Feb 01, 2010
  8. Jan 29, 2010
  9. Jan 28, 2010
  10. Jan 27, 2010
    • Iustin Pop's avatar
      node daemon: allow working with broken queue dir · 81198f6e
      Iustin Pop authored
      
      In case the queue dir cannot be create/initialized, currently
      ganeti-noded exits. This means that a read-only filesystem or a
      permission error breaks all node daemon functionality, including
      powercycle. This is not good for the usual failure case for nodes.
      
      To workaround this, we don't require successful initialization at node
      daemon startup; if we can't init the queue dir/lock, we retry at every
      RPC call requiring a job queue lock, and if we still can't acquire the
      lock, we raise an exception (which is catched in HandleRequest and
      transformed into an RPC failure).
      
      This allows the node daemon to start in face of queue issues, and the
      master node to power-cycle it.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      81198f6e
    • Iustin Pop's avatar
      utils.FileLock: handle init errors properly · aac3fbf0
      Iustin Pop authored
      
      If the open of the lock file fails (due to whatever reason), 'self'
      won't have the 'fd' attribute, and thus we fail in Close/__del__, which
      will ruin proper error reporting:
      
      IOError: [Errno 30] Read-only file system: '/var/lib/ganeti/queue/lock'
      Exception exceptions.AttributeError: "'FileLock' object has no attribute
      'fd'" in <bound method FileLock.__del__ of <ganeti.utils.FileLock object
      at 0x2aaaad0bebd0>> ignored
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      aac3fbf0
    • Iustin Pop's avatar
      daemon-utils: remove usage of here-docs · 8645ff83
      Iustin Pop authored
      
      In some versions of bash, here-docs and here-strings use temporary
      files, which means daemon-util needs a writable temporary filesystem.
      Since echo is a bash builtin anyway, it's simple to switch to it and
      remove this dependency.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      8645ff83
Loading