How do I use ZebClient with Wasabi?

Zebware's ZebClient is a cloud data memory bridge delivering cloud data access at memory speed to local data-centric applications for high performance compute operations over S3 or filesystem interface. ZebClient has been validated for use with Wasabi.  To use this product with Wasabi, please follow the instructions below. 

 

Table of Contents

1. Reference Architecture

2. Prerequisites

3. Configuration

3.1. ZebClient Agent Configuration

3.2. ZebClient Server Configuration

 

Reference Architecture 

Screen_Shot_2021-09-20_at_10.43.09_AM.png

 

Prerequisites

  • ZebClient v 1.1
  • A standard deployment of ZebClient is required. Please refer to their documentation for instructions 
  • An active Wasabi account

Configuration

ZebClient Agent Configuration

1. With the configuration files below you can start a 2-node ZebClient cluster (1 Agents and 2 Shared-services / Servers running on each of the 2 nodes)

ZebClient Agent configuration files need to be defined and running on each node in the cluster

2. The configuration file below is an example with Wasabi as an outlet.

cache:
  km: 2+4
  loglevel: warn 
  telemetry:
    prometheus:
      addr: "0.0.0.0:9999"

license: #Update your path to the license file
  path: "path/to/license.json"


frontends:
- s3: #If needed, update your s3 frontend to ZebClient and possibly path to certs
    endpoint: 0.0.0.0:24101
    region: us-east-1
    accesskey: access
    secretkey: secret
    cacert:
    cert:
    certkey:
- fuse: #Update path to fuse mounted folder and tmp dir. Both folders need to be created and tmp dir located on fast disk.
      mountpoint: /path/to/fuse
      namespace: s3/buckets/
      tempdirs:
        - /path/to/tmp

tierings:
- tiering:   
  - backend:
      fs: #Create path to folder for shards, NOTE: Shards should be placed on different disks.
        path: /path/to/shard/storage1/       
    size: 200Gib
    threshold: 50%
    metadatapersistense:
        metadatadirectory: /path/to/metadata/storage/1
- tiering:      
  - backend:
      fs:
        path: /path/to/shard/storage2/        
    size: 200Gib
    threshold: 50%
    metadatapersistense: #Use fast disk for metadata directory
        metadatadirectory: /path/to/metadata/storage2/
- tiering:      
  - backend:
      grpc: #Instead of NODE1 use ip address of the NODE1 where ZebClient server is running.
        endpoint: "NODE1:17101"
    cacert:
    cert:
    certkey:
    size: 200Gib
    threshold: 50%
    metadatapersistense:
      metadatadirectory: /path/to/metadata/storage3/
- tiering:      
  - backend:
      grpc:
        endpoint: "NODE1:17102"
        cacert:
    cert:
    certkey:
    size: 200Gib
    threshold: 50%
    metadatapersistense:
      metadatadirectory: /path/to/metadata/storage4/
- tiering:      
  - backend:
      grpc: #Instead of NODE2 use ip address of the NODE2 where ZebClient server is running.
        endpoint: "NODE2:17101"
    cacert:
    cert:
    certkey:
    size: 200Gib
    threshold: 50%
    metadatapersistense:
      metadatadirectory: /path/to/metadata/storage5/
- tiering:      
  - backend:
      grpc:
        endpoint: "NODE2:17101"
    cacert:
    cert:
    certkey:
    size: 200Gib
    threshold: 50%
    metadatapersistense:
      metadatadirectory: /path/to/metadata/storage6/
outlets:
- s3: #Configure your own s3 provider to use outlet
    endpoint: https://s3.eu-central-1.wasabisys.com
    region: eu-central-1
    accesskey: 
    secretkey: 
    bucket: bucket_name
</p>

 

Note: This config example discusses the use of Wasabi's eu-central-1 storage region. To use other Wasabi storage regions, please use the appropriate Wasabi service URL as described in this article

 

ZebClient Server Configuration

3. Configuration files for the ZebClient Servers (4 in total) need to be defined and available on the 2 nodes running the Server processes. Each node will run 2 Servers

4. The configuration file of Server 1 is shown below 

cache:
  km: "2+4"  

frontend: #If needed, update your s3 frontend to ZebClient and possibly path to certs
  endpoint: "0.0.0.0:17101"
  cacert:
  cert:
  certkey:

backend:
  fs: #Create path to folder for shards
    path: path/to/shard/grpc-storage/

5. The configuration file of Server 2 is shown below

cache:
  km: "2+4"  

frontend: #If needed, update your s3 frontend to ZebClient and possibly path to certs
  endpoint: "0.0.0.0:17102"
  cacert:
  cert:
  certkey:

backend:
  fs: #Create path to folder for shards
    path: path/to/shard/grpc-storage2/

6. Copy configuration files to the selected folder (eg. /usr/local/etc/) on each cluster.

$ cp cluster-server1-1.conf /usr/local/etc/
$ cp cluster-server1-2.conf /usr/local/etc/
$ cp cluster-agent1.conf /usr/local/etc/

7. Bring up the 4 servers by executing the commands below on the 2 nodes.

Note: ZebClient should run as a user that has access to the filesystems that are being served. Furthermore, the Servers need to be launched prior to starting the Agents.

On node 1:

$ zebclient server run /usr/local/etc/cluster-server1-1.conf
$ zebclient server run /usr/local/etc/cluster-server1-2.conf

On node 2:

$ zebclient server run /usr/local/etc/cluster-server2-1.conf
$ zebclient server run /usr/local/etc/cluster-server2-2.conf

 

8. Once the ZebClient Servers are running, bring up the ZebClient Agents.

On node 1:

$ zebclient agent run /usr/local/etc/cluster-agent1.conf

On node 2:

$ zebclient agent run /usr/local/etc/cluster-agent2.conf

 

 

 

 

Have more questions? Submit a request