OpenStorage - A multi-host clustered implementation of the open storage specification

  •        85

OpenStorage is an API abstraction layer providing support for multiple public APIs, including the OpenStorage SDK, CSI, and the Docker Volume API. Developers using OpenStorage for their storage systems can expect it to work seamlessly with any of the supported public APIs. These implementations provide users with the ability to run stateful services in Linux containers on multiple hosts.

Not only does OpenStorage allow storage developers to integrated their storage system with container orchestrations systems, but also enables applications developers to use the OpenStorage SDK to manage and expose the latest storage features to their clients.

https://github.com/libopenstorage/openstorage

Tags
Implementation
License
Platform

   




Related Projects

convoy - A Docker volume plugin, managing persistent container volumes.

  •    Go

Convoy is a Docker volume plugin for a variety of storage back-ends. It's designed to be a simple Docker volume plug-ins that supports vendor-specific extensions such as snapshots, backups and restore. It's written in Go and can be deployed as a standalone binary.Docker has various drivers(aufs, device mapper, etc) for container's root image, but not for volumes. User can create volume through docker run -v volname, but it's disposable, cannot be easily reused for new containers or containers on the other hosts. For example, if you start a wordpress container with database, add some posts, remove the container, then the modified database would lost.

local-persist - Create named local volumes that persist in the location(s) you want

  •    Go

In Docker 1.9, they added support for creating standalone named Volumes. Now with Docker 1.10 and Docker Compose 1.6's new syntax, you can create named volumes through Docker Compose.This is great for creating standalone volumes and easily connecting them to different directories in different containers as a way to share data between multiple containers. On a much larger scale, it also allows for the use of Docker Volume Plugins to do cool things like Flocker is doing (help run stateful containers across multiple hosts).

docker-volume-netshare - Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin

  •    Go

Mount NFS v3/4, AWS EFS or CIFS inside your docker containers. This is a docker plugin which enables these volume types to be directly mounted within a container.NFS needs to be installed on Linux systems in order to properly mount NFS mounts.

Flocker - Container data volume manager for your Dockerized application

  •    Python

Flocker is an open-source Container Data Volume Manager for your Dockerized applications. By providing tools for data migrations, Flocker gives ops teams the tools they need to run containerized stateful services like databases in production. Unlike a Docker data volume which is tied to a single server, a Flocker data volume, called a dataset, is portable and can be used with any container, no matter where that container is running.

lcfs - LCFS Graph driver for Docker

  •    C

tl;dr: Every time you build, pull or destroy a Docker container, you are using a storage driver. Current storage drivers like Device Mapper, AUFS, and Overlay2 implement container behavior using file systems designed to run a full OS. We are open-sourcing a file system that is purpose-built for the container lifecycle. We call this new file system Layer Cloning File System (LCFS). Because it is designed only for containers, it is up to 2.5x faster to build an image and up to almost 2x faster to pull an image. We're looking forward to working with the container community to improve and expand this new tool. Layer Cloning FileSystem (LCFS) is a new filesystem purpose-built to be a Docker storage driver. All Docker images are constructed of layers using storage drivers (graph drivers) like AUFS, OverlayFS, and Device Mapper. As a design principle, LCFS focuses on layers as the first-class citizen. The LCFS filesystem operates directly on top of block devices, as opposed to merging separate filesystems. Thereby, LCFS aims to directly manage at the container image’s layer level, eliminate the overhead of having a second filesystem that then is merged, and to optimize for density.


docker-volume-glusterfs - [UNMAINTAINED] Volume plugin to use GlusterFS as distributed data storage

  •    Go

This plugin uses GlusterFS as distributed data storage for containers. This plugin doesn't create volumes in your GlusterFS cluster yet, so you'll have to create them yourself first.

docker-machine-driver-xhyve - docker-machine/minikube/minishift driver plugin for xhyve/hyperkit (native macOS hypervisor

  •    Go

Master branch inherited from nathanleclaire/docker-machine-xhyve. Thanks @nathanleclaire :) If you have issues or pull-requests, Desired to be posted to this repository. docker-machine-driver-xhyve using libmachine plugin model.

docker-machine-vmwareworkstation - VMWare Workstation driver for Docker Machine https://github

  •    Go

This plugin for Docker Machine creates Docker hosts locally on a VMware Workstation. This is a placeholder and collaboration point to add a VMware workstation driver for Docker Machine. This driver reuses part of the code from the fusion driver bundled with Docker Machine (as both have the same executable) and includes additional code from Packer VMware driver to detect the location of the files on Windows systems.

docker-machine-driver-xhyve - docker-machine/minikube/minishift driver plugin for xhyve/hyperkit (native macOS hypervisor

  •    Go

Master branch inherited from nathanleclaire/docker-machine-xhyve. Thanks @nathanleclaire :) If you have issues or pull-requests, Desired to be posted to this repository.docker-machine-driver-xhyve using libmachine plugin model.

docker-cleanup - Automatic Docker image, container and volume cleanup

  •    Shell

This image will periodically clean up exited containers and remove images and volumes that aren't in use by a running container. Based on tutumcloud/image-cleanup and chadoe/docker-cleanup-volumes with some small fixes. WARNING: This script will remove all exited containers, data-only containers and unused images unless you carefully exclude them. Take care if you mount /var/lib/docker into the container since that will clean up all unused data volumes. If it's not compatible with your system or Docker version it may delete all your volumes, even from under running containers.

rexray - REX-Ray is a container storage orchestration engine enabling persistence for cloud native workloads

  •    Go

REX-Ray provides a vendor agnostic storage orchestration engine. The primary design goal is to provide persistent storage for Docker, Kubernetes, and Mesos.It is additionally available as a Go package, CLI tool, and Linux service which enables it to be used for additional use cases.

dvm - An on demand Docker virtual machine, thanks to Vagrant and boot2docker

  •    Shell

An on demand Docker virtual machine, thanks to Vagrant and boot2docker. Works great on Macs and other platforms that don't natively support the Docker daemon. Under the covers this is downloading and booting Mitchell Hashimoto's boot2docker Vagrant Box image. The driving need for something like dvm was for running infrastructure testing, like Test Kitchen using the kitchen-docker driver. For the driver to work it needs access to all the dynamically assigned ports, not just the Docker daemon port. That's why dvm uses a private network segment and address (192.168.42.43 by default). Once Docker started supporting the DOCKER_HOST environment variable, the actual IP address was less important and consequently made the docker command on non-Linux distros feel almost native.

docker-volumes - Docker Volume Manager

  •    Go

This is a tool for managing your Docker volumes.Basically, since volumes are not yet first-class citizens in Docker they can be difficult to manage. Most people tend to have extra volumes laying around which are not in use because they didn't get removed with the container they were used with.

docker-cleanup-volumes - Shellscript to delete orphaned docker volumes

  •    Shell

--dry-run : Use the --dry-run option to have the script print the volumes that would have been deleted without actually deleting them. --verbose : Have the script output more information. If you symlinked /var/lib/docker to somewhere else make sure you tell the Docker container where it is by providing the real path or by using readlink in volume parameter.

docker-machine-nfs - Activates NFS on docker-machine

  •    Shell

Activates NFS for an existing boot2docker box created through Docker Machine.Heavily inspired by @mattes ruby version boot2docker-nfs.rb.

docker-machine-kvm - KVM driver for docker-machine

  •    Go

This driver leverages the new plugin architecture being developed for Docker Machine. This driver leverages libvirt and the libvirt-go library to create and manage KVM based virtual machines. It has been tested with Ubuntu 12.04 through 15.04 and should work on most platforms with KVM/libvirt support. If you run into compatibility problems, please file an issue.

socketplane - SocketPlane - Multi-Host Container Networking

  •    Go

Developers don't want to care about VLANs, VXLANs, Tunnels or TEPs. People responsible for managing the infra expect it to be performant and reliable. SocketPlane provides a networking abstraction at the socket-layer in order to solve the problems of the network in a manageable fashion. This early release is just a peek at some of the things we are working on and releasing to the community as open source. As we are working upstream with the Docker community to bring in native support for network driver/plugin/extensions, we received a number of request to try the proposed socketplane solution with existing Docker versions. Hence we came up with a temporary wrapper command : socketplane that is used as a front-end to the docker CLI commands. This enables us to send hooks to the SocketPlane Daemon.

heketi - RESTful based volume management framework for GlusterFS

  •    Go

Heketi provides a RESTful management interface which can be used to manage the life cycle of GlusterFS volumes. With Heketi, cloud services like OpenStack Manila, Kubernetes, and OpenShift can dynamically provision GlusterFS volumes with any of the supported durability types. Heketi will automatically determine the location for bricks across the cluster, making sure to place bricks and its replicas across different failure domains. Heketi also supports any number of GlusterFS clusters, allowing cloud services to provide network file storage without being limited to a single GlusterFS cluster. When a request is received to create a volume, Heketi will first allocate the appropriate storage in a cluster, making sure to place brick replicas across failure domains. It will then format, then mount the storage to create bricks for the volume requested. Once all bricks have been automatically created, Heketi will finally satisfy the request by creating, then starting the newly created GlusterFS volume.

Rancher - Complete container management platform

  •    Go

Rancher is an open source project that provides a complete platform for operating Docker in production. It provides infrastructure services such as multi-host networking, global and local load balancing, and volume snapshots. It integrates native Docker management capabilities such as Docker Machine and Docker Swarm. It offers a rich user experience that enables devops admins to operate Docker in production at large scale.

docker-thumbor - Docker image for thumbor

  •    Smarty

Docker image for thumbor, and separated one for remotecv, necessary for the lazy detection. All parameters of the thumbor config can be set with env vars. The thumbor's docker expose port 8000 with the service. Consider to use the docker-thumbor-nginx image to use nginx like a first cache. The nginx cache check if the file exists in a shared volume (file_storage) after to send the request to thumbor (automated failover). We propose two thumbor images aspl/thumbor and apsl/thumbor-multiprocess. The first one (monoprocess) to use under a docker organization tool and the second one use circus to increase the number of thumbor processes. Use multiprocess if you need to deploy in one host and scale up. The remotecv could be scaled increasing the number of docker images using the same redis queue.