S3-DR is intended to be used as the disaster recovery component of your data protection plan. It is not a high-availability solution for rapid failover or recovery, but rather, a “last resort” recovery option for true disaster scenarios, such as fire or natural disasters. Consider using S3-DR in conjunction with other data protection mechanisms, such as RAID, VSS, snapshots, clustering, mirroring with failover, etc. to improve recovery speeds and flexibility for less severe and more common failure scenarios.
System Requirements
- Java: 1.7 or higher (download latest version of Java here)
- Reliable high speed internet connection: 768 kbps or faster, low packet loss
- Hard disk space: 100 MB (for S3-DR) plus 250 MB per AWS S3 bucket (for logs)
- RAM: By default, S3-DR is configured to use 1 GB, which will support up to 500,000 files (could be less, depending on average file name length). The memory allocation to S3-DR is configurable and can be reduced/increased, as necessary.
- Amazon AWS account: Basic Support Plan (sign up here)
Recommended Requirements
- Wired network: Wireless networks can introduce latency and packet loss issues in addition to possibly reducing throughput
- SSD or RAID array: These technologies can mitigate random access latency penalties, especially for small files
Downloaded Distributable Contents
- s3-dr.jar
- Self executing jar file (if executed, will invoke CLI)
- Contains all S3-DR functionality (GUI plus CLI)
- runCli.bat
- Runs S3-DR CLI with 1 GB Ram and console output enabled
- runGui.bat
- Runs S3-DR configuration GUI with console output enabled
- UnlimitedJCEPolicy
- Libraries that support S3-DR encryption (installed automatically by the configuration GUI)
Configuration GUI
- Verifies AWS S3 credentials
- Verifies AWS S3 bucketname is available
- Creates Windows scheduled task and run scripts for backup
- Creates run scripts for restore
- Installs advanced encryption support to the Java runtime environment
CLI Usage
- Never run multiple instances of the CLI for the same AWS S3 bucket at the same time (if you have configured a Windows scheduled task for your backup, this can be achieved easily by only initiating the backup through Task Scheduler and never calling the .bat file directly)
- A log set (see below) will be created or appended to for each run of the CLI in the directory from which you run it (which is not necessarily the same directory the CLI .jar resides in).
CLI Required Parameters
Follow the instructions below to select what should be backed up, using S3-DR. This is the advanced method.
Name | Description |
operation | Backup: Replicates any data that has changed from dirroot to bucketname Restore: Restores all data from bucketname to dirroot, automatically replacing any existing contents at dirroot with data from bucketname Verify: Ensures S3 Access Key and Secret Key are valid |
dirroot | The directory that should be backed up (recursively) or restored to |
bucketname | AWS S3 bucket where backups reside (must be globally unique across all AWS S3 users) |
accesskey | AWS S3 Access Key |
secretkey | AWS S3 Secret Key |
CLI Optional Parameters
Follow the instructions below to select what should be backed up, using S3-DR. This is the advanced method.
Name | Applies to | Description |
encryptionkey | Backup and Restore | If specified, this key will be used to encrypt and decrypt (for backups and restores, respectively) data. We recommend an encryption key with at least a 256-bit collision domain. |
direxclude | Backup | Directories under dirroot that should be excluded from back ups. To specify 2 directories to exclude, use the following parameters ‘direxclude dir1 direxclude dir2’ |
minbundlesizekb | Backup | The minimum bundle size to attempt to achieve when aggregating multiple small files together (default: 10 MB) |
maxbundlesizekb | Backup | The maximum bundle size to split single large files into (default: 100 MB) |
restorepoint | Restore | If you don’t want to restore the latest version of all files, specify the time-stamp you want to restore to (this is useful if you have been attacked by ransomware or if data has been corrupted/destroyed maliciously) |
Logging
A logset (a logset is the combination of all the logs below) is created for each backup created using the GUI. You may be asked to send in your logs if you report a bug. Before sending your logs, please be sure to sanitize them by removing your Access Key, Secret Key, Encryption Key, and AWS S3 Bucket Name from all log files.
Backup statistics (number of files being managed, their logical size, and their physical utilization on AWS S3) are recorded regularly in the logs.
Log Name | Description |
s3-dr-alert.log | Events that indicate a potential problem |
s3-dr-ram.log | Periodically records JVM memory usage. Note: Due to limitations of the JVM, utilization reported may be higher than it really is |
s3-dr-main.log | More important events that occur during execution of s3-dr |
s3-dr-debug.log | All events that occur during execution of s3-dr |
Upgrading
To upgrade S3-DR, simply copy the contents of the newer version of S3-DR into the directory you originally extracted S3-DR into. All existing tasks, scripts, etc. will begin using the newer version of S3-DR.