Zenko CloudServer with Vitastor backend :)
 
 
 
 
 
 
Go to file
Vitaliy Filippov b5711e9cbf Use fs.readFileSync to read config file instead of require 2024-08-13 11:19:38 +03:00
.github Merge branch 'w/8.7/bugfix/CLDSRV-549-restoreGitCommitShaImageLabel' into tmp/octopus/w/8.8/bugfix/CLDSRV-549-restoreGitCommitShaImageLabel 2024-06-26 01:47:54 +00:00
bin Remove remote management 2024-07-16 20:34:11 +03:00
docs Migrate to ghcr 2024-04-16 18:34:49 +02: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
images/svc-base CLDSRV-520: fix federation image with tsc 2024-05-10 09:51:02 +02:00
lib Use fs.readFileSync to read config file instead of require 2024-08-13 11:19:38 +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
tests Remove remote management 2024-07-16 20:34:11 +03:00
.dockerignore CLDSRV-115 migration to gh actions 2023-01-11 16:32:35 -08:00
.eslintrc Add eslint rule to prevent exclusive tests 2023-05-24 17:14:24 +02: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
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 CLDSRV-515: adapt dockerfile for scubaclient 2024-05-07 16:24:25 +02:00
DockerfileMem feature: CLDSRV-162 use metadata and data from new arsenal 2022-05-24 12:06:17 +02: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 Add installation instructions for Vitastor backend 2024-08-12 01:36:42 +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 2024-08-03 01:36:01 +03:00
config.json.example Use config.workers instead of config.clusters 2024-08-03 14:10:39 +03:00
config.json.vitastor Add example Vitastor backend configs 2024-08-11 17:24:05 +03:00
constants.js Use x-amz-storage-class instead of x-amz-meta-scal-location-constraint 2024-07-28 02:00:38 +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
docker-entrypoint.sh Merge branch 'w/7.70/improvement/CLDSRV-411-impose-last-modified' into tmp/octopus/w/8.6/improvement/CLDSRV-411-impose-last-modified 2023-07-17 16:54:15 +00: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 2024-08-01 15:52:02 +03:00
locationConfig.json.vitastor Add example Vitastor backend configs 2024-08-11 17:24:05 +03:00
mdserver.js CLDSRV-179 - update imports 2022-04-21 18:07:35 +02:00
package.json Use webpack to pack 2024-08-13 02:20:08 +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 webpack to pack 2024-08-13 02:20:08 +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 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 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

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 to config.json, adjust it to match your domain
  • Copy authdata.json.example to authdata.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 to locationConfig.json - this is where you set Vitastor cluster access data. You should put correct values for pool_id (pool ID from the second step) and metadata_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