Skip to content
  • Michael Hanselmann's avatar
    Add daemon for instance import and export · 2d76b580
    Michael Hanselmann authored
    
    
    This backend daemon for instance import and export will be used to
    transfer instance data to other machines. It is implemented in a generic
    way to support different ways of data input and output. The third-party
    program “socat”, which is already used by the KVM hypervisor abstraction,
    is used to connect to remote machines using SSL/TLS. After starting the
    child processes in a separate process group, the import/export daemon
    monitors their output and updates a status file regularily. This status
    file can then be read by ganeti-noded (not in this patch).
    
    Three I/O methods are supported: Raw disk, file and script. Each of these
    can be used for import and export.
    
    Similar to daemon-util, an incomplete set of tests written in Bash is
    included.
    
    Two future enhancements are planned:
    - Run parts of the command chain as a dedicated user (privilege
      separation).
    - Currently users of this daemon have to poll the status file while data
      is transferred. This is inefficient and creates unnecessary delays. By
      adding “dd” into the chain and sending it SIGUSR1 regularily, we can get
      some statistics, optimize the polling frequenc and even provide the user
      with an ETA (which isn't available with all current methods to
      import/export instance data).
    
    Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
    Reviewed-by: default avatarIustin Pop <iustin@google.com>
    2d76b580