|
||
---|---|---|
.github | ||
bin | ||
docs | ||
examples | ||
images/svc-base | ||
lib | ||
localData | ||
localMetadata | ||
monitoring | ||
res | ||
tests | ||
.dockerignore | ||
.eslintrc | ||
.gitignore | ||
CONTRIBUTING.md | ||
DESIGN.md | ||
Dockerfile | ||
DockerfileMem | ||
Healthchecks.md | ||
LICENSE | ||
README.md | ||
TESTING.md | ||
_config.yml | ||
authdata.json.example | ||
config.json.example | ||
config.json.vitastor | ||
constants.js | ||
dataserver.js | ||
docker-entrypoint.sh | ||
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 Backend is in experimental status, however you can already try to run it and write or read something, or even mount it with GeeseFS, it works too 😊.
Installation instructions:
Install Vitastor
Refer to Vitastor Quick Start Manual.
Install Zenko with Vitastor Backend
- Clone this repository:
git clone 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
Install and Configure MongoDB
Refer to MongoDB Manual.
Setup Zenko
- Create a separate pool for S3 object data in your Vitastor cluster:
vitastor-cli create-pool s3-data
- Retrieve ID of the new pool from
vitastor-cli ls-pools --detail s3-data
- In another pool, create an image for storing Vitastor volume metadata:
vitastor-cli create -s 10G s3-volume-meta
- Copy
config.json.vitastor
toconfig.json
, adjust it to match your domain - Copy
authdata.json.example
toauthdata.json
- this is where you set S3 access & secret keys, and also adjust them if you want to. Scality seems to use a separate auth service "Scality Vault" for access keys, but it's not published, so let's use a file for now. - Copy
locationConfig.json.vitastor
tolocationConfig.json
- this is where you set Vitastor cluster access data. You should put correct values forpool_id
(pool ID from the second step) andmetadata_image
(from the third step) in this file.
Note: locationConfig.json
in this version corresponds to storage classes (like STANDARD, COLD, etc)
instead of "locations" (zones like us-east-1) as it was in original Zenko CloudServer.
Start Zenko
Start the S3 server with: node index.js
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 s3cmd
or geesefs
:
s3cmd --access_key=accessKey1 --secret_key=verySecretKey1 --host=http://localhost:8000 mb s3://testbucket
AWS_ACCESS_KEY_ID=accessKey1 \
AWS_SECRET_ACCESS_KEY=verySecretKey1 \
geesefs --endpoint http://localhost:8000 testbucket mountdir
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)