Skip to content
Redundant Array of Distributed Independent Objectstores in short RADIO performs synchronous mirroring, erasure coding across multiple object stores
Go Other
  1. Go 98.6%
  2. Other 1.4%
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update arch.svg Feb 10, 2020
buildscripts
cmd change replicate to mirror Jan 23, 2020
dockerscripts Initial commit and fork from MinIO Dec 9, 2019
pkg/streamdup
.dockerignore Initial commit and fork from MinIO Dec 9, 2019
.gitignore Initial commit and fork from MinIO Dec 9, 2019
.golangci.yml Add github workflow Jan 17, 2020
.travis.yml Initial commit and fork from MinIO Dec 9, 2019
CONTRIBUTING.md Initial commit and fork from MinIO Dec 9, 2019
CREDITS Update credits Jan 18, 2020
Dockerfile
Dockerfile.dev
LICENSE Initial commit and fork from MinIO Dec 9, 2019
Makefile Initial commit and fork from MinIO Dec 9, 2019
README.md
SECURITY.md
code_of_conduct.md
config.yml.sample change replicate to mirror Jan 23, 2020
docker-compose.yml
go.mod Fix gorilla/rpc dependency Jan 18, 2020
go.sum
main.go
staticcheck.conf Remove unused code Dec 9, 2019

README.md

Radio Quickstart Guide Slack

Redundant Array of Distributed Independent Objectstores in short RADIO performs synchronous mirroring, erasure coding across multiple object stores licensed under AGPLv3.0

Features

  • Mirror
  • Erasure Coded (In-progress)

Architecture

RADIO

Sample Config

---
## Distributed mode for distributed locking
## across many radio instances
distribute:
  peers: https://server{1...32}:9000/
  token: 32bytestring
  certs:
    cert_file: /etc/certs/public.crt
    key_file: /etc/certs/private.key
    ca_path: /etc/certs/CAs

## Local caching based on MinIO
## caching implementation
cache:
  drives:
    - /mnt/cache1
    - /mnt/cache2
    - /mnt/cache3
  exclude:
    - bucket1/*
    - "*.db"
  quota: 90
  expiry: 30

## Radio buckets configuration with all its remotes
## Supports two protection schema's
## - mirror
## - erasure (with parity)
buckets:
  radiobucket1:
    access_key: Q3AM3UQ867SPQQA43P2F
    secret_key: zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG
    protection:
      scheme: mirror
    remote:
      - access_key: TX8mIIOGC12QBMJ45F0Z
        bucket: bucket1
        endpoint: http://replica1:9000
        secret_key: 9ule1ga5JMfMmQXCoEPNcM2jij
      - access_key: GX82IIOGC12QBMJ45F0Z
        bucket: bucket2
        endpoint: http://replica2:9000
        secret_key: 9ux11ga5JMfMmQXCoEPNcM2jij
      - access_key: HX8KIIOGC12QBMJ45F0Z
        bucket: bucket3
        endpoint: http://replica3:9000
        secret_key: 9ux41ga5JMfMmQXCoEPNcM2jij
  radiobucket2:
    access_key: Q3AM3UQ867SPQQA43P2F
    secret_key: zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG
    protection:
      scheme: erasure
      parity: 1
    remote:
      - access_key: TX8mIIOGC12QBMJ45F0Z
        bucket: bucket1
        endpoint: http://erasure1.com:9000
        secret_key: 9ule1ga5JMfMmQXCoEPNcM2jij
      - access_key: GX82IIOGC12QBMJ45F0Z
        bucket: bucket2
        endpoint: http://erasure2.com:9000
        secret_key: 9ux11ga5JMfMmQXCoEPNcM2jij
      - access_key: HX8KIIOGC12QBMJ45F0Z
        bucket: bucket3
        endpoint: http://erasure3.com:9000
        secret_key: 9ux41ga5JMfMmQXCoEPNcM2jij

Starting radio

radio server -c config.yml

Prints the following banner

Endpoint:  http://192.168.1.172:9000  http://172.17.0.1:9000  http://127.0.0.1:9000

Command-line Access: https://docs.min.io/docs/minio-client-quickstart-guide
   $ mc config host add myradio1 http://192.168.1.172:9000 Q3AM3UQ867SPQQA43P2F zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG
...

License

RADIO is an free software project released under the AGPLv3.0 (Affero General Public License).

Contributing

Please see our Code of conduct. We welcome your contributions. Please feel free to fork the code, play with it, make some patches and send us pull requests via issues.

You can’t perform that action at this time.