Skip to content

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

License

Notifications You must be signed in to change notification settings

woutervanranst/Arius

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arius: a Lightweight Tiered Archival Solution for Azure Blob Storage

Arius.Core - Test Suite codecov CodeQL: Arius.Core

Arius Release Docker Arius.Core Version ClickOnce

Arius is a lightweight archival solution, specifically built to leverage the Azure Blob Archive tier.

The name derives from the Greek for 'immortal'.

Why?

  1. Supporting 3-2-1 Backup Strategy: Arius offers a secure and cost-effective offsite backup solution, complementing offline disk backups. The use of Azure Blob Archive tier allows for low-cost archiving, approximately 1 EUR per TB per month.

  2. Single Pane of Glass: Arius ensures seamless visibility to offline backups without requiring a separate application. By creating small "pointers" locally, they remain present in the local filesystem and easily discoverable in Windows Explorer.

  3. Encryption: For those with privacy concerns, Arius uses AES256/openssl-compatible encryption, providing robust client-side encryption.

  4. Deduplication: Arius does not store duplicate files or file parts. It offers file-level deduplication by default and allows optional variable block size deduplication within files.

How

Arius is a command-line tool (CLI) that can be run manually or scheduled. It can also be run as a Docker container.

Arius Explorer is a Windows application that offers a graphical user interface into an Arius repository.

Arius Explorer

Install it via ClickOnce by clicking on the shield at the top of the page.

The status icon is a combination of the state in the local file system (left half moon) and the state in the repository (right half moon). For example:

Icon Local file systen Azure Repository
Not present Pointer and Binary
Only the Pointer Pointer and Binary
Pointer and Binary Pointer and Binary

Arius CLI

Archive to Azure

CLI:

arius archive <path>
   --accountname <accountname>
   --accountkey  <accountkey>
   --passphrase  <passphrase>
   --container   <containername>
  [--remove-local]
  [--tier=<hot/cool/archive>]
  [--dedup]
  [--fasthash]

CLI in Docker:

docker run
  -v <absolute_path_to_archive>:/archive
 [-v <absolute_path_to_logs>:/logs]
  woutervanranst/arius

  archive
   --accountname <accountname>
   --accountkey  <accountkey>
   --passphrase  <passphrase>
   --container   <containername>
  [--remove-local]
  [--tier=<hot/cool/archive>]
  [--dedup]
  [--fasthash]

Restore from Azure

CLI:

arius restore <path>
   --accountname <accountname>
   --accountkey  <accountkey>
   --passphrase  <passphrase>
   --container   <containername>
  [--synchronize]
  [--download]
  [--keep-pointers]

CLI in Docker:

docker run
  -v <absolute_path_to_archive>:/archive
 [-v <absolute_path_to_logs>:/logs]
  woutervanranst/arius

  restore
   --accountname <accountname>
   --accountkey  <accountkey>
   --passphrase  <passphrase>
   --container   <containername>
  [--synchronize]
  [--download]
  [--keep-pointers]

Arguments

Argument Description Notes
path The path on the local file system For archive:
The root directory to archive

For restore:
  • If path is a directory: restore all pointer files in the (sub)directories.
  • If path is a file: restore this file.
logpath Path to the folder to store the logs OPTIONAL. NOTE: Only for Docker.
‑‑accountname, ‑n Storage Account Name
‑‑accountkey, ‑k Storage Account Key Can be set through:
  • Argument
  • Environment variable ARIUS_ACCOUNT_KEY
  • Docker environment variable ARIUS_ACCOUNT_KEY
‑‑passphrase, ‑p Passphrase with which the blobs are encrypted
‑‑container, ‑c Blob container to use OPTIONAL. Default: 'arius'.
‑‑remove-local Remove local file after a successful upload archive-only
OPTIONAL. Default: Local files are not deleted after archiving.
‑‑tier Blob storage tier (hot/cool/archive) archive-only
OPTIONAL. Default: 'archive'.
‑‑dedup Deduplicate on block level archive-only
OPTIONAL. Default: deduplicate on file level.
‑‑fasthash When a pointer file is present, use that hash instead of re-hashing the full file again archive-only
OPTIONAL. Default: false.
NOTE: Do NOT use this if the contents of the files are modified. Arius will not pick up the changes.
‑‑synchronize Bring the structure of the local file system (pointer files) in line with the latest state of the remote repository restore-only
OPTIONAL. Default: do not synchronize.
This command only touches the pointers (ie. .pointer.arius files). Other files are left untouched:
  • Pointers that exist in the archive but not locally are created.
  • Pointers that exist locally but not in the archive are deleted
‑‑download Download and restore the actual file (contents) restore-only
OPTIONAL. Default: do not download.
NOTE: If the file is in the archive blob tier, hydration to an online tier is started. Run the restore command again after ~15 hours to download the file.
‑‑keep-pointers Keep pointer files after downloading content files restore-only
OPTIONAL. Default: keep the pointers.

Restoring manually

For detailed instructions on restoring files manually, without using any of the Arius tools, please consult the Restore Manually section.

Advanced

Deduplication

Arius employs deduplication to optimize storage efficiency. For detailed explanations, diagrams, and benchmarks on deduplication, refer to the Deduplication section in the documentation.

Technical Documentation

Dependencies

Arius.Core Architecture

Arius.Core Domain Model

Attributions

Arius Icon by Freepik.

Many thanks to ReSharper and PostSharp for their open source generosity.