Add daemon for instance import and export
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:Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
Showing
- Makefile.am 12 additions, 2 deletionsMakefile.am
- daemons/import-export 647 additions, 0 deletionsdaemons/import-export
- epydoc.conf 1 addition, 1 deletionepydoc.conf
- lib/constants.py 6 additions, 0 deletionslib/constants.py
- lib/objects.py 11 additions, 0 deletionslib/objects.py
- test/import-export_unittest-helper 77 additions, 0 deletionstest/import-export_unittest-helper
- test/import-export_unittest.bash 196 additions, 0 deletionstest/import-export_unittest.bash
Loading
Please register or sign in to comment