Alike A3/V7 Documentation

A3 Docker Installation

Direct use of Docker is recommended for advanced users

If you want more control of how your A3 is deployed and exactly how its storage is configured, you can deploy your A3 on your own Docker environment, or customize ours.

Most A3 users will find it faster and more convenient to use our prebuild A3 VM.

This section expects you to have a working knowledge of Docker before proceeding.**

Your docker host system must have at least the following available:

  • 2 GB RAM
  • 16 GB available storage
  • 1 GB NIC
  • 2+ CPUs

Installation Overview

Setting up your A3 Docker container can be described in the following simple steps. Each step is described in detail in the following sections.

Docker Setup Overview:
1. Initialize your Data Stores. See the section below for details.
3. Download the docker yaml file from www.quadricsoftware.com/a3/docker-compose.yml
4. Edit the docker yaml for your environment
5. type docker-compose pull to download the docker image
6. type docker-compose up -d to start your Alike docker image
7. From this point forward, you can connect and configure your appliance using a web browser!

Initializing Data Stores

Before installing your A3, you must choose the storage backend for your ADS, and optionally, your ODS. Your ADS is your Alike Data Store and is your primary backup storage. Your ODS is your Offsite Data Store and is an optional, secondary backup store.

Attach these storage locations to your Docker host or use Docker local storage. Be sure you have enough storage allocated for your backup use-case and its performance will meet your expectations.

After doing so, you must initialize these storage directories using our tooling to register them and populate them correctly.

A3 a3-tool usage

The command create an ADS is the a3-tool, and you use docker run to invoke it: docker run -v /your/storage/location:/ads quadricsoftware/a3-tool ads {blocksize=XXXX} {encKey=} {hostip=}

ds: Use either "ads" or "ods" for this string. blockSize: Use either blockSize=512 OR blockSize=1024 OR blockSize=2048 OR blockSize=4096 OR blockSize=8192. If you don't know which to use, choose 2048. If you do not supply this key/value pair, your DS will default to a value of 2048. To learn more, read the tuning section. encKey: This sets up AES block encyption, so write down this key if you use this setting! To skip block encyption, do not pass this key/value pair. hostIp: You need to supply the host IP of your Docker host here.

To initialize your ODS, if needed, use a simplified version of the same command: *docker run -v /your/offsite/storage:/ods quadricsoftware.com/a3-tool ods

Data Store Initialization Examples:
docker run -v /mnt/ext/backups:/ads quadricsoftware/a3-tool ads blocksize=2048 hostip=192.168.1.25
docker run -v /mnt/ext/cloudstorage:/ods quadricsoftware/a3-tool ods

This will create your ADS and ODS locations without block encryption with a block size of 2048KB (2MB). In this example, the ADS storage resides on "/mnt/ext/backups" and the ODS is "/mnt/ext/cloudstorage".


Configure Docker Volumes and Bind Mounts

To use Docker without the A3 VM host, connect to your Docker host and download the the our yaml file at www.quadricsoftware.com/a3/docker-compose.yml, then open it with the editor of your choice. Under the "volumes" section you'll see this:

volumes:

  • "/mnt/ads:/mnt/ads"
  • "/mnt/ods:/mnt/ods1"
  • "instaboot:/mnt/instaboot"
  • "./logs:/home/alike/logs"
  • "./certs:/home/alike/certs"
  • "./configs:/home/alike/configs"
  • "cache-dbs:/home/alike/Alike/remoteDBs"

You'll want to change the first two entries, /mnt/ads and /mnt/ods, to paths to your primary data store (Alike Data Store) and your secondary data store, if needed (Offsite Data Store).

Optional YAML Customizations

You must edit the YAML to specify your ADS (and ODS, if needed) locations. All other YAML edits are optional, but may yield important performance or configuration benefits.
If you understand Docker well and want to customize further, there are two broad areas to investigate. The first is other volumes that could be useful managing or scaling your A3. And the second is changing RAM and CPU defaults for your container.

Certs, Logs, caches, and More

If desired, you can expose your "certs" and "logs" directory to Docket paths that are convenient for you. The "cache-dbs" entry benefits from high-performance storage, such as SSD, so that is also something to consider.

Note that the unqualified names "instaboot" and "cache-dbs" will, by default, use your Docker host storage, not Docker bind-mounts. Since these volumes are persistent, they can consume a lot of space, and if your Docker host is space-contstrained, you may need to customize these.

cache-dbs and instaboot will default to consuming your Docker host's storage!
"cache-dbs" will grow roughly preportionally to the amount of data you protect and represents backup metadata; for large A3 installations, this could consume tens or even hundreds of GB. Similarly, the "instaboot" area is used for instant restores. Restoring large VMs that then need to write a lot of changed data will cause this volume to consume a lot of data.

These volumes can be reconfigred from unqualified names to bind mounts if you wish. For more information on Docker volumes, please see Docker official documentation

Limiting RAM and CPU Usage

Use a resource stanza to limit RAM and CPU!
Docker defaults to allowing your A3 unlimited access to host resources, which is fine for deployments where the A3 is the only container running.

To run your A3 on a Docker host where you need to contain its resource consumption, you will need to modify the YAML file to add a "resources" that places limits on CPUs and RAM.

Please see https://docs.docker.com/compose/compose-file/compose-file-v3/ for more information on the YAML file format.


The A3 Alpine Docker Host

Quadric Software ships its own Docker host, the A3 VM, as an easy way to deploy the A3 without needing to know Docker. But it's also our Docker host reference implementation built on Alpine. If you choose to use another Linux VM for your host, you'll need to make sure it supports our technology stack correctly.

The A3 requires the fuse and nfsd kernel modules
Without these kernel modules, your Docker container will not run correctly! Please ensure whatever Docker host you are using supports these modules.

Extending and Customizing the A3 Docker Host

If you don't want to build you own Docker environment, the Quadric A3 Alpine VM can be customized to meet your organization's needs.

Use "sudo" to execute privileged Linux commands on the Quadric Software factory A3 host VM
The "alike" user has full "sudo" privileges, and can run any Linux command that root can run. This gives you complete control of what's installed on your host, how it's tuned, and the like. Quadric Software cannot support any arbitrary change you make to your Alpine VM. Instead, should your VM become damaged or unusable, simply download a clean image from us, which resets you back to factory status.