Zenko CloudServer with Vitastor Backend
Overview
CloudServer (formerly S3 Server) is an open-source Amazon S3-compatible object storage server that is part of Zenko, Scality’s Open Source Multi-Cloud Data Controller.
CloudServer provides a single AWS S3 API interface to access multiple backend data storage both on-premise or public in the cloud.
This repository contains a fork of CloudServer with Vitastor backend support.
Quick Start with Vitastor
Vitastor S3 Backend is now released. Installation instructions:
Install Vitastor
Refer to Vitastor Quick Start Manual.
Then create a separate pool for S3 object data in your Vitastor cluster, for example:
vitastor-cli create-pool --ec 2+1 -n 512 s3-data
Retrieve the ID of your pool with vitastor-cli ls-pools s3-data --detail.
Install and Configure MongoDB
Refer to MongoDB Manual.
Install Zenko with Vitastor Backend
-
Download Docker image:
docker pull vitalif/vitastor-zenko -
Extract configuration file examples from the Docker image:
docker run --rm -it -v /etc/vitastor:/etc/vitastor -v /etc/vitastor/s3:/conf vitalif/vitastor-zenko configure.sh -
Edit configuration files in
/etc/vitastor/s3/:config.json- common settings.authdata.json- user accounts and access keys.locationConfig.json- S3 storage class list with placement settings. Note: it actually contains storage classes (like STANDARD, COLD, etc) instead of "locations" (zones like us-east-1) as in the original Zenko CloudServer.- Put your MongoDB connection data into
config.jsonandlocationConfig.json. - Put your Vitastor pool ID into
locationConfig.json. - For now, the complete list of Vitastor backend settings is only available in the code.
Start Zenko
Start the S3 server with:
docker run --restart always --security-opt seccomp:unconfined --ulimit memlock=-1 --network=host \
-v /etc/vitastor:/etc/vitastor -v /etc/vitastor/s3:/conf --name zenko vitalif/vitastor-zenko
If you use default settings, Zenko CloudServer starts on port 8000.
The default access key is accessKey1 with a secret key of verySecretKey1.
Now you can access your S3 with, for example, s3cmd:
s3cmd --access_key=accessKey1 --secret_key=verySecretKey1 --host=http://localhost:8000 mb s3://testbucket
Or even mount it with GeeseFS:
AWS_ACCESS_KEY_ID=accessKey1 \
AWS_SECRET_ACCESS_KEY=verySecretKey1 \
geesefs --endpoint http://localhost:8000 testbucket mountdir
Building from source
- Clone this repository:
git clone --recurse-submodules https://git.yourcmc.ru/vitalif/zenko-cloudserver-vitastor - Install dependencies:
npm install --omit devor justnpm install - Clone Vitastor repository:
git clone https://git.yourcmc.ru/vitalif/vitastor - Build Vitastor node.js binding by running
npm installinnode-bindingsubdirectory of Vitastor repository. You neednode-gypandvitastor-client-dev(Vitastor client library) for it to succeed. - Symlink Vitastor module to Zenko:
ln -s /path/to/vitastor/node-binding /path/to/zenko/node_modules/vitastor
Author & License
- Zenko CloudServer author is Scality, licensed under Apache License, version 2.0
- Vitastor and Zenko Vitastor backend author is Vitaliy Filippov, licensed under VNPL-1.1 (a "network copyleft" license based on AGPL/SSPL, but worded in a better way)
