|
||
---|---|---|
.github | ||
arsenal@ab7861b3b0 | ||
bin | ||
docs | ||
eslint-config-scality@d383e47d8e | ||
examples | ||
fcntl@89449bbe58 | ||
httpagent@045e9c8282 | ||
images/svc-base | ||
lib | ||
localData | ||
localMetadata | ||
monitoring | ||
res | ||
scubaclient@619aca73fc | ||
tests | ||
utapi@84953ff868 | ||
werelogs@b57d072e51 | ||
.dockerignore | ||
.eslintrc | ||
.gitignore | ||
.gitmodules | ||
.nycrc | ||
CONTRIBUTING.md | ||
DESIGN.md | ||
Dockerfile | ||
Healthchecks.md | ||
LICENSE | ||
README.md | ||
TESTING.md | ||
_config.yml | ||
authdata.json.example | ||
codecov.yml | ||
config.json.example | ||
config.json.vitastor | ||
constants.js | ||
dataserver.js | ||
index.js | ||
locationConfig.json.example | ||
locationConfig.json.vitastor | ||
mdserver.js | ||
package.json | ||
pfsserver.js | ||
tox.ini | ||
wait_for_local_port.bash | ||
webpack.config.js | ||
yamllint.yml |
README.md
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.json
andlocationConfig.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 dev
or justnpm install
- Clone Vitastor repository:
git clone https://git.yourcmc.ru/vitalif/vitastor
- Build Vitastor node.js binding by running
npm install
innode-binding
subdirectory of Vitastor repository. You neednode-gyp
andvitastor-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)