Changesets: bareos
master d4431a51 2013-05-04 20:37
Ported: N/A Details Diff |
Initial working version of SD-SD replication. This code implements the replication of data between two Storage Daemons used by the migrate and copy jobs. This is an extenstion of the existing migration and copy job functionality. The old code already could select two different storage resources on two different Storage Daemons but it would then only connect to the write storage and ask there for the read storage which is ofcourse not known there. This code checks to see if the read and write storage is located on diffferent Storage Daemons by comparing the address, SDport and password of the remote storage daemon. If it detects there are two Storage Daemons involved it will use the new SD-SD communication protocol to perform a replicate of the data from the read storage to the write storage. This patch implements the following: - Refactored code for authenticating a daemon, this was refactored so that clients like the bconsole and qt-console from now on use the now working authenticate_with_director method of the bsock class so we don't duplicate code to much. Also the other authentication was refactored as part of this overhaul of the authentication system. There are now generic functions which allow to authenticate a certain daemon and a specific authentication is implemented using these functions. For the SD-SD authentication there is some extra code to be able to have one storage daemon start the challenge and the let the other response otherwise the authentication would never work as both challenge each other at the same time. - Refactored a lot of code to properly use a boolean when things are a boolean and not polute the code with assigning true to an integer variable. That by incident false is 0 and true is 1 doesn't mean that you shouldn't just call a variable of the type bool and mix and match integer and boolean all over the code. A lot done more to come. - Most protocol messages are now put into static char variables in the code instead of defining them directly in the code call. This was done in some parts of the code but not nearly enough this is a good step in the right direction. - You can bandwith limit your replication sessions in multiple ways. - set a bandwidth limit in the migration/copy job - set a bandwitdh limit for the writing SD in the SD definition in the director config. - set a bandwitdh limit for the reading SD in the SD definition in the director config. - set a bandwidth limit on the reading SD in the storage daemon config - set a bandwidth limit on the writing SD in the storage daemon config - change the bandwith via the console setbandwidth cmd. - The already allocated mig_jcr for a migration and copy Job is used to track the communication with the writing SD. The reading SD is controlled via the normal jcr structure. For this to work the mig_jcr is created without a so called Messages resource so when using the mig_jcr for controlling the writing SD we don't get those nasty mail and database logging as if the Job actually did run. - A new SD-SD communication protocol is implemented and this can be extended in the future to perform other SD-SD protocol features. For now the generic listener of the SD will understand the following incoming connections: - FD - SD backup and restore sessions which start with the following sequence: Hello Start Job <jobname> - SD - SD replication of data which start with the following sequence: Hello Start Storage Job <jobname> - DIR - SD controlling sessions for controlling the SD from the director. - The old one Storage Daemon migrate and copy is still available and when the director finds out both the read and write storage is one the same SD it will use this optimized and fastest code path where the SD reads the data and directly writes the data to other media available to the same SD. SD-SD network replication is only used when the two SDs are determined to be different this way we only use the network when really neeeded and the one SD replication using internal stuctures is way faster then any loopback network send protocol. - Comments are fixed along the way. - Parts of lib/message.c are reindented as it used the wrong indention levels. Fixes 0000007: Job migration/copy between different SDs |
Affected Issues 0000007 |
|
mod - src/win32/qt-console/bat.pro | Diff File | ||
mod - src/win32/console/Makefile | Diff File | ||
mod - src/stored/wait.c | Diff File | ||
mod - src/stored/stored_conf.h | Diff File | ||
mod - src/stored/stored_conf.c | Diff File | ||
mod - src/stored/stored.c | Diff File | ||
mod - src/stored/status.c | Diff File | ||
add - src/stored/sd_cmds.c | Diff File | ||
mod - src/stored/reserve.c | Diff File | ||
mod - src/stored/record.h | Diff File | ||
mod - src/stored/read.c | Diff File | ||
mod - src/stored/protos.h | Diff File | ||
mod - src/stored/mac.c | Diff File | ||
mod - src/stored/job.c | Diff File | ||
mod - src/stored/fd_cmds.c | Diff File | ||
mod - src/stored/dircmd.c | Diff File | ||
mod - src/stored/btape.c | Diff File | ||
mod - src/stored/bscan.c | Diff File | ||
mod - src/stored/bls.c | Diff File | ||
mod - src/stored/bextract.c | Diff File | ||
mod - src/stored/bcopy.c | Diff File | ||
mod - src/stored/authenticate.c | Diff File | ||
mod - src/stored/askdir.c | Diff File | ||
mod - src/stored/append.c | Diff File | ||
mod - src/stored/acquire.c | Diff File | ||
mod - src/stored/Makefile.in | Diff File | ||
rm - src/qt-console/bcomm/dircomm_auth.cpp | Diff File | ||
mod - src/qt-console/bcomm/dircomm.h | Diff File | ||
mod - src/qt-console/bcomm/dircomm.cpp | Diff File | ||
mod - src/qt-console/bat.pro.in | Diff File | ||
mod - src/lib/tls.c | Diff File | ||
mod - src/lib/protos.h | Diff File | ||
mod - src/lib/message.h | Diff File | ||
mod - src/lib/message.c | Diff File | ||
mod - src/lib/cram-md5.c | Diff File | ||
mod - src/lib/bsock.h | Diff File | ||
mod - src/lib/bsock.c | Diff File | ||
mod - src/lib/base64.c | Diff File | ||
mod - src/include/jcr.h | Diff File | ||
mod - src/filed/verify_vol.c | Diff File | ||
mod - src/filed/verify.c | Diff File | ||
mod - src/filed/status.c | Diff File | ||
mod - src/filed/restore.c | Diff File | ||
mod - src/filed/protos.h | Diff File | ||
mod - src/filed/job.c | Diff File | ||
mod - src/filed/filed.c | Diff File | ||
mod - src/filed/backup.c | Diff File | ||
mod - src/filed/authenticate.c | Diff File | ||
mod - src/filed/accurate.c | Diff File | ||
mod - src/dird/verify.c | Diff File | ||
mod - src/dird/vbackup.c | Diff File | ||
mod - src/dird/ua_status.c | Diff File | ||
mod - src/dird/ua_cmds.c | Diff File | ||
mod - src/dird/sd_cmds.c | Diff File | ||
mod - src/dird/restore.c | Diff File | ||
mod - src/dird/protos.h | Diff File | ||
mod - src/dird/ndmp_dma.c | Diff File | ||
mod - src/dird/msgchan.c | Diff File | ||
mod - src/dird/mountreq.c | Diff File | ||
mod - src/dird/migrate.c | Diff File | ||
mod - src/dird/job.c | Diff File | ||
mod - src/dird/getmsg.c | Diff File | ||
mod - src/dird/fd_cmds.c | Diff File | ||
mod - src/dird/dird_conf.h | Diff File | ||
mod - src/dird/dird_conf.c | Diff File | ||
mod - src/dird/catreq.c | Diff File | ||
mod - src/dird/backup.c | Diff File | ||
mod - src/dird/authenticate.c | Diff File | ||
mod - src/console/console.c | Diff File | ||
rm - src/console/authenticate.c | Diff File | ||
mod - src/console/Makefile.in | Diff File | ||
master 9096704e 2013-05-04 20:34
Ported: N/A Details Diff |
Implementation of an allowed job command keyword Implement an allowed Job command keyword in the filed that sets which of the different Job commands we should accept. Currently the filed will execute any Job command unless people specify the -b or -r option (backup only/restore only) which makes it a serious security concern by much of the bigger customers security officers. This new keyword implements a per director and a global list which is used as a fallback when a specific one for a specific director is not configured. We won't filter all the commands issued by the director only the important ones. Things which we allow to be filtered are: - backup - restore - verify - estimate - runscript Fixes 0000032: Implementation of an allowed job command keyword |
Affected Issues 0000032 |
|
mod - src/filed/job.c | Diff File | ||
mod - src/filed/filed_conf.h | Diff File | ||
mod - src/filed/filed_conf.c | Diff File | ||
master 334cfd5f 2013-05-04 20:34
Ported: N/A Details Diff |
Implementation of an allowed scriptdir keyword Implement an allowed scriptdir keyword in the filed that sets the directories in which any runscript must be located so we can limit the attack surface of the filedaemon. Currently the filed will execute any script in any directory which makes it a serious security concern by much of the bigger customers security officers. This new keyword implemented per director and a global one which is used as a fallback when a specific one for a specific director is not configured. Fixes 0000031: Implementation of an allowed scriptdir keyword |
Affected Issues 0000031 |
|
mod - src/lib/runscript.h | Diff File | ||
mod - src/lib/runscript.c | Diff File | ||
mod - src/filed/job.c | Diff File | ||
mod - src/filed/filed_conf.h | Diff File | ||
mod - src/filed/filed_conf.c | Diff File | ||
master d72cca4b 2013-05-04 20:34
Ported: N/A Details Diff |
Allow cancel by JobId on storage daemon. Sometimes the Director already removed the Job from its running queue but the Storage daemon still thinks it doing a backup (or other Job) and you cannot cancel the Job from within a console anymore. This piece of code allows you to cancel a Storage Daemon Job by JobId. E.g. do a status sd on the Storage Daemon make sure what Job you want to cancel and issue a cancel storage=<Storage Daemon> Jobid=<JobId> This way you can also remove a Job that blocks any other Jobs from running without the need to restart the whole Storage Daemon. Fixes 0000013: Allow cancel by JobId on storage daemon. |
Affected Issues 0000013 |
|
mod - src/stored/dircmd.c | Diff File | ||
mod - src/dird/ua_cmds.c | Diff File | ||
mod - src/dird/sd_cmds.c | Diff File | ||
mod - src/dird/protos.h | Diff File | ||
master fb2fda7d 2013-05-04 20:34
Ported: N/A Details Diff |
Tweak indent. | ||
mod - src/dird/dird_conf.c | Diff File | ||
master 30e30bfd 2013-05-04 20:34
Ported: N/A Details Diff |
Print BSR to memory buffer. Print the BSR to a memory buffer and write that out in one go. This allows you to use a printed BSR in any reporting. |
||
mod - src/dird/protos.h | Diff File | ||
mod - src/dird/bsr.c | Diff File | ||
master 0a1711cf 2013-05-04 20:33
Ported: N/A Details Diff |
Switch to new version number. Start adding new features. |
||
mod - src/include/version.h | Diff File | ||
mod - platforms/win32/winbareos64.spec | Diff File | ||
mod - platforms/win32/winbareos32.spec | Diff File | ||
mod - platforms/win32/winbareos-nsi.spec | Diff File | ||
mod - platforms/rpms/bareos.spec | Diff File | ||
mod - platforms/deb/bareos-xUbuntu_12.04.dsc | Diff File | ||
mod - platforms/deb/bareos-Debian_6.0.dsc | Diff File | ||
mod - debian/changelog | Diff File | ||
master 3beca800 2013-05-04 13:54 Marco van Wieringen Ported: N/A Details Diff |
Rebuild configure. | ||
mod - configure | Diff File | ||
master f5d7ed6f 2013-05-04 13:51 Marco van Wieringen Ported: N/A Details Diff |
Tweak sql update function. Use only one function to do the database update and pass as argument the minimum number of affected rows that must be met. |
||
mod - src/cats/cats.h | Diff File | ||
mod - src/cats/sql.c | Diff File | ||
master db1f55a9 2013-05-04 13:51 Joerg Steffens Committer: Marco van Wieringen Ported: N/A Details Diff |
adapted for ubuntu, some improvements on packaging Signed-off-by: Marco van Wieringen <marco.van.wieringen@bareos.com> |
||
mod - debian/bareos-common.dirs | Diff File | ||
mod - debian/bareos-common.postinst | Diff File | ||
mod - debian/bareos-director.install | Diff File | ||
mod - debian/bareos-filedaemon.install | Diff File | ||
add - debian/bareos-storage.dirs | Diff File | ||
mod - debian/bareos-storage.install | Diff File | ||
mod - debian/bareos-storage.postinst | Diff File | ||
mod - debian/control | Diff File | ||
mod - debian/rules | Diff File | ||
mod - platforms/deb/bareos-Debian_6.0.dsc | Diff File | ||
mod - platforms/deb/bareos-xUbuntu_12.04.dsc | Diff File | ||
mod - platforms/debian/bareos-dir.in | Diff File | ||
mod - platforms/rpms/bareos.spec | Diff File | ||
mod - platforms/ubuntu/bareos-dir.in | Diff File | ||
mod - platforms/ubuntu/bareos-fd.in | Diff File | ||
mod - platforms/ubuntu/bareos-sd.in | Diff File | ||
mod - scripts/bareos-config | Diff File | ||
master 72a68c2c 2013-05-04 13:51 Joerg Steffens Committer: Marco van Wieringen Ported: N/A Details Diff |
travis-ci.org integration Signed-off-by: Marco van Wieringen <marco.van.wieringen@bareos.com> |
||
add - .travis.yml | Diff File | ||
add - test/all | Diff File | ||
master 0fe2716c 2013-05-04 13:51 Marco van Wieringen Ported: N/A Details Diff |
Fix typo. | ||
mod - src/dird/ua_cmds.c | Diff File | ||
master 5a1383e3 2013-05-04 13:51 Marco van Wieringen Ported: N/A Details Diff |
Don't use Zlib specific types. Ulong and Bytef are ZLIB specific and on platforms that don't have zlib this gives compile errors. |
||
mod - src/filed/backup.h | Diff File | ||
master c8ce10ef 2013-05-04 13:51 Marco van Wieringen Ported: N/A Details Diff |
Fix dummy function defined. | ||
mod - src/filed/compression.c | Diff File | ||
master b74d3df5 2013-05-04 13:51 Marco van Wieringen Ported: N/A Details Diff |
Fix compile error. | ||
mod - src/filed/backup.h | Diff File | ||
master 39ac1b10 2013-05-04 13:51 Joerg Steffens Committer: Marco van Wieringen Ported: N/A Details Diff |
fixed comment | ||
mod - README.md | Diff File | ||
master 223eac9d 2013-05-04 13:51 Philipp Storz Committer: Marco van Wieringen Ported: N/A Details Diff |
Send the catalog backup bootstrap file by mail Having the bootstrap of the backupcatalog job is crucial for disaster recovery. Unfortunately, the default config didn't do that until now. Now we automatically mail the bootstrap file of the backupcatalog job. Also, we have now extended the BackupCatalog FileSet to include the sysconfdir. Fixes 0000024: Automatic sending of BSR (at least of the Catalog DB) via email |
||
mod - src/dird/bareos-dir.conf.in | Diff File | ||
master 29faf185 2013-05-04 13:51 Marco van Wieringen Ported: N/A Details Diff |
Set a new default for the restore dir. | ||
mod - src/dird/bareos-dir.conf.in | Diff File | ||
master 36f40944 2013-05-04 13:51 Marco van Wieringen Ported: N/A Details Diff |
Set a new default for the restore dir. | ||
mod - src/dird/bareos-dir.conf.in | Diff File | ||
master 51e4d8ef 2013-05-04 13:51 Marco van Wieringen Ported: N/A Details Diff |
Fix compiler warning. Now that we don't use the old conversion string we can get ride of the caps variable. |
||
mod - src/lib/bsnprintf.c | Diff File | ||
master dde644a3 2013-05-04 13:51 Joerg Steffens Committer: Marco van Wieringen Ported: N/A Details Diff |
fixes ubuntu configuration Signed-off-by: Marco van Wieringen <marco.van.wieringen@bareos.com> |
||
mod - autoconf/configure.in | Diff File | ||
master 16b15624 2013-05-04 13:51 Marco van Wieringen Ported: N/A Details Diff |
Fix Makefile rules for generating configure and config.h.in | ||
mod - Makefile.in | Diff File | ||
master d786e1bd 2013-05-04 13:51 Marco van Wieringen Ported: N/A Details Diff |
Set some more sane defaults. Still its better to explicitly set the dirs to where you want them to be and to not depend on changing defaults. |
||
mod - autoconf/configure.in | Diff File | ||
master 6d7e2517 2013-05-04 13:51 Marco van Wieringen Ported: N/A Details Diff |
Drop temp file. | ||
rm - src/qt-console/aa | Diff File | ||
master c2ec319a 2013-05-04 13:51 RadosÅaw Korzeniewski Committer: Marco van Wieringen Ported: N/A Details Diff |
Fix %f conversion in bsnprintf. Signed-off-by: Marco van Wieringen <marco.van.wieringen@bareos.com> |
||
mod - src/lib/bsnprintf.c | Diff File |