Skip to content
Snippets Groups Projects
  1. Jun 22, 2011
    • Apollon Oikonomopoulos's avatar
      Add config objects and methods for IP pools · 62a7762b
      Apollon Oikonomopoulos authored
      
      This patch introduces the following changes to lib.config and lib.objects to
      facilitate IP pool management.
      
      - Add a "networks" key to objects.cluster to hold link -> subnet relations.
        Each link is assumed to be associated with at most one IPv4 and at most one
        IPv6 subnet. Currently only IPv4 subnets are used.
      - Add a TemporaryReservationManager for IP address reservations.
      - Add config.{_UnlockedCommitIp,CommitIp,_UnlockedReleaseIp,ReleaseIp} to write
        IP pool changes to the config file.
      - Add config.{ReserveIp,GenerateIp} for use with the _temporary_ips
        TemporaryReservationManager.
      - Commit succesful reservations/releases to the IP pools in config.AddInstance
        and config.RemoveInstance
      
      Signed-off-by: default avatarApollon Oikonomopoulos <apollon@noc.grnet.gr>
      62a7762b
    • Apollon Oikonomopoulos's avatar
      Add lib/ippool.py: IP pool management primitives · 9dfd5fc2
      Apollon Oikonomopoulos authored
      
      This patch introduces primitive structures for IP pool management. The core of
      the IP Pool management framework is the ippool.IPv4Network class, which encodes
      an IPv4 subnet configuration with its IP address pool. The pool functionality
      depends on python-bitarray and python-ipaddr is used for address manipulation.
      
      ippool.IPv4Network has 3 key attributes:
       - net: The IPv4 subnet definition (CIDR notation)
       - gateway: The default gateway used, if any
       - _pool: a bitarray.bitarray storing the reservation status of individual IPs
      
      The purpose of including ippool.IPv4Network in ganeti is two-fold:
       - It will allow including subnet information useful for network configuration
         (e.g. by being available during an OS provider invocation)
       - It will be used for automatic IP address allocation during instance creation
         for both, routed and bridged modes.
      
      Signed-off-by: default avatarApollon Oikonomopoulos <apollon@noc.grnet.gr>
      9dfd5fc2
    • Apollon Oikonomopoulos's avatar
      KVM: configure bridged NICs at migration start · 034c116d
      Apollon Oikonomopoulos authored
      
      Commit 5d9bfd87 moved tap interface handling from KVM to Ganeti, partly to
      also solve the problem of routed interfaces getting configured too early during
      live migrations, causing network anomalies. In that direction, configuration of
      NICs of incoming instances was deferred to FinalizeMigration time.
      
      However, this causes minor issues with bridged interfaces; KVM sends out an
      ARP-like packet upon migration finish, which is lost because the tap interface
      is not yet configured. As a consequence, intermediate network equipment (i.e.
      switches) does not get notified about the topology change, until the instance
      transmits another packet after the bridge has been configured, or the switch's
      ARP cache expires.
      
      The proper solution to that is to support different phases in network
      configuration (pre/post migration), which also requires separate ifup scripts.
      Until then we fall back to configuring bridged interfaces on incoming instances
      at migration start, instead of finish.
      
      Signed-off-by: default avatarApollon Oikonomopoulos <apollon@noc.grnet.gr>
      v2.4.2+grnet1
      034c116d
  2. Jun 01, 2011
  3. May 30, 2011
    • Apollon Oikonomopoulos's avatar
      Fix argument order in ReserveLV and ReserveMAC · fa6347d0
      Apollon Oikonomopoulos authored
      
      ConfigWriter.ReserveLV() and Configwriter.ReserveMAC() called
      TemporaryReservationManager.Reserve() with the ec_id and resource arguments
      swapped. As a result, two reservation attempts for the same resource type
      within the same LU would fail, even if the resources requested were different,
      e.g.:
      
        $ gnt-instance add -t sharedfile -o debootstrap+default \
             --net 0:mac=00:01:02:03:04:00 \
             --net 1:mac=00:01:02:03:04:ff \
             --disk 0:size=2g  test_instance
        Failure: prerequisites not met for this operation:
        error type: resource_not_unique, error details:
        MAC address 00:01:02:03:04:ff already in use in cluster
      
      This patch fixes the argument order in the call to Reserve().
      
      Signed-off-by: default avatarApollon Oikonomopoulos <apollon@noc.grnet.gr>
      fa6347d0
  4. May 13, 2011
  5. May 12, 2011
  6. May 11, 2011
  7. May 10, 2011
  8. May 09, 2011
    • Iustin Pop's avatar
      Some man page updates · 0a68e0ff
      Iustin Pop authored
      
      This adds documentation for both the short and long form of many
      options (which was inconsistent before: in some cases only the short
      form was used, in others only the long form).
      
      Note that the standard this patch adopts is to document both forms as
      such:
      
        {-O|--os-parameters} …
      
      This makes it a bit uglier in complex situations, but the alternatives
      considered were not perfect either. Other suggestions (with patches)
      welcome.
      
      Additionally, it fixes two doc bugs:
      
      - in gnt-cluster.rst, the --prealloc-wipe-disks section was in the
        middle of a paragraph
      - in gnt-instance.rst, a list was not typed correctly, thus it was
        mangled as a single paragraph
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      0a68e0ff
    • Marco Casavecchia's avatar
      Add 2 new variables to the OS scripts environment · 519719fd
      Marco Casavecchia authored
      
      Add INSTANCE_PRIMARY_NODE and INSTANCE_SECONDARY_NODES. These new
      values are useful for OS scripts that needs to know the nodes where
      the instance lives.. or has lived.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      [iustin@google.com: fixed small issue with SECONDARY_NODES]
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      519719fd
    • Iustin Pop's avatar
      Add --no-wait-for-sync when converting to drbd · 456798ab
      Iustin Pop authored
      
      Currently, when converting an instance from plain to DRBD, the
      instance is blocked during the entire resync period. This patch adds
      the --no-wait-for-sync so that the operation finishes as soon as the
      DRBD sync has started, without waiting for the entire sync. This makes
      the instance available much faster.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      456798ab
    • Iustin Pop's avatar
      Recreate instance disks: allow changing nodes · c8a96ae7
      Iustin Pop authored
      
      This patch introduces the option of changing an instance's nodes when
      doing the disk recreation. The rationale is that currently if an
      instance lives on a node that has gone down and is marked offline,
      it's not possible to re-create the disks and reinstall the instance on
      a different node without hacking the config file.
      
      Additionally, the LU now locks the instance's nodes (which was not
      done before), as we most likely allocate new resources on them.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
      c8a96ae7
  9. May 06, 2011
  10. May 05, 2011
  11. May 04, 2011
  12. May 03, 2011
  13. May 02, 2011
  14. Apr 29, 2011
  15. Apr 28, 2011
Loading