objcache

module
v0.0.0-...-4e9bc17 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2024 License: Apache-2.0

README

Objcache is a distributed filesystem (DFS) over cloud object storage (COS) as durable storage with high performance and quick/zero scaling. Objcache maps objects stored at COS buckets (e.g., s3://bucket/key) to files (e.g., /opt/bucket/key) with write-back cache, sharding, and replication at local storage in a cluster.

How to deploy

  1. Deploy CRD and Operator
$ kubectl apply -f deploy/kubernetes/crd.yaml \
                -f deploy/kubernetes/operator.yaml --server-side=true
  1. Create a service account (and SCC) for the objcache CSI driver
$ kubectl apply -f deployment/kubernetes/serviceaccount.yaml
$ oc adm policy add-scc-to-user privileged system:serviceaccount:objcache-operator-system:objcache-csi-sa # only for OpenShift
  1. Configure and deploy secret.yaml for bucket credentials
$ cp deployment/kubernetes/EXAMPLE-secret.yaml secret.yaml
$ vim secret.yaml
$ kubectl apply -f secret.yaml
  1. Deploy objcache resources and its PVC
$ kubectl apply -f deploy/kubernetes/csidriver.yaml \
                -f deploy/kubernetes/objcache-sample.yaml

How to build

  1. Install Go 1.19

  2. Install protocol buffers (v3.6.1) and Go/gRPC plugins

$ curl -L -O https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protoc-3.6.1-linux-x86_64.zip
$ unzip protoc-3.6.1-linux-x86_64.zip -d protoc
$ sudo cp protoc/bin/protoc /usr/local/bin/
$ go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.25.0
$ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2
  1. Build
$ mkdir -p $HOME/go/src/github.com/IBM/objcache; cd $HOME/go/src/github.com/IBM
$ git clone https://github.com/IBM/objcache.git
$ cd objcache
$ go get github.com/IBM/objcache
$ go mod download
$ vim Makefile # change REGISTRY_NAME if you need
$ make container

License

This repository is distributed under the terms of the Apache 2.0 License. Some of files in this repository are copied (and modified) from Goofys (https://github.com/kahing/goofys), see each file header for license details.

Directories

Path Synopsis
cmd
objcache
* Copyright 2023- IBM Inc.
* Copyright 2023- IBM Inc.
objcache-client
* Copyright 2023- IBM Inc.
* Copyright 2023- IBM Inc.
objcache-csi-node
* Copyright 2023- IBM Inc.
* Copyright 2023- IBM Inc.
* Copyright 2023- IBM Inc.
* Copyright 2023- IBM Inc.
* Copyright 2023- IBM Inc.
* Copyright 2023- IBM Inc.
operator module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL