2025-03-18 14:31:47 +03:00
2025-01-28 12:48:48 +01:00
2025-03-14 20:34:07 +03:00
2025-03-18 14:31:47 +03:00
2024-04-16 18:34:49 +02:00
2016-06-09 17:16:39 -07:00
2016-06-09 17:16:39 -07:00
2017-11-07 14:01:51 +01:00
2025-03-14 20:34:07 +03:00
2021-05-07 17:44:39 -07:00
2025-03-11 01:16:39 +03:00
2025-01-24 17:24:46 +01:00
2025-03-15 23:53:42 +03:00
2024-12-10 11:39:20 +01:00
2024-12-10 11:39:20 +01:00
2025-03-15 23:53:42 +03:00
2016-06-08 20:53:26 +02:00
2017-06-09 17:08:12 -07:00
2025-03-15 23:53:42 +03:00
2024-06-30 21:15:52 +02:00
2017-02-24 16:45:39 -08:00
2025-03-15 23:53:42 +03:00
2022-04-21 18:07:35 +02:00
2025-03-16 01:10:59 +03:00
2025-03-10 01:51:06 +03:00

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

Description
Zenko CloudServer with Vitastor backend :)
Readme 58 MiB
Languages
JavaScript 98.5%
Python 0.6%
Perl 0.3%
Java 0.2%
Ruby 0.1%
Other 0.2%