Ganeti is a virtual machine cluster management tool built on top of existing virtualization technologies such as Xen or KVM and other open source software.

Overview
Ganeti 3.0
===========

For installation instructions, read the INSTALL and the doc/install.rst
files.

For a brief introduction, read the ganeti(7) manpage and the other pages
it suggests.

Please note, that there is no supported upgrade path for users running
Ganeti-2.17 (i.e. 2.17.0 beta1). Ganeti-2.17 was never released, so
hopefully no one uses it.
Comments
  • instance-failover-post isn't always called

    instance-failover-post isn't always called

    Originally reported of Google Code with ID 68.

    <b>What steps will reproduce the problem?</b>
    1. I create an isntance with drbd layout on node1 and node2, node1 is also
    cluster master
    2. I add a simple script (date > /tmp/date, for ex) into
    /etc/ganeti/hooks/instance-failover-post.d/01-test
    The instance is initially started on node1.
    first gnt-instance failover (node1->node2) : everything goes well, post
    hook is called on node1 and node2
    second gnt-instance failover(node2 -> node1) : the hook on node2 isn't called.
    
    Am I doing something bad ? 
    
    Cheers,
    
    Maxence
    

    Originally added on 2009-08-26 09:26:15 +0000 UTC.

    AutoMigrated Status:Released Type-Enhancement 
    opened by Ganeti-Issues-Migrator 24
  • DRBD config leak

    DRBD config leak

    Originally reported of Google Code with ID 1135.

    This issue is for discussion about the DRBD config leak.
    
    

    Originally added on 2015-10-15 16:27:55 +0000 UTC.

    AutoMigrated Status:Released Restrict-View-LeakyPenguin 
    opened by Ganeti-Issues-Migrator 23
  • colon as a delimiter to parse lvm PV is not always working

    colon as a delimiter to parse lvm PV is not always working

    Originally reported of Google Code with ID 93.

    What software version are you running? Please provide the output of "gnt-
    cluster --version" and "gnt-cluster version".
    Software version: 2.0.6
    Internode protocol: 20
    Configuration format: 2000000
    OS api version: 10
    Export interface: 0
    
    <b>What distribution are you using?</b>
    debian testing
    
    <b>What steps will reproduce the problem?</b>
    1.create a lvm inside an encrypted disk
    2.pvscan => PV /dev/block/254:0   VG vg0
    3.create an instance
    
    <b>What is the expected output? What do you see instead?</b>
    ganeti will chokes saying...
    Can't create block device: Can't compute PV info for vg vg0
    
    <b>Please provide any additional information below.</b>
    I was trying to migrate my cluster on an encrypted filesystem so added a
    node with whole disk encrypted, fine i can also see the node and its free
    disk space with "gnt-node list"! ...but if I try to create a new instance
    there I get this error.
    
    but maybe I've isolated the bug because it's very close to this report
    about same issue on libvirt, please verify:
    https://bugzilla.redhat.com/show_bug.cgi?id=470693
    
    kind regards
    

    Originally added on 2010-03-12 21:52:22 +0000 UTC.

    AutoMigrated Status:Released Type-Enhancement Component-UI 
    opened by Ganeti-Issues-Migrator 22
  • Cannot install VM on Gluster bankend storage

    Cannot install VM on Gluster bankend storage

    Originally reported of Google Code with ID 1064.

    What software version are you running? Please provide the output of "gnt-
    cluster --version", "gnt-cluster version", and "hspace --version".
    
    root@node1:~# gnt-cluster --version
    gnt-cluster (ganeti v2.10.7-70-g70f22ba) 2.11.6
    
    <b>What distribution are you using?</b>
    
    root@node1:~# lsb_release -a
    No LSB modules are available.
    Distributor ID:	Debian
    Description:	Debian GNU/Linux 7.8 (wheezy)
    Release:	7.8
    Codename:	wheezy
    
    <b>What steps will reproduce the problem?</b>
    1, root@node1:~# gluster volume create gv0 replica 2 transport tcp node1:/root/tmp1 node1:/root/tmp2
    Creation of volume gv0 has been successful. Please start the volume to access data.
    
    2, root@node1:~# gluster volume start gv0
    Starting volume gv0 has been successful
    
    3, root@node1:~# gnt-cluster init --vg-name=xenvg --master-netdev=eth0 --gluster-storage-dir=/var/run/ganeti/gluster -D gluster -H kvm:kernel_path=/boot/vmlinuz-3-kvmU,initrd_path=/boot/initrd-3-kvmU -N link=xen-br0 --enabled-hypervisor=kvm --enabled-disk-templates=gluster,drbd,plain cluster
    
    
    4, root@node1:~# sudo gnt-instance add -n node1 -o debootstrap+default -t gluster -s 5G instance1
    Wed Apr 15 05:30:13 2015  - INFO: Resolved given name 'instance1' to 'instance1.ganeti.com'
    Wed Apr 15 05:30:17 2015 * disk 0, size 5.0G
    Wed Apr 15 05:30:17 2015 * creating instance disks...
    Wed Apr 15 05:30:22 2015  - WARNING: Device creation failed
    Failure: command execution error:
    Can't create block device <Disk(type=gluster, logical_id=('loop', 'ganeti/ce24daf6-15fc-4450-abd3-f893b342b601.0'), children=None, visible as /dev/disk/0, size=5120m)> on node node1.ganeti.com for instance instance1.ganeti.com: Error while executing backend function: Path '/var/run/ganeti/gluster/ganeti/ce24daf6-15fc-4450-abd3-f893b342b601.0' is not acceptable for file storage
    
    <b>What is the expected output? What do you see instead?</b>
    
    Expected: Create VM on gluster backend storage successfully.
    Instead: Cannot install, error happened.
    
    <b>Please provide any additional information below.</b>
    
    I can install VM successfully with plain disk template as follows.
    
    root@node1:~# sudo gnt-instance add -n node1 -o debootstrap+default -t plain -s 5G instance1
    Wed Apr 15 05:37:53 2015  - INFO: Resolved given name 'instance1' to 'instance1.ganeti.com'
    Wed Apr 15 05:37:57 2015 * disk 0, size 5.0G
    Wed Apr 15 05:37:57 2015 * creating instance disks...
    Wed Apr 15 05:37:58 2015 adding instance instance1.ganeti.com to cluster config
    Wed Apr 15 05:37:59 2015  - INFO: Waiting for instance instance1.ganeti.com to sync disks
    Wed Apr 15 05:37:59 2015  - INFO: Instance instance1.ganeti.com's disks are in sync
    Wed Apr 15 05:38:00 2015 * running the instance OS create scripts...
    Wed Apr 15 05:38:10 2015 * starting instance...
    root@node1:~# gnt-instance list
    Instance             Hypervisor OS                  Primary_node     Status  Memory
    instance1.ganeti.com kvm        debootstrap+default node1.ganeti.com running   128M
    
    
    Cluster infos are as follows.
    
    root@node1:~# gnt-cluster verify
    Submitted jobs 3, 4
    Waiting for job 3 ...
    Wed Apr 15 05:29:53 2015 * Verifying cluster config
    Wed Apr 15 05:29:53 2015 * Verifying cluster certificate files
    Wed Apr 15 05:29:53 2015 * Verifying hypervisor parameters
    Wed Apr 15 05:29:53 2015 * Verifying all nodes belong to an existing group
    Waiting for job 4 ...
    Wed Apr 15 05:29:53 2015 * Verifying group 'default'
    Wed Apr 15 05:29:53 2015 * Gathering data (1 nodes)
    Wed Apr 15 05:29:54 2015 * Gathering disk information (1 nodes)
    Wed Apr 15 05:29:54 2015 * Verifying configuration file consistency
    Wed Apr 15 05:29:54 2015 * Verifying node status
    Wed Apr 15 05:29:54 2015 * Verifying instance status
    Wed Apr 15 05:29:54 2015 * Verifying orphan volumes
    Wed Apr 15 05:29:54 2015 * Verifying N+1 Memory redundancy
    Wed Apr 15 05:29:54 2015 * Other Notes
    Wed Apr 15 05:29:54 2015 * Hooks Results
    
    root@node1:~# gnt-cluster info
    Cluster name: cluster.ganeti.com
    Cluster UUID: db2ddf84-451a-462e-87d7-c92c5c161d7e
    Creation time: 2015-04-15 05:29:39
    Modification time: 2015-04-15 05:29:46
    Master node: node1.ganeti.com
    Architecture (this node): 64bits (x86_64)
    Tags: (none)
    Default hypervisor: kvm
    Enabled hypervisors: kvm
    Hypervisor parameters: 
      kvm: 
        acpi: True
        boot_order: disk
        cdrom2_image_path: 
        cdrom_disk_type: 
        cdrom_image_path: 
        cpu_cores: 0
        cpu_mask: all
        cpu_sockets: 0
        cpu_threads: 0
        cpu_type: 
        disk_cache: default
        disk_type: paravirtual
        floppy_image_path: 
        initrd_path: /boot/initrd-3-kvmU
        kernel_args: ro
        kernel_path: /boot/vmlinuz-3-kvmU
        keymap: 
        kvm_extra: 
        kvm_flag: 
        kvm_path: /usr/bin/kvm
        machine_version: 
        mem_path: 
        migration_bandwidth: 32
        migration_downtime: 30
        migration_mode: live
        migration_port: 8102
        nic_type: paravirtual
        reboot_behavior: reboot
        root_path: /dev/vda1
        security_domain: 
        security_model: none
        serial_console: True
        serial_speed: 38400
        soundhw: 
        spice_bind: 
        spice_image_compression: 
        spice_ip_version: 0
        spice_jpeg_wan_compression: 
        spice_password_file: 
        spice_playback_compression: True
        spice_streaming_video: 
        spice_tls_ciphers: HIGH:-DES:-3DES:-EXPORT:-ADH
        spice_use_tls: False
        spice_use_vdagent: True
        spice_zlib_glz_wan_compression: 
        usb_devices: 
        usb_mouse: 
        use_chroot: False
        use_localtime: False
        user_shutdown: False
        vga: 
        vhost_net: False
        vnc_bind_address: 
        vnc_password_file: 
        vnc_tls: False
        vnc_x509_path: 
        vnc_x509_verify: False
        vnet_hdr: True
    OS-specific hypervisor parameters: 
    OS parameters: 
    Hidden OSes: 
    Blacklisted OSes: 
    Cluster parameters: 
      candidate pool size: 10
      maximal number of jobs running simultaneously: 20
      master netdev: eth0
      master netmask: 32
      use external master IP address setup script: False
      lvm volume group: xenvg
      lvm reserved volumes: (none)
      drbd usermode helper: /bin/true
      file storage path: /srv/ganeti/file-storage
      shared file storage path: /srv/ganeti/shared-file-storage
      gluster storage path: /var/run/ganeti/gluster
      maintenance of node health: False
      uid pool: 
      default instance allocator: hail
      default instance allocator parameters: 
      primary ip version: 4
      preallocation wipe disks: False
      OS search path: /srv/ganeti/os
      ExtStorage Providers search path: /srv/ganeti/extstorage
      enabled disk templates: gluster, drbd, plain
      enabled user shutdown: False
    Default node parameters: 
      exclusive_storage: False
      oob_program: 
      ovs: False
      ovs_link: 
      ovs_name: switch1
      spindle_count: 1
      ssh_port: 22
    Default instance parameters: 
      default: 
        always_failover: False
        auto_balance: True
        maxmem: 128
        minmem: 128
        spindle_use: 1
        vcpus: 1
    Default nic parameters: 
      default: 
        link: xen-br0
        mode: bridged
        vlan: 
    Default disk parameters: 
      blockdev: 
      diskless: 
      drbd: 
        c-delay-target: 1
        c-fill-target: 0
        c-max-rate: 61440
        c-min-rate: 4096
        c-plan-ahead: 20
        data-stripes: 1
        disk-barriers: n
        disk-custom: 
        dynamic-resync: False
        meta-barriers: False
        meta-stripes: 1
        metavg: xenvg
        net-custom: 
        protocol: C
        resync-rate: 61440
      ext: 
      file: 
      gluster: 
        access: kernelspace
        host: 127.0.0.1
        port: 24007
        volume: gv0
      plain: 
        stripes: 1
      rbd: 
        access: kernelspace
        pool: rbd
      sharedfile: 
    Instance policy - limits for instances: 
      bounds specs: 
        - max/0: 
            cpu-count: 8
            disk-count: 16
            disk-size: 1048576
            memory-size: 32768
            nic-count: 8
            spindle-use: 12
          min/0: 
            cpu-count: 1
            disk-count: 1
            disk-size: 1024
            memory-size: 128
            nic-count: 1
            spindle-use: 1
      std: 
        cpu-count: 1
        disk-count: 1
        disk-size: 1024
        memory-size: 128
        nic-count: 1
        spindle-use: 1
      allowed disk templates: drbd, plain, gluster
      vcpu-ratio: 4
      spindle-ratio: 32
    
    
    Some logs related to gluster are in the following.
    root@node1:/var/log/ganeti# grep gluster * -R
    [...]
    node-daemon.log:2015-04-15 05:30:17,745: ganeti-noded pid=1054 INFO RunCmd mount -t glusterfs -o server-port=24007 127.0.0.1:/gv0 /var/run/ganeti/gluster
    node-daemon.log:2015-04-15 05:30:21,946: ganeti-noded pid=1054 INFO RunCmd umount /var/run/ganeti/gluster
    node-daemon.log:  File "/usr/local/share/ganeti/2.11/ganeti/storage/gluster.py", line 456, in Create
    node-daemon.log:FileStoragePathError: Path '/var/run/ganeti/gluster/ganeti/ce24daf6-15fc-4450-abd3-f893b342b601.0' is not acceptable for file storage
    
    

    Originally added on 2015-04-15 09:42:36 +0000 UTC.

    AutoMigrated Status:Invalid 
    opened by Ganeti-Issues-Migrator 21
  • hbal: IntMap.!: key -1 is not an element of the map

    hbal: IntMap.!: key -1 is not an element of the map

    Originally reported of Google Code with ID 1185.

     I'm running ganeti  2.15.2-1~bpo8+1 on Debian Jessie.
    
    I'm getting the following surprising output from hbal:
    
    # hbal -L -C 
    Loaded 19 nodes, 46 instances
    Group size 19 nodes, 46 instances
    Selected node group: default
    Initial check done: 0 bad nodes, 0 bad instances.
    hbal: IntMap.!: key -1 is not an element of the map
    
    I've discussed this with Viktor Bachraty on the mailing list, and following his instructions have created a cluster state file which can be used to test hbal during debugging using 
    
    hbal -t cluster.state.original -C
    
    Thanks for your help Viktor!
    C.
    
    

    Originally added on 2016-08-22 14:00:57 +0000 UTC.

    Attachments: [cluster state file](https://storage.googleapis.com/google-code-attachments/ganeti/issue-1185/comment-0/cluster state file)

    AutoMigrated Status:Fixed 
    opened by Ganeti-Issues-Migrator 20
  • gnt-backup exits with error in finalization task when using CIFS

    gnt-backup exits with error in finalization task when using CIFS

    Originally reported of Google Code with ID 154.

    Cluster: "gnt-cluster (ganeti v2.4.1) 2.4.1"
    on 2 Debian Lenny nodes running KVM only instances.
    
    <b>What steps will reproduce the problem?</b>
    1. mount a CIFS filesystem under /srv/ganeti/export 
    2. Use an OS export script like this:
    
    #CUSTOM IMAGE EXPORT SCRIPT
    set -e
    
    . common.sh
    
    #MCM: Executing a full raw backup of the device using dd making a file-disk-image.
    if [ ! -b $blockdev ]; then
            echo "ERROR: ${blockdev} is not a Block Device."
            cleanup
            exit 1
    fi
    dd if=${blockdev} bs=512
    EXIT_STATUS="$?"
    
    # execute cleanups
    cleanup
    trap - EXIT
    
    exit ${EXIT_STATUS}
    
    3. run gnt-backup export -n node2 instance.name
    
    I'm expecting the backup is done correctly but instead I get this output:
    
    Fri Apr  8 12:50:55 2011 Shutting down instance vmbktest.
    Fri Apr  8 12:51:06 2011 Creating a snapshot of disk/0 on node deborder02
    Fri Apr  8 12:51:06 2011 Starting instance vmbktest
    Fri Apr  8 12:51:06 2011 Exporting snapshot/0 from deborder02 to deborder02
    Fri Apr  8 12:51:10 2011 snapshot/0 is now listening, starting export
    Fri Apr  8 12:51:12 2011 snapshot/0 is receiving data on deborder02
    Fri Apr  8 12:51:12 2011 snapshot/0 is sending data on deborder02
    Fri Apr  8 12:51:17 2011 snapshot/0 sent 95M, 15.2 MiB/s
    Fri Apr  8 12:52:13 2011 snapshot/0 finished receiving data
    Fri Apr  8 12:52:13 2011 snapshot/0 finished sending data
    Fri Apr  8 12:52:13 2011 Removing snapshot of disk/0 on node deborder02
    Fri Apr  8 12:52:13 2011 Finalizing export on deborder02
    Fri Apr  8 12:52:15 2011  - WARNING: Could not finalize export for instance vmbktest.or.lan on node deborder02: Error while executing backend function: [Errno 95] Operation not supported
    Failure: command execution error:
    Export failed, errors in export finalization
    
    Note: into the node log i found these lines:
    2011-04-08 12:52:15,317: ganeti-noded pid=4926 ERROR Error in RPC call
    Traceback (most recent call last):
      File "/usr/local/lib/python2.5/site-packages/ganeti/server/noded.py", line 152, in HandleRequest
        result = (True, method(serializer.LoadJson(req.request_body)))
      File "/usr/local/lib/python2.5/site-packages/ganeti/server/noded.py", line 428, in perspective_finalize_export
        return backend.FinalizeExport(instance, snap_disks)
      File "/usr/local/lib/python2.5/site-packages/ganeti/backend.py", line 2309, in FinalizeExport
        data=config.Dumps())
      File "/usr/local/lib/python2.5/site-packages/ganeti/utils/io.py", line 143, in WriteFile
        os.rename(new_name, file_name)
    OSError: [Errno 95] Operation not supported
    2011-04-08 12:52:15,319: ganeti-noded pid=4926 INFO 10.6.128.132:53061 PUT /finalize_export HTTP/1.1 200
    2011-04-08 12:52:15,406: ganeti-noded pid=4927 INFO 10.6.128.132:53062 PUT /jobqueue_update HTTP/1.1 200
    
    I tried to check if it was a python issue using this procedure:
    1. I launched "python" and I typed the following commands:
    
    import os
    os.rename("/srv/ganeti/export/vmbktest.or.lan.new", "/srv/ganeti/export/vmbktest.or.lan") 
    
    ..both of them are directories and the command worked as expected.
    

    Originally added on 2011-04-08 11:10:40 +0000 UTC.

    AutoMigrated Status:Released 
    opened by Ganeti-Issues-Migrator 20
  • Split brain problem

    Split brain problem

    Originally reported of Google Code with ID 617.

    What software version are you running? Please provide the output of "gnt-
    cluster --version", "gnt-cluster version", and "hspace --version".
    
    Primary Node:
    hspace (ganeti-htools) version v0.3.1
    compiled with ghc 7.4
    running on linux x86_64
    
    gnt-cluster (ganeti v2.4.5) 2.4.5
    
    Software version: 2.4.5
    Internode protocol: 2040000
    Configuration format: 2040000
    OS api version: 20
    Export interface: 0
    
    Distributor ID:	Ubuntu
    Description:	Ubuntu 12.04 LTS
    Release:	12.04
    Codename:	precise
    
    What distribution are you using on secondary node?
    Distributor ID:	Ubuntu
    Description:	Ubuntu 12.10
    Release:	12.10
    Codename:	quantal
    
    
    <b>What steps will reproduce the problem?</b>
    On Primary node:
    1.root@primary:~# drbd-overview 
      0:??not-found??  WFConnection Primary/Unknown UpToDate/Inconsistent C r----- 
      1:??not-found??  WFConnection Primary/Unknown UpToDate/Inconsistent C r----- 
      2:??not-found??  WFConnection Primary/Unknown UpToDate/Inconsistent C r----- 
      3:??not-found??  WFConnection Primary/Unknown UpToDate/Inconsistent C r----- 
      4:??not-found??  WFConnection Primary/Unknown UpToDate/DUnknown     C r----- 
      5:??not-found??  WFConnection Primary/Unknown UpToDate/Inconsistent C r----- 
      7:??not-found??  WFConnection Primary/Unknown UpToDate/DUnknown     C r----- 
      9:??not-found??  WFConnection Primary/Unknown UpToDate/Inconsistent C r----- 
     10:??not-found??  WFConnection Primary/Unknown UpToDate/Inconsistent C r----- 
     11:??not-found??  WFConnection Primary/Unknown UpToDate/Inconsistent C r----- 
     14:??not-found??  WFConnection Primary/Unknown UpToDate/Inconsistent C r----- 
     15:??not-found??  WFConnection Primary/Unknown UpToDate/DUnknown     C r----- 
     18:??not-found??  WFConnection Primary/Unknown UpToDate/Inconsistent C r----- 
     20:??not-found??  WFConnection Primary/Unknown UpToDate/DUnknown     C r----- 
     22:??not-found??  WFConnection Primary/Unknown UpToDate/Inconsistent C r----- 
     23:??not-found??  WFConnection Primary/Unknown UpToDate/DUnknown     C r----- 
     34:??not-found??  WFConnection Primary/Unknown UpToDate/DUnknown     C r----- 
     38:??not-found??  WFConnection Primary/Unknown UpToDate/DUnknown     C r----- 
     39:??not-found??  WFConnection Primary/Unknown UpToDate/DUnknown     C r----- 
     41:??not-found??  WFConnection Primary/Unknown UpToDate/DUnknown     C r----- 
    
    2.On secondary Node:
    root@secondary:~# drbd-overview 
      2:??not-found??  StandAlone Secondary/Unknown Inconsistent/DUnknown r----- 
      5:??not-found??  StandAlone Secondary/Unknown Inconsistent/DUnknown r----- 
      9:??not-found??  StandAlone Secondary/Unknown Inconsistent/DUnknown r----- 
     10:??not-found??  StandAlone Secondary/Unknown Inconsistent/DUnknown r----- 
     11:??not-found??  StandAlone Secondary/Unknown Inconsistent/DUnknown r----- 
     18:??not-found??  StandAlone Secondary/Unknown Inconsistent/DUnknown r----- 
     22:??not-found??  StandAlone Secondary/Unknown Inconsistent/DUnknown r----- 
    
    3.root@mprimary:~# drbdsetup /dev/drbdX invalidate
    /dev/drbd38: State change failed: (-2) Need access to UpToDate data
    
    
    <b>What is the expected output? What do you see instead?</b>
    
    I need to recover the nodes from split brain.
    
    <b>Please provide any additional information below.</b>
    
    The secondary node has been upgradeD to 12.10 quantal and the primary node is running 12.04 LTS precise. The drbd.conf is empty and there is no .res file. Any drbdadm command output " No resources defined".
    
    The vms has been failedover to the primary node. Afraid to do anything that might bring the primary node down as this could bring the whole production down.
    
    What is the best safe way to resolve this. 
    
    Please help.
    
    

    Originally added on 2013-11-21 08:21:21 +0000 UTC.

    AutoMigrated Status:WontFix 
    opened by Ganeti-Issues-Migrator 19
  • gnt-instance migrate endless copying memory

    gnt-instance migrate endless copying memory

    Originally reported of Google Code with ID 894.

    What software version are you running? Please provide the output of "gnt-
    cluster --version", "gnt-cluster version", and "hspace --version".
    
    <b>What distribution are you using?</b>
    # gnt-cluster --version
    gnt-cluster (ganeti v2.11.3) 2.11.3
    # gnt-cluster version
    Software version: 2.11.3
    Internode protocol: 2110000
    Configuration format: 2110000
    OS api version: 20
    Export interface: 0
    VCS version: (ganeti) version v2.11.3
    # hspace --version
    hspace (ganeti) version v2.11.3
    compiled with ghc 7.4
    running on linux x86_64
    # cat /etc/debian_version
    7.6
    # apt-cache policy ganeti
    ganeti:
      Installed: 2.11.3-2~bpo70+1
      Candidate: 2.11.3-2~bpo70+1
      Package pin: 2.11.3-2~bpo70+1
      Version table:
     *** 2.11.3-2~bpo70+1 990
            100 http://debian.xxxxxxxx.de/debian/ wheezy-backports/main amd64 Packages
            100 /var/lib/dpkg/status
         2.10.5-1~bpo70+1 990
            100 http://debian.xxxxxxxx.de/debian/ wheezy-backports/main amd64 Packages
         2.9.5-1~bpo70+1 990
            100 http://debian.xxxxxxxx.de/debian/ wheezy-backports/main amd64 Packages
    
    
    <b>What steps will reproduce the problem?</b>
    gnt-instance migrate -f vmX
    
    
    <b>What is the expected output? What do you see instead?</b>
    - Tue Jul 22 20:07:41 2014 * memory transfer progress: 600.64 %
    - Tue Jul 22 20:07:53 2014 * memory transfer progress: 618.39 % 
    + "Timeout" which cancels the migration if the memory transfer progress reaches a certain limit
    
    
    <b>Please provide any additional information below.</b>
    The VM has got a gaming server running which seams to be modifying to much memory.
    
    

    Originally added on 2014-07-22 18:15:38 +0000 UTC.

    enhancement Hypervisor-KVM 
    opened by Ganeti-Issues-Migrator 18
  • ganeti-instance-debootstrap grub hook fails:

    ganeti-instance-debootstrap grub hook fails: "unable to resolve UUID", "could not find menu.lst"

    Originally reported of Google Code with ID 549.

    What software version are you running? Please provide the output of "gnt-
    cluster --version" and "gnt-cluster version".
    
    root@wrn-vm1:~# gnt-cluster --version
    gnt-cluster (ganeti v2.6.2) 2.6.2
    root@wrn-vm1:~# gnt-cluster version
    Software version: 2.6.2
    Internode protocol: 2060000
    Configuration format: 2060000
    OS api version: 20
    Export interface: 0
    
    <b>What distribution are you using?</b>
    
    Debian Wheezy (host), Ubuntu Precise (guest)
    
    <b>What steps will reproduce the problem?</b>
    
    1. Install /etc/ganeti/instance-debootstrap/hooks/grub from the examples/hooks directory. (Note: I also have the 'defaultpasswords' and 'timezone' hooks installed, and they work fine)
    
    2. Build an Ubuntu VM. I have /etc/ganeti/instance-debootstrap/variants/precise.conf containing
    
    MIRROR="http://archive.ubuntu.com/ubuntu/"
    SUITE="precise"
    EXTRA_PKGS="acpid,console-tools,udev,linux-image-virtual,openssh-server"
    COMPONENTS="main,universe"
    ARCH="amd64"
    
    <b>What is the expected output? What do you see instead?</b>
    
    The VM creation fails at the following point:
    
    ---- 8< ----
    ...
    Searching for GRUB installation directory ... found: /boot/grub
    findfs: unable to resolve 'UUID=310dafbb-8de6-42af-bf27-4c5752c99a94'
    Cannot determine root device.  Assuming /dev/hda1
    This error is probably caused by an invalid /etc/fstab
    Searching for default file ... Generating /boot/grub/default file and setting the default boot entry to 0
    Searching for GRUB installation directory ... found: /boot/grub
    Testing for an existing GRUB menu.lst file ...
    
    Could not find /boot/grub/menu.lst file. Would you like /boot/grub/menu.lst generated for you? (y/N) /usr/sbin/update-grub: line 1094: read: read error: 0: Bad file descriptor
    run-parts: /etc/ganeti/instance-debootstrap/hooks/grub exited with return code 1
    
    Current default time zone: 'Europe/London'
    Local time is now:      Sun Jul 14 11:10:12 BST 2013.
    Universal Time is now:  Sun Jul 14 10:10:12 UTC 2013.
    ---- 8< ----
    
    As a result, the VM won't boot. You need to boot it temporarily with an external kernel, and then run grub within the VM.
    
    <b>Please provide any additional information below.</b>
    
    I tried changing "sda" to "vda" in the grub script, but it didn't make a difference. Also reported at https://groups.google.com/forum/#!topic/ganeti/Wmyb_5dLvaI
    
    
    

    Originally added on 2013-08-07 18:58:05 +0000 UTC.

    AutoMigrated Priority:Medium Type-Defect Component-instances Status:Accepted SmallTask 
    opened by Ganeti-Issues-Migrator 18
  • gnt-instance grow-disk does not work in ganeti 2.6.0

    gnt-instance grow-disk does not work in ganeti 2.6.0

    Originally reported of Google Code with ID 269.

    What software version are you running? Please provide the output of "gnt-
    cluster --version" and "gnt-cluster version".
    
    <b>What distribution are you using?</b>
    ubuntu 12.04 lts
    
    <b>What steps will reproduce the problem?</b>
    
    <b>1.</b>
    root@ubuntuxen01:~# gnt-instance add \
    >         -n ubuntuxen01 \
    >         -o linux+ubuntu-12.04_amd64 \
    >         -t plain \
    >         --disk 0:size=8G \
    >         --disk 1:size=2G \
    >         -B minmem=512M,maxmem=1G \
    >         -H xen-pvm:kernel_path=/boot/pv-grub-4.1.2_64.gz \
    >         --no-name-check \
    >         --no-ip-check \
    > ubuntutest01
    Mon Sep 24 14:14:08 2012 * disk 0, size 8.0G
    Mon Sep 24 14:14:08 2012 * disk 1, size 2.0G
    Mon Sep 24 14:14:08 2012 * creating instance disks...
    Mon Sep 24 14:14:09 2012 adding instance ubuntutest01 to cluster config
    Mon Sep 24 14:14:09 2012  - INFO: Waiting for instance ubuntutest01 to sync disks.
    Mon Sep 24 14:14:09 2012  - INFO: Instance ubuntutest01's disks are in sync.
    Mon Sep 24 14:14:09 2012 * running the instance OS create scripts...
    Mon Sep 24 14:15:32 2012 * starting instance...
    
    
    <b>2.</b>
    root@ubuntuxen01:~# gnt-instance info ubuntutest01
    Instance name: ubuntutest01
    UUID: 8fca004e-968f-4e37-a2f9-43d972045623
    Serial number: 2
    Creation time: 2012-09-24 14:14:09
    Modification time: 2012-09-24 14:15:32
    State: configured to be up, actual state is up
      Nodes:
        - primary: ubuntuxen01.domain.intern
          group: default (UUID 32c7a1cc-5996-4f4a-aade-fa32cb67c1e8)
        - secondaries:
      Operating system: linux+ubuntu-12.04_amd64
      Allocated network port: None
      Hypervisor: xen-pvm
        - blockdev_prefix: default (sd)
        - bootloader_args: default ()
        - bootloader_path: default ()
        - cpu_mask: default (all)
        - initrd_path: default ()
        - kernel_args: default ((hd0)/boot/grub/menu.lst)
        - kernel_path: /boot/pv-grub-4.1.2_64.gz
        - reboot_behavior: default (reboot)
        - root_path: default ()
       - use_bootloader: default (False)
      Hardware:
        - always_failover: default (False)
        - auto_balance: default (True)
        - maxmem: 1024
        - memory: default (1024)
        - minmem: 512
        - spindle_use: default (1)
        - vcpus: default (2)
        - NICs:
          - nic/0: MAC: aa:00:00:09:5c:27, IP: None, mode: bridged, link: br0
      Disk template: plain
      Disks:
        - disk/0: lvm, size 8.0G
          access mode: rw
          logical_id:  system/2f801264-fe51-4e8c-9388-f5740798e97e.disk0
          on primary:  /dev/system/2f801264-fe51-4e8c-9388-f5740798e97e.disk0 (252:2)
        - disk/1: lvm, size 2.0G
          access mode: rw
          logical_id:  system/083ab68c-64dc-4689-aa16-1022f0b68778.disk1
          on primary:  /dev/system/083ab68c-64dc-4689-aa16-1022f0b68778.disk1 (252:4)
    
    <b>3.</b>
    root@ubuntuxen01:~# gnt-instance grow-disk -d ubuntutest01 0 1G
    2012-09-24 14:16:15,201: gnt-instance grow-disk pid=3988 cli:2238 INFO Command line: gnt-instance grow-disk -d ubuntutest01 0 1G
    Mon Sep 24 14:16:15 2012 Growing disk 0 of instance 'ubuntutest01' by 1.0G to 9.0G
    2012-09-24 14:16:21,232: gnt-instance grow-disk pid=3988 cli:2245 ERROR Error during command processing
    Traceback (most recent call last):
      File "/usr/lib/pymodules/python2.7/ganeti/cli.py", line 2241, in GenericMain
        result = func(options, args)
      File "/usr/lib/pymodules/python2.7/ganeti/client/gnt_instance.py", line 673, in GrowDisk
        SubmitOrSend(op, opts)
      File "/usr/lib/pymodules/python2.7/ganeti/cli.py", line 2053, in SubmitOrSend
        return SubmitOpCode(op, cl=cl, feedback_fn=feedback_fn, opts=opts)
      File "/usr/lib/pymodules/python2.7/ganeti/cli.py", line 2030, in SubmitOpCode
        reporter=reporter)
      File "/usr/lib/pymodules/python2.7/ganeti/cli.py", line 2011, in PollJob
        return GenericPollJob(job_id, _LuxiJobPollCb(cl), reporter)
      File "/usr/lib/pymodules/python2.7/ganeti/cli.py", line 1833, in GenericPollJob
        errors.MaybeRaise(msg)
      File "/usr/lib/pymodules/python2.7/ganeti/errors.py", line 506, in MaybeRaise
        raise errcls(*args)
    ProgrammerError: Can only act on disks belonging to the target instance
    Unhandled Ganeti error: Can only act on disks belonging to the target instance
    
    4.
    root@ubuntuxen01:~# gnt-instance info ubuntutest01
    Instance name: ubuntutest01
    UUID: 8fca004e-968f-4e37-a2f9-43d972045623
    Serial number: 3
    Creation time: 2012-09-24 14:14:09
    Modification time: 2012-09-24 14:16:21
    State: configured to be up, actual state is up
      Nodes:
        - primary: ubuntuxen01.domain.intern
          group: default (UUID 32c7a1cc-5996-4f4a-aade-fa32cb67c1e8)
        - secondaries:
      Operating system: linux+ubuntu-12.04_amd64
      Allocated network port: None
      Hypervisor: xen-pvm
        - blockdev_prefix: default (sd)
        - bootloader_args: default ()
        - bootloader_path: default ()
        - cpu_mask: default (all)
        - initrd_path: default ()
        - kernel_args: default ((hd0)/boot/grub/menu.lst)
        - kernel_path: /boot/pv-grub-4.1.2_64.gz
        - reboot_behavior: default (reboot)
        - root_path: default ()
        - use_bootloader: default (False)
      Hardware:
        - always_failover: default (False)
        - auto_balance: default (True)
        - maxmem: 1024
        - memory: default (1024)
        - minmem: 512
        - spindle_use: default (1)
        - vcpus: default (2)
        - NICs:
          - nic/0: MAC: aa:00:00:09:5c:27, IP: None, mode: bridged, link: br0
      Disk template: plain
      Disks:
        - disk/0: lvm, size 8.0G
          access mode: rw
          logical_id:  system/2f801264-fe51-4e8c-9388-f5740798e97e.disk0
          on primary:  /dev/system/2f801264-fe51-4e8c-9388-f5740798e97e.disk0 (252:2)
    root@ubuntuxen01:~#
    
    it seams like grow-disk removes the second disk!!!
    
    5. 
    root@ubuntuxen01:~# gnt-cluster verify
    Submitted jobs 45, 46
    Waiting for job 45 ...
    Mon Sep 24 14:21:21 2012 * Verifying cluster config
    Mon Sep 24 14:21:21 2012 * Verifying cluster certificate files
    Mon Sep 24 14:21:21 2012 * Verifying hypervisor parameters
    Mon Sep 24 14:21:21 2012 * Verifying all nodes belong to an existing group
    Waiting for job 46 ...
    Mon Sep 24 14:21:21 2012 * Verifying group 'default'
    Mon Sep 24 14:21:21 2012 * Gathering data (1 nodes)
    Mon Sep 24 14:21:23 2012 * Gathering disk information (1 nodes)
    Mon Sep 24 14:21:23 2012 * Verifying configuration file consistency
    Mon Sep 24 14:21:23 2012 * Verifying node status
    Mon Sep 24 14:21:23 2012 * Verifying instance status
    Mon Sep 24 14:21:23 2012 * Verifying orphan volumes
    Mon Sep 24 14:21:23 2012   - ERROR: node ubuntuxen01.domain.intern: volume system/083ab68c-64dc-4689-aa16-1022f0b68778.disk1 is unknown
    Mon Sep 24 14:21:23 2012   - ERROR: node ubuntuxen01.domain.intern: volume system/root is unknown
    Mon Sep 24 14:21:23 2012   - ERROR: node ubuntuxen01.domain.intern: volume system/5de84566-cb73-4ce0-9aa6-c8d426a62d61.disk1 is unknown
    Mon Sep 24 14:21:23 2012   - ERROR: node ubuntuxen01.domain.intern: volume system/swap is unknown
    Mon Sep 24 14:21:23 2012 * Verifying N+1 Memory redundancy
    Mon Sep 24 14:21:23 2012 * Other Notes
    Mon Sep 24 14:21:23 2012   - NOTICE: 1 non-redundant instance(s) found.
    Mon Sep 24 14:21:23 2012 * Hooks Results
    <b>What is the expected output? What do you see instead?</b>
    
    <b>Please provide any additional information below.</b>
    
    

    Originally added on 2012-09-24 12:23:46 +0000 UTC.

    AutoMigrated Priority:Medium Status:Obsolete 
    opened by Ganeti-Issues-Migrator 18
  • can't create a cluster... dns issue?

    can't create a cluster... dns issue?

    Originally reported of Google Code with ID 102.

    im using debian lenny trying to create a single-node cluster with LVM, no drbd.
    this is the output of the command im running, and the content of my /etc/hosts. why is the 
    cluster command failing?
    
    moria:~# gnt-cluster init -b eth1 -g moria --master-netdev eth1 moria.middle-earth
    Failure: prerequisites not met for this operation:
    Inconsistency: this host's name resolves to 10.0.1.20,
    but this ip address does not belong to this host. Aborting.
    moria:~# head -n2 /etc/hosts
    127.0.0.1       localhost
    10.0.1.20       moria.middle-earth      moria
    moria:~#
    
    

    Originally added on 2010-03-31 16:54:35 +0000 UTC.

    AutoMigrated Status:NotRepeatable 
    opened by Ganeti-Issues-Migrator 17
  • Support for Python 3.10/3.11 needed

    Support for Python 3.10/3.11 needed

    There was a previous PR for Python3.8 support, but it's not clear further Python work has taken place to support Python 3.9/3.10/3.11.

    Upstream Python has both 3.8 & 3.9 series in security-only fixes.

    Is there an effort to support newer Python yet, before distributions start to remove Python 3.8? (Gentoo is discussing removal of 3.8 already).

    opened by robbat2 1
  • Windows 11 support

    Windows 11 support

    Although Windows 10 will be around until 2025, starting to think about upgrades, I saw the following error trying to install Windows 11 on Ganeti:

    This PC doesn't currently meet Windows 11 system requirements Here's why: X The PC must support TPM 2.0. X The PC must support Secure Boot.

    As I couldn't see any other active discussion, trying to start one here. (TPM was mentioned in #506, but didn't go anywhere.)

    opened by rowlap 1
  • Xen remus support?

    Xen remus support?

    Xen has a live HA support, remus:

    • https://wiki.xenproject.org/wiki/Remus
    • https://wiki.xenproject.org/wiki/Getting_Started_with_Remus

    Are there any plans for Ganeti to support this?

    opened by neszt 0
  • Failed to live migrate instance

    Failed to live migrate instance

    Hello,

    We are currently upgrading our two Ganeti cluster nodes. The live migration on secondary node (node2) and server upgrade all went fine. But when doing a live migration of some instances from node1 to node2 we are experiencing problems and therefore could not proceed with the server upgrade on our first cluster node.

    We have a total of 6 instances running on the cluster and the migration only fails to 3 of the instances. We compared the settings from gnt-instance info and see no big difference.

    node1

    • OS: Debian 11.3
    • Ganeti version: 3.0.1-2
    • Xen Hypervisor: 4.14.4+74-gd7b22226b5-1
    • Storage: DRBD

    node2

    • OS: Debian 11.5
    • Ganeti version: 3.0.2-1~deb11u1
    • Xen Hypervisor: 4.14.5+24-g87d90d511c-1
    • Storage: DRBD

    Error message when migrating an instance from node1 to node2:

    node2:~$ sudo gnt-instance migrate ***REMOVED***
    
    Instance ***REMOVED*** will be migrated. Note that
    migration might impact the instance if anything goes wrong (e.g. due
    to bugs in the hypervisor). Continue?
    y/[n]/?: y
    Tue Sep 27 11:32:07 2022 Migrating instance ***REMOVED***
    Tue Sep 27 11:32:08 2022 * checking disk consistency between source and target
    Tue Sep 27 11:32:09 2022 * closing instance disks on node ***REMOVED-NODE2***
    Tue Sep 27 11:32:09 2022 * changing into standalone mode
    Tue Sep 27 11:32:10 2022 * changing disks into dual-master mode
    Tue Sep 27 11:32:14 2022 * wait until resync is done
    Tue Sep 27 11:32:15 2022 * opening instance disks on node ***REMOVED-NODE1*** in shared mode
    Tue Sep 27 11:32:15 2022 * opening instance disks on node ***REMOVED-NODE2*** in shared mode
    Tue Sep 27 11:32:16 2022 * preparing ***REMOVED-NODE2*** to accept the instance
    Tue Sep 27 11:32:17 2022 * migrating instance to ***REMOVED-NODE2***
    Tue Sep 27 11:32:17 2022 Migration failed, aborting
    Tue Sep 27 11:32:18 2022 * closing instance disks on node ***REMOVED-NODE2***
    Tue Sep 27 11:32:19 2022 * changing into standalone mode
    Tue Sep 27 11:32:20 2022 * changing disks into single-master mode
    Tue Sep 27 11:32:21 2022 * wait until resync is done
    Failure: command execution error:
    Could not migrate instance ***REMOVED***: Failed to migrate instance: Failed to migrate instance ***REMOVED***: Saving to migration stream new xl format (info 0x3/0x0/1104)
    xc: info: Saving domain 5, type x86 PV
    2022/09/27 11:32:17 socat[1164188] E write(7, 0x7f98d3d39000, 65536): Broken pipe
    libxl: error: libxl_utils.c:510:libxl_read_exactly: file/stream truncated reading ipc msg header from domain 5 save/restore helper stdout pipe
    libxl: error: libxl_exec.c:127:libxl_report_child_exitstatus: domain 5 save/restore helper [1164189] died due to fatal signal Broken pipe
    migration sender: libxl_domain_suspend failed (rc=-3)
    libxl: info: libxl_exec.c:117:libxl_report_child_exitstatus: migration transport process [1164188] exited with error status 1
    Migration failed, resuming at sender.
    xc: error: Couldn't map start_info: Internal error
    libxl: error: libxl_dom_suspend.c:665:domain_resume_done: Domain 5:xc_domain_resume failed: Operation not permitted
    
    

    If you need more information, please let me know. Thanks in advance.

    opened by CamZie 1
  • gnt-node modify --offline=no promotes node to master-candidate while master-capable flag is set to false

    gnt-node modify --offline=no promotes node to master-candidate while master-capable flag is set to false

    We have cluster with a few nodes, 3 of them are marked as master-capable, the others are not. I suspect wrong behavior when changing offline flag on nodes:

    node-1:~# gnt-node list -o name,master_capable,master_candidate
    Node                               MasterCapable MasterC
    node-1  Y             Y
    node-2  Y             Y
    node-3  Y             Y
    node-4  N             N
    node-11 N             N
    node-12 N             N
    node-13 N             N
    node-14 N             N
    node-15 N             N
    node-1:~# gnt-node modify --offline=yes node-15 
    Modified node node-15
     - offline -> True
    node-1:~# gnt-node list -o name,master_capable,master_candidate
    Node                               MasterCapable MasterC
    node-1  Y             Y
    node-2  Y             Y
    node-3  Y             Y
    node-4  N             N
    node-11 N             N
    node-12 N             N
    node-13 N             N
    node-14 N             N
    node-15 N             N
    node-1:~# gnt-node modify --offline=no --force node-15 
    Mon Sep 12 09:25:43 2022  - INFO: Auto-promoting node to master candidate
    Mon Sep 12 09:25:43 2022  - WARNING: Transitioning node from offline to online state without using re-add. Please make sure the node is healthy!
    Modified node node-15
     - master_candidate -> True
     - offline -> False
    node-1:~# gnt-node list -o name,master_capable,master_candidate
    Node                               MasterCapable MasterC
    node-1  Y             Y
    node-2  Y             Y
    node-3  Y             Y
    node-4  N             N
    node-11 N             N
    node-12 N             N
    node-13 N             N
    node-14 N             N
    node-15 N             Y
    node-1:~# 
    

    Documentation explicitly states:

    Ganeti 2.4 introduces for this purpose a new master_capable flag, which (when unset) prevents nodes from being marked as master candidates, either manually or automatically.

    https://docs.ganeti.org/docs/ganeti/3.0/html/admin.html#multi-site-model

    opened by rkojedzinszky 0
  • Inter-Cluster Instance Transfer fail due to socat TLS verification

    Inter-Cluster Instance Transfer fail due to socat TLS verification

    We have been successfully using the move-instance Script to move instances from older clusters (e.g. based on Debian Stretch) to newer Clusters (based on Debian Bullseye / Ganeti 3.0.2). However, we can not move Instances between Debian Bullseye servers.

    This happens because socat is configured to verify the TLS certificate presented by the destination node: https://github.com/ganeti/ganeti/blob/da6aba31874a87e81280c41f65541b9cb780827a/lib/impexpd/init.py#L91

    However, with recent socat versions verification also includes matching the hostname to the certificate CN/SAN entries. For the connection, the destination node's ip address is used, but the cluster certificate always contains ganeti.example.com. This is hardcoded in the constants: https://github.com/ganeti/ganeti/blob/da6aba31874a87e81280c41f65541b9cb780827a/src/Ganeti/Constants.hs#L605

    I see multiple solutions to this problem:

    • we can supply each node with a valid certificate (which contains the hostname and all primary/secondary IP addresses) and use that for the import socket server
    • we can make the verify switch configurable and leave it up to the user (with verify=1 being always broken)
    • set verify=0 to at least allow people to migrate instances again
    • something else

    What would you suggest?

    opened by rbott 0
Releases(v3.0.2)
  • v3.0.2(Feb 28, 2022)

    This release contains the following bug- and compatibility fixes:

    • KVM: fix NIC hotplugging with vhost_net=True (#1651), use_chroot=True (#1644) and use_guest_agent=True (#1620).
    • KVM: fix asynchronous events breaking QMP handshakes (#1649)
    • KVM: handle disk_cache consistently between boot and hotplugging (#1645)
    • KVM: fix live migration with non-root / chrooted QEMU (dynamic auto-ro) (#1603)
    • KVM: fix unsupported keymap include in >=qemu-4.0 (#1612)
    • XEN: fix live migration of xen instances (#1582)
    • NET: relax VLAN check with veth devices (#1533)
    • LVM: fix lvcreate for newer lvm versions (#1586)
    • DRBD: warn users that altered DRBD parameters do not affect existing devices (#781)
    • Node-Add: byte/string comparison causes false-positive warning (#1635)
    • RAPI: return HTTP 400 on request parse error (#1610)
    • build: fix building docs on Debian Bullseye (#1602)
    • build: adjust for Pyparsing 3.0 (#1638)
    • build: adjust for TupE type change in Template Haskell 2.16 (#1613)
    • build: permit base64-bytestring 1.1 and QuickCheck 2.14 (#1613)
    • tools: fix 2to3 leftover for move-instance (#1616)
    • Docs: fix building on recent sphinx versions (#1602)
    Source code(tar.gz)
    Source code(zip)
    ganeti-3.0.2.tar.gz(4.71 MB)
  • v3.0.1(Feb 4, 2021)

    This is a bugfix release, containing the following fixes:

    • Fix disk hotplugging with QEMU >=4.0 (#1556)
    • Correctly configure the aio, cache and discard disk parameters for hotplugged disks (#1561)
    • Configure the correct number of vectors for hotplugged MQ tap devices (#1568)
    • Properly detect MQ NIC support for newer KVM versions (#1569)
    • Significantly speed up disk verification jobs by caching LVM information (#1565)
    • Fix a potential issue when exchanging UTF-8 data over plain HTTP RAPI (#1575)
    Source code(tar.gz)
    Source code(zip)
    ganeti-3.0.1.tar.gz(4.69 MB)
    ganeti-3.0.1.tar.gz.sig(566 bytes)
  • v3.0.0(Dec 23, 2020)

    3.0 final is out! There are only a few fixes since rc1 and the notable addition of automatic postcopy migration in KVM. For upgrades from 2.x, please see the notes in the 3.0.0-beta1 release!

    Automatic postcopy migration handling for KVM guests

    Ganeti now supports switching a KVM live migration automatically over to postcopy mode if the instance's migration_caps include the postcopy-ram capability and the live migration has already completed two full memory passes. Postcopy live migration support in Ganeti 3.0 is considered experimental; users are encouraged to test it and report bugs, but it should be used with care in production environments.

    We recommend using postcopy migration with at least QEMU version 3.0; QEMU versions before 3.0 do not support limiting the bandwidth of a postcopy migration, which might saturate the network and cause interference with e.g. DRBD connections. For QEMU 3.0 and on, we apply the migration_bandwidth HV parameter that limits the regular live migration bandwidth to the postcopy phase as well.

    Misc changes

    Bugfixes:

    • Fix multi-queue tap creation that was broken by the Python 3 migration (#1534)
    • Make sure we set KVM migration capabilities on both sides of the live migration and clear them once the migration is over (#1525)
    • Properly cleanup the dedicated spice connection used to set a KVM instance's spice password; this avoids blocking the instance on boot (#1535, #1536)
    • Fix non-SSL operation for Python daemons, broken by the Python 3 migration. This should be only relevant for the RAPI daemon running behind a reverse proxy; noded requires SSL to function properly (#1508, #1538)

    Compatibility fixes:

    • Correctly report the status of user-down KVM instances with QEMU >= 3.1 (#1440, #1537)
    Source code(tar.gz)
    Source code(zip)
    ganeti-3.0.0.tar.gz(4.69 MB)
    ganeti-3.0.0.tar.gz.sig(566 bytes)
  • v3.0.0rc1(Sep 20, 2020)

    This is the first release candidate for 3.0.0. Since releasing 3.0.0 beta1 in June no critical issues have surfaced, and this release includes some feature and compatibility improvements but no breaking changes.

    Upgrade notes

    This release comes with the same restrictions as the previous one: to upgrade, you either need 2.16.2 or 3.0.0 beta1 installed. Upgrading directly from older versions or from the Ganeti-2.17 beta version is not supported. Please refer to the 3.0.0 beta1 upgrade notes for more information.

    Important changes

    GHC 8.0 through 8.8 compatibility

    This release has been built/tested against GHC 8.0 through 8.8 which means it should work on most current and near-future distribution versions. Support for GHC versions < 8 has already been dropped with the previous Ganeti release. Along with this change we have also added compatibility to Cabal version 3.0.

    Other notable changes

    Bugfixes:

    • Fix distribution of hmac.key to new nodes - this has been pulled from the 2.17 tree #(1494)

    Compatibility Improvements:

    • Open vSwitch: Do not fail to add node when the ovs_name or ovs_link already exists (#1495)
    • Improved support for DRBD >= 8.4 (#1496)
    • Relax QuickCheck version restriction (#1479)

    Documentation Fixes:

    • Various typos have been fixed (#1483, #1487, #1489, #1501)
    • Documentation build has been improved (#1500, #1504)
    • Missing information has been added (#1490, #1505, #1517)

    Build Environment:

    • We now have matrix / nightly builds using Github Actions (#1512)
    • We now have code analysis through Github CodeQL (#1514)

    Misc:

    • Support other values than 'none' for 'disk_cache' when using RBD (#1516)
    • The OS install scripts can now query the configured disk size via a new environment variable 'DISK_%N_SIZE' (#1503)
    Source code(tar.gz)
    Source code(zip)
    ganeti-3.0.0-rc1.tar.gz(4.70 MB)
    ganeti-3.0.0-rc1.tar.gz.sig(566 bytes)
  • v3.0.0beta1(Jun 5, 2020)

    This is a major version pre-release, porting Ganeti to Python 3, fixing bugs and adding new features.

    This is also the first major release to be created by community contributors exclusively. As of May 2020, Google transferred the maintenance of Ganeti to the community. We would like to thank Google for the support and resources it granted to the project and for allowing the community to carry it forward!

    Upgrade notes

    Ganeti versions earlier than 2.16.2 will refuse to upgrade to 3.0 using gnt-cluster upgrade. If you are using your distribution packages, chances are their maintainers will provide a smooth upgrade path from older versions, so check the package release notes. If you build Ganeti from source, please upgrade to 2.16.2 as an intermediate step before upgrading to 3.0, or consult Github issue #1423 for possible workarounds.

    Note that at this time there is no supported upgrade path for users running Ganeti-2.17 (i.e. 2.17.0 beta1). Ganeti-2.17 was never released, so hopefully no one uses it.

    Important changes

    Python >=3.6 required

    This release switches the whole Ganeti codebase over to Python 3. Python 2 has reached its end-of-life and is being removed from most distributions, so we opted to skip dual-version support completely and convert the code straight to Python 3-only, the only exception being the RAPI client which remains Python-2 compatible.

    We have tested the code as well as we can, but there is still the possibility of breakage, as the conversion touches a big part of the codebase that cannot always be tested automatically. Please test this release if possible and report any bugs on GitHub.

    Note that the minimum required Python version is 3.6.

    GHC >= 8 required

    This release removes support for ancient versions of GHC and now requires at least GHC 8.0 to build.

    VLAN-aware bridging

    This version adds support for VLAN-aware bridging. Traditionally setups using multiple VLANs had to create one Linux bridge per VLAN and assign instance NICs to the correct bridge. For large setups this usually incurred a fair amount of configuration that had to be kept in sync between nodes. An alternative was to use OpenVSwitch, for which Ganeti already included VLAN support.

    Beginning with 3.0, Ganeti supports VLAN-aware bridging: it is now possible to have a single bridge handling traffic for multiple VLANs and have instance NICs assigned to one or more VLANs using the vlan NIC parameter with the same syntax as for OpenVSwitch (see the manpage for gnt-instance). Note that Ganeti expects VLAN support for the bridge to be enabled externally, using ip link set dev <bridge> type bridge vlan_filtering 1.

    Other notable changes

    Bugfixes:

    • Refactor LuxiD's job forking code to make job process creation more reliable. This fixes sporadic failures when polling jobs for status changes, as well as randomly-appearing 30-second delays when enqueueing a new job (#1411).
    • Wait for a Luxi job to actually finish before archiving it. This prevents job file accumulation in master candidate queues (#1266).
    • Avoid accidentally backing up the export directory on cluster upgrade (#1337).
    • This release includes all fixes from 2.16.2 as well, please refer to the 2.16.2 changelog below.

    Compatibility changes:

    • Orchestrate KVM live migrations using only QMP (and not the human monitor), ensuring compatibility with QEMU 4.2 (#1433).
    • Use iproute2 instead of brctl, removing the dependency on bridge-utils (#1394).
    • Enable AM_MAINTAINER_MODE, supporting read-only VPATH builds (#1391).
    • Port from Haskell Crypto (unmaintained) to cryptonite (#1405)
    • Enable compatibility with pyopenssl >=19.1.0 (#1446)
    Source code(tar.gz)
    Source code(zip)
    ganeti-3.0.0.beta1.tar.gz(4.70 MB)
    ganeti-3.0.0.beta1.tar.gz.sig(141 bytes)
  • v2.16.2(May 25, 2020)

    Version 2.16.2

    This is a bugfix and compatibility release.

    Important note

    Due to the way the gnt-cluster upgrade mechanism is implemented, Ganeti versions earlier than 2.16.2 will refuse to upgrade to the upcoming 3.0 release. This release changes the upgrade logic to explicitly allow upgrades from 2.16.2 and later to 3.0.

    See #1423 for more details and the relevant discussion.

    Bugfixes

    • Fix node secondary instance count. Secondary instances were counted as many times as their disk count (#1399)
    • RPC: remove 1-second wait introduced by Expect: 100-Continue. This speeds up all RPC operations that pass through LuxiD (most notably queries like gnt-instance list) by 1 second.
    Source code(tar.gz)
    Source code(zip)
    ganeti-2.16.2.tar.gz(4.67 MB)
    ganeti-2.16.2.tar.gz.sig(566 bytes)
  • v2.16.1(Apr 1, 2019)

    This is a bugfix and compatibility release.

    Important changes

    Updated X.509 certificate signing algorithm

    Ganeti now uses the SHA-256 digest algorithm to sign all generated X.509 certificates used to secure the RPC communications between nodes. Previously, Ganeti was using SHA-1 which is seen as weak (but not broken) and has been deprecated by most vendors; most notably, OpenSSL — used by Ganeti on some setups — rejects SHA-1-signed certificates when configured to run on security level 2 and above.

    Users are advised to re-generate Ganeti's server and node certificates after installing 2.16.1 on all nodes using the following command:

      gnt-cluster renew-crypto --new-cluster-certificate
    

    On setups using RAPI and/or SPICE with Ganeti-generated certificates, --new-rapi-certificate and --new-spice-certificate should be appended to the command above.

    QEMU 3.1 compatibility

    Previous versions of Ganeti used QEMU command line options that were removed in QEMU 3.1, leading to an inability to start KVM instances with QEMU 3.1. This version restores compatibility with QEMU 3.1 by adapting to these changes. This was done in a backwards-compatible way, however there is one special case: Users using VNC with X.509 support enabled will need to be running at least QEMU 2.5. See #1342 for details.

    Newer GHC support

    Ganeti 2.16.0 could only be built using GHC versions prior to 7.10, as GHC 7.10 and later versions introduced breaking API changes that made the build fail.

    This release introduces support for building with newer GHC versions: Ganeti is now known to build with GHC 8.0, 8.2 and 8.4. Furthermore, Ganeti can now be built with snap-server 1.0 as well as hinotify 0.3.10 and later. Previously supported versions of GHC and of these libraries remain supported.

    Misc changes

    Compatibility fixes:

    • Fix initscript operation on systems with dpkg >= 1.19.4 (#1322) (@apoikos)
    • Support Sphinx versions later than 1.7 (#1333) (@YSelfTool)
    • Force KVM to use cache=none when aio=native is set; this is mandatory for QEMU versions later than 2.6 (#43) (@akosiaris)
    • Handle the new output format of rbd showmapped introduced in Ceph Mimic (#1339) (@atta)
    • Support current versions of python-psutil (@gedia)
    • Fix distcheck-hook with automake versions >= 1.15 (@apoikos )
    • Fix cli tests with shelltestrunner versions >= 1.9 (@apoikos )

    Bugfixes:

    • Allow IPv6 addresses in the vnc_bind_address KVM hypervisor parameter (#1257) (@candlerb)
    • Fix iproute2 invocation to accept dev as a valid interface name (#26) (@arnd)
    • Properly handle OpenVSwitch trunk ports without native VLANs (#1324) (@gedia)
    • Fix virtio-net multiqueue support (#1268) (@gedia)
    • Make the ganeti-kvm-poweroff example script work on systems with systemd/sysv integration (#1288)
    • Avoid triggering the CPU affinity code when the instance's CPU mask is set to all, relaxing the runtime dependency on python-psutil (@calumcalder)

    Performance improvements:

    • Speed up Haskell test execution (@iustin)
    • Speed up Python test execution (@apoikos)

    Documentation fixes:

    • Fix a couple of typos in the gnt-instance man page (#1279) (@regnauld)
    • Fix a typo in doc/install.rst (Igor Vuk)

    Enhancements:

    • KVM process logs are now obtained and saved under /var/log/ganeti/kvm (@yiannist)

    ganeti-2.16.1.tar.gz checksums

    MD5: 3b40440ba0996a0466e129198c342da9  ganeti-2.16.1.tar.gz
    SHA1: 1831ca5389647df96a3edbe2494208f82999e2cb  ganeti-2.16.1.tar.gz
    SHA256: 45a79592a912caaa5290411447f661d5b81e99ea555dc272f3459b1d727a557b  ganeti-2.16.1.tar.gz
    
    Source code(tar.gz)
    Source code(zip)
    ganeti-2.16.1.tar.gz(4.67 MB)
    ganeti-2.16.1.tar.gz.sig(566 bytes)
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions

Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions

Arie Bregman 35.1k Jan 2, 2023
IP address management (IPAM) and data center infrastructure management (DCIM) tool.

NetBox is an IP address management (IPAM) and data center infrastructure management (DCIM) tool. Initially conceived by the network engineering team a

NetBox Community 11.8k Jan 7, 2023
Spinnaker is an open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence.

Welcome to the Spinnaker Project Spinnaker is an open-source continuous delivery platform for releasing software changes with high velocity and confid

null 8.8k Jan 7, 2023
Helperpod - A CLI tool to run a Kubernetes utility pod with pre-installed tools that can be used for debugging/testing purposes inside a Kubernetes cluster

Helperpod is a CLI tool to run a Kubernetes utility pod with pre-installed tools that can be used for debugging/testing purposes inside a Kubernetes cluster.

Atakan Tatlı 2 Feb 5, 2022
sysctl/sysfs settings on a fly for Kubernetes Cluster. No restarts are required for clusters and nodes.

SysBindings Daemon Little toolkit for control the sysctl/sysfs bindings on Kubernetes Cluster on the fly and without unnecessary restarts of cluster o

Wallarm 19 May 6, 2022
Checkmk kube agent - Checkmk Kubernetes Cluster and Node Collectors

Checkmk Kubernetes Cluster and Node Collectors Checkmk cluster and node collecto

tribe29 GmbH 15 Dec 26, 2022
MLops tools review for execution on multiple cluster types: slurm, kubernetes, dask...

MLops tools review focused on execution using multiple cluster types: slurm, kubernetes, dask...

null 4 Nov 30, 2022
Play Wordle from any Kubernetes cluster.

wordle-operator ?? ⬛ ?? ?? ⬛ Play Wordle from any Kubernetes cluster. Using the power of CustomResourceDefinitions and Kubernetes Operators, now you c

Lucas Melin 1 Jan 15, 2022
Coding For Entrepreneurs 100 Jan 1, 2023
Deploy a simple Multi-Node Clickhouse Cluster with docker-compose in minutes.

Simple Multi Node Clickhouse Cluster I hate those single-node clickhouse clusters and manually installation, I mean, why should we: Running multiple c

Nova Kwok 11 Nov 18, 2022
More than 130 check plugins for Icinga and other Nagios-compatible monitoring applications. Each plugin is a standalone command line tool (written in Python) that provides a specific type of check.

Python-based Monitoring Check Plugins Collection This Enterprise Class Check Plugin Collection offers a package of more than 130 Python-based, Nagios-

Linuxfabrik 119 Dec 27, 2022
A declarative Kubeflow Management Tool inspired by Terraform

?? KRSH is Alpha version, so many bugs can be reported. If you find a bug, please write an Issue and grow the project together! A declarative Kubeflow

Riiid! 128 Oct 18, 2022
HXVM - Check Host compatibility with the Virtual Machines

HXVM - Check Host compatibility with the Virtual Machines. Features | Installation | Usage Features Takes input from user to compare how many VMs they

Aman Srivastava 4 Oct 15, 2022
Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.

Glances - An eye on your system Summary Glances is a cross-platform monitoring tool which aims to present a large amount of monitoring information thr

Nicolas Hennion 22k Jan 8, 2023
Let's Git - Version Control & Open Source Homework

Let's Git - Version Control & Open Source Homework Welcome to this homework for our MOOC: Let's Git! We hope you will learn a lot and have fun working

null 1 Dec 5, 2021
pyinfra automates infrastructure super fast at massive scale. It can be used for ad-hoc command execution, service deployment, configuration management and more.

pyinfra automates/provisions/manages/deploys infrastructure super fast at massive scale. It can be used for ad-hoc command execution, service deployme

Nick Barrett 2.1k Dec 29, 2022
Ralph is the CMDB / Asset Management system for data center and back office hardware.

Ralph Ralph is full-featured Asset Management, DCIM and CMDB system for data centers and back offices. Features: keep track of assets purchases and th

Allegro Tech 1.9k Jan 1, 2023
📦 Powerful Package manager which updates plugins & server software for minecraft servers

pluGET A powerful package manager which updates Plugins and Server Software for minecraft servers. Screenshots check all to check installed plugins fo

null 106 Dec 16, 2022