Revision e90739d6
b/INSTALL | ||
---|---|---|
34 | 34 |
- `ctypes Python module |
35 | 35 |
<http://starship.python.net/crew/theller/ctypes/>`_, if running on |
36 | 36 |
python 2.4 (optional, used for node daemon memory locking) |
37 |
- `socat <http://www.dest-unreach.org/socat/>`_ |
|
37 |
- `socat <http://www.dest-unreach.org/socat/>`_, see :ref:`note |
|
38 |
<socat-note>` below |
|
38 | 39 |
- `Paramiko <http://www.lag.net/paramiko/>`_, if you want automated SSH |
39 | 40 |
setup; optional otherwise but manual setup of the nodes required |
40 | 41 |
|
... | ... | |
52 | 53 |
If you want to build from source, please see doc/devnotes.rst for more |
53 | 54 |
dependencies. |
54 | 55 |
|
56 |
.. _socat-note: |
|
57 |
.. note:: |
|
58 |
Ganeti's import/export functionality uses ``socat`` with OpenSSL for |
|
59 |
transferring data between nodes. By default, OpenSSL 0.9.8 and above |
|
60 |
employ transparent compression of all data using zlib if supported by |
|
61 |
both sides of a connection. In cases where a lot of data is |
|
62 |
transferred, this can lead to an increased CPU usage. Additionally, |
|
63 |
Ganeti already compresses all data using ``gzip`` where it makes sense |
|
64 |
(for inter-cluster instance moves). |
|
65 |
|
|
66 |
To remedey this situation, patches implementing a new ``socat`` option |
|
67 |
for disabling OpenSSL compression have been contributed and will |
|
68 |
likely be included in the next feature release. Until then, users or |
|
69 |
distributions need to apply the patches on their own. |
|
70 |
|
|
71 |
Ganeti will use the option if it's detected by the ``configure`` |
|
72 |
script; auto-detection can be disabled by explicitely passing |
|
73 |
``--enable-socat-compress`` (use the option to disable compression) or |
|
74 |
``--disable-socat-compress`` (don't use the option). |
|
75 |
|
|
76 |
The patches and more information can be found on |
|
77 |
http://www.dest-unreach.org/socat/contrib/socat-opensslcompress.html. |
|
78 |
|
|
55 | 79 |
|
56 | 80 |
Installation of the software |
57 | 81 |
---------------------------- |
b/Makefile.am | ||
---|---|---|
613 | 613 |
echo "KVM_PATH = '$(KVM_PATH)'"; \ |
614 | 614 |
echo "SOCAT_PATH = '$(SOCAT)'"; \ |
615 | 615 |
echo "SOCAT_USE_ESCAPE = $(SOCAT_USE_ESCAPE)"; \ |
616 |
echo "SOCAT_USE_COMPRESS = $(SOCAT_USE_COMPRESS)"; \ |
|
616 | 617 |
echo "LVM_STRIPECOUNT = $(LVM_STRIPECOUNT)"; \ |
617 | 618 |
echo "TOOLSDIR = '$(toolsdir)'"; \ |
618 | 619 |
echo "GNT_SCRIPTS = [$(foreach i,$(notdir $(gnt_scripts)),'$(i)',)]"; \ |
b/configure.ac | ||
---|---|---|
297 | 297 |
|
298 | 298 |
AC_SUBST(SOCAT_USE_ESCAPE) |
299 | 299 |
|
300 |
SOCAT_USE_COMPRESS= |
|
301 |
AC_ARG_ENABLE([socat-compress], |
|
302 |
[AS_HELP_STRING([--enable-socat-compress], |
|
303 |
[use OpenSSL compression option available in patched socat builds |
|
304 |
(see INSTALL for details; default: detect automatically)])], |
|
305 |
[[if test "$enableval" = yes; then |
|
306 |
SOCAT_USE_COMPRESS=True |
|
307 |
else |
|
308 |
SOCAT_USE_COMPRESS=False |
|
309 |
fi |
|
310 |
]]) |
|
311 |
|
|
312 |
if test -z "$SOCAT_USE_COMPRESS" |
|
313 |
then |
|
314 |
if $SOCAT -hhh | grep -w -q openssl-compress; then |
|
315 |
SOCAT_USE_COMPRESS=True |
|
316 |
else |
|
317 |
SOCAT_USE_COMPRESS=False |
|
318 |
fi |
|
319 |
fi |
|
320 |
|
|
321 |
AC_SUBST(SOCAT_USE_COMPRESS) |
|
322 |
|
|
300 | 323 |
if man --help | grep -q -e --warnings |
301 | 324 |
then |
302 | 325 |
MAN_HAS_WARNINGS=1 |
b/lib/constants.py | ||
---|---|---|
220 | 220 |
KVM_PATH = _autoconf.KVM_PATH |
221 | 221 |
SOCAT_PATH = _autoconf.SOCAT_PATH |
222 | 222 |
SOCAT_USE_ESCAPE = _autoconf.SOCAT_USE_ESCAPE |
223 |
SOCAT_USE_COMPRESS = _autoconf.SOCAT_USE_COMPRESS |
|
223 | 224 |
SOCAT_ESCAPE_CODE = "0x1d" |
224 | 225 |
|
225 | 226 |
# For RSA keys more bits are better, but they also make operations more |
b/lib/impexpd/__init__.py | ||
---|---|---|
80 | 80 |
SOCAT_OPENSSL_OPTS = ["verify=1", "method=TLSv1", |
81 | 81 |
"cipher=%s" % constants.OPENSSL_CIPHERS] |
82 | 82 |
|
83 |
if constants.SOCAT_USE_COMPRESS: |
|
84 |
# Disables all compression in by OpenSSL. Only supported in patched versions |
|
85 |
# of socat (as of November 2010). See INSTALL for more information. |
|
86 |
SOCAT_OPENSSL_OPTS.append("compress=none") |
|
87 |
|
|
83 | 88 |
SOCAT_OPTION_MAXLEN = 400 |
84 | 89 |
|
85 | 90 |
(PROG_OTHER, |
Also available in: Unified diff