Zenko CloudServer with Vitastor backend :)
 
 
 
 
 
 
Go to file
Vitaliy Filippov 740cb42df1 Fix filename 2025-03-18 14:31:47 +03:00
.github Fix release and install oras 2025-01-28 12:48:48 +01:00
arsenal@ab7861b3b0 Dedup types/node 2025-03-14 20:34:07 +03:00
bin Fix filename 2025-03-18 14:31:47 +03:00
docs Migrate to ghcr 2024-04-16 18:34:49 +02:00
eslint-config-scality@d383e47d8e Include all dependencies as git submodules 2025-03-09 00:16:59 +03:00
examples Merge remote-tracking branch 'origin/w/7.70/feature/CLDSRV-244/migrateToGithubActions' into w/8.4/feature/CLDSRV-244/migrateToGithubActions 2023-01-12 14:04:54 -08:00
fcntl@89449bbe58 Include all dependencies as git submodules 2025-03-09 00:16:59 +03:00
httpagent@045e9c8282 Include all dependencies as git submodules 2025-03-09 00:16:59 +03:00
images/svc-base Enforce scubaclient version 2024-10-03 11:40:44 +02:00
lib Store MPU part locations also in "location", not "partLocations" 2025-03-14 20:15:16 +03:00
localData Set up for file backend. 2016-06-09 17:16:39 -07:00
localMetadata Set up for file backend. 2016-06-09 17:16:39 -07:00
monitoring CLDSRV-537: do not raise quota error if no quota is defined 2024-05-31 13:44:05 +02:00
res DOC: Using MS Azure as a backend 2017-11-07 14:01:51 +01:00
scubaclient@619aca73fc Dedup types/node 2025-03-14 20:34:07 +03:00
tests Store MPU part locations also in "location", not "partLocations" 2025-03-14 20:15:16 +03:00
utapi@84953ff868 Include all dependencies as git submodules 2025-03-09 00:16:59 +03:00
werelogs@b57d072e51 Include all dependencies as git submodules 2025-03-09 00:16:59 +03:00
.dockerignore More dockerignore 2025-03-11 01:16:39 +03:00
.eslintrc Support BigInt notation in S3 2025-01-24 17:24:46 +01:00
.gitignore Merge remote-tracking branch 'origin/w/7.5/feature/ZENKOIO-58-upload-junit-reports' into w/8.0/feature/ZENKOIO-58-upload-junit-reports 2019-07-23 17:31:12 -07:00
.gitmodules Add configure.sh 2025-03-15 23:53:42 +03:00
.nycrc Add codecov for unit tests 2024-12-10 11:39:20 +01:00
CONTRIBUTING.md Add Contribution rules 2016-06-08 20:53:26 +02:00
DESIGN.md ft: add versioning info to DESIGN.md 2017-06-09 17:08:12 -07:00
Dockerfile Add configure.sh 2025-03-15 23:53:42 +03:00
Healthchecks.md CLDSRV-89 - specify health check port in documentation 2022-01-12 14:29:28 +01:00
LICENSE Update LICENSE 2017-02-24 16:45:39 -08:00
README.md Update README 2025-03-16 01:10:59 +03:00
TESTING.md Remove mentions of the forbidden word 2016-06-01 19:49:29 +02:00
_config.yml Set theme jekyll-theme-modernist 2021-05-07 17:44:39 -07:00
authdata.json.example Add authdata config file reference to config.json 2025-02-07 02:24:42 +03:00
codecov.yml Add codecov for unit tests 2024-12-10 11:39:20 +01:00
config.json.example Remove clusters, add workers to config example 2025-03-11 01:41:40 +03:00
config.json.vitastor Add configure.sh 2025-03-15 23:53:42 +03:00
constants.js Use x-amz-storage-class instead of x-amz-meta-scal-location-constraint 2025-02-07 02:22:14 +03:00
dataserver.js Merge remote-tracking branch 'origin/w/7.5/bugfix/S3C-2118-abort-mpu-crash-2' into w/8.0/bugfix/S3C-2118-abort-mpu-crash-2 2019-05-21 16:00:08 -07:00
index.js CLDSRV-544: Add timestamp on stderr 2024-06-30 21:15:52 +02:00
locationConfig.json.example Do not store actual configs in git 2025-02-07 02:22:14 +03:00
locationConfig.json.vitastor Add configure.sh 2025-03-15 23:53:42 +03:00
mdserver.js CLDSRV-179 - update imports 2022-04-21 18:07:35 +02:00
package.json Include all dependencies as git submodules 2025-03-09 00:16:59 +03:00
pfsserver.js bugfix(pfsd): add noCache and noSync options 2019-01-07 17:27:24 -08:00
tox.ini ZNC-22: DOC: Add developer bootstrap guide 2018-08-08 17:03:21 -07:00
wait_for_local_port.bash Revert "bugfix: reduce flakiness of server startup wait" 2018-10-24 11:07:38 -07:00
webpack.config.js Use nodesource repo 2025-03-10 01:51:06 +03:00
yamllint.yml improvement: increase yaml len default to 120 chars 2021-05-10 16:33:52 -07:00

README.md

Zenko CloudServer with Vitastor Backend

Zenko CloudServer logo

Overview

CloudServer (formerly S3 Server) is an open-source Amazon S3-compatible object storage server that is part of Zenko, Scalitys 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

  1. Download Docker image: docker pull vitalif/vitastor-zenko

  2. 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
    
  3. 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 and locationConfig.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 just npm install
  • Clone Vitastor repository: git clone https://git.yourcmc.ru/vitalif/vitastor
  • Build Vitastor node.js binding by running npm install in node-binding subdirectory of Vitastor repository. You need node-gyp and vitastor-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