{"id":13452319,"url":"https://github.com/LINBIT/linstor-docker-volume","last_synced_at":"2025-03-23T19:34:08.915Z","repository":{"id":82827826,"uuid":"172917105","full_name":"LINBIT/linstor-docker-volume","owner":"LINBIT","description":"Docker volume plugin for LINSTOR","archived":true,"fork":false,"pushed_at":"2020-02-25T09:28:08.000Z","size":21,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-07-31T07:18:41.921Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LINBIT.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-27T13:05:17.000Z","updated_at":"2023-01-28T15:40:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"ad353e4a-2d02-4110-93af-5ee7ec32bd1c","html_url":"https://github.com/LINBIT/linstor-docker-volume","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LINBIT%2Flinstor-docker-volume","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LINBIT%2Flinstor-docker-volume/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LINBIT%2Flinstor-docker-volume/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LINBIT%2Flinstor-docker-volume/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LINBIT","download_url":"https://codeload.github.com/LINBIT/linstor-docker-volume/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221900872,"owners_count":16898989,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T07:01:20.502Z","updated_at":"2024-10-28T18:31:02.916Z","avatar_url":"https://github.com/LINBIT.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"% LINSTORDOCKERVOLUME(8) LINSTOR Docker Volume Plugin User Manual\n% Roland Kammerer\n% Feb 26, 2019\n\n# NAME\n\nlinstor-docker-volume - a volume plugin for docker\n\n# SYNOPSIS\n\ndocker volume create [*dockeroptions*] \\--driver=linstor [*pluginoptions*] volumename\n\ndocker container run [*dockeroptions*] \\--volume-driver=linstor \\--volume volumename:/data busybox sh\n\n# DESCRIPTION\n\nlinstor-docker-volume is a daemon that is socket-activated by\n*systemd(1)*. It reads http commands from a local socket and manages\n*linstor(8)* resources that are replicated via *DRBD*.\n\n# DRBD TERMINOLOGY\nDRBD replicates data on a block level between multiple hosts. With DRBD it is\npossible that node alpha reads (and writes) data that is actually stored on\n node bravo. In this case node alpha has a *diskless assignment* and node\nbravo has a *diskfull assignment*. While even diskless nodes can access the\ndata in the cluster, the number of `diskfull assignments` is important,\nbecause it corresponds to the number of full replicas in the cluster. If for\nexample there are *N* diskfull assignments in the cluster, *N-1* can fail\nbeyond repair while the data is still stored for operation or recovery on the\nlast diskfull node.\n\n# OPTIONS\n\nPlugin options are always given as options for the `docker` command and are\ntherefore prefixed with `--opt`. See the *EXAMPLES* section for further\ninformation.\n\n\\--opt fs=*FORMAT*\n:   Specify the file system that should be used for the new docker volume.\n\t *FORMAT* can be any file system that can be created and mounted on all\n\t cluster nodes where the volume should be available. If not specified, it\n\t defaults to `ext4`.\n\n\\--opt fsopts=*OPTIONS*\n:   Specify additional options for file system creation as a string. These options\n\t are passed to the *mkfs* command. If not specified, it defaults to the\n\t empty string.\n\n\\--opt size=*SIZE*\n:   Specify the size of the new docker volume in *MB*. The unit is always\n\t *MB*. If not specified, it defaults to a size of 100MB.\n\n\\--opt storagepool=*NAME*\n:   Specify the the name of the storage pool that is used for `disful assigments`.\n\t If not specified, it defaults to \"drbdpool\".\n\n\\--opt nodes=*NODES*\n:   Specify a list of hosts this docker volume should be deployed to.\n    *NODES* is a comma separated list of node names as shown by\n\t *linstor node list*. A new volume is always deployed to these nodes as a\n\t `diskfull assignment`. Nodes not in the list, but in the DRBD cluster get a\n\t `diskless assignment` whenever needed. If not specified, it defaults to the\n\t empty list. See `--opt replicas` and the end of the section for further\n\t information about the interaction between these two options.\n\n\\--opt replicas=*COUNT*\n:   Specify the number of nodes this volume should be deployed `diskfull`. All\n    other nodes in the DRBD cluster get a `diskless assignment`. If not given\n\t it defaults to 2. See `--opt nodes` and the end of the section for\n\t further information about the interaction between these two options.\n\nIf none of *replicas* and *nodes* is given, the default of *replicas* will be\nused. I.e., the new volume will be deployed `diskfull` to two nodes in the\ncluster.\n\nIf both options, *replicas* and *nodes*, are given, the user given list of\nnodes will be taken into account and `replicas` is ignored. I.e., the new\nvolume will be deployed to the given nodes `diskfull`.\n\n# EXAMPLES\nIn the following we expect a cluster consisting of three nodes (alpha, bravo,\nand charlie).\n\nExample 1 (a typical life cycle):\n\nOn node alpha:\n\n    $ docker volume create -d linstor \\\n                           --opt fs=xfs --opt size=200 lsvol\n    $ docker run -it --rm --name=cont \\\n\t\t\t\t -v lsvol:/data --volume-driver=linstor busybox sh\n    $ root@cont: echo \"foo\" \u003e /data/test.txt\n    $ root@cont: exit\n\nOn node bravo:\n\n    $ docker run -it --rm --name=cont \\\n\t\t\t\t -v lsvol:/data --volume-driver=linstor busybox sh\n    $ root@cont: cat /data/test.txt\n      foo\n    $ root@cont: exit\n    $ docker volume rm lsvol\n\nExample 2 (one diskfull assignment by name, two nodes diskless):\n\n    $ docker volume create -d linstor --opt hosts=bravo lsvol\n\nExample 3 (one diskfull assignment, no matter where, two nodes diskless):\n\n    $ docker volume create -d linstor --opt replicas=1 lsvol\n\nExample 4 (two diskfull assignments by name, charly diskless):\n\n    $ docker volume create -d linstor --opt hosts=alpha,bravo lsvol\n\nExample 5 (two diskfull assignments, no matter where, one node diskless):\n\n    $ docker volume create -d linstor --opt replicas=2 lsvol\n\nExample 6 (using curl without docker, useful for developers):\n\n    $ curl --unix-socket /run/docker/plugins/linstor.sock \\\n\t\t\t  -X POST -H \"Content-Type: application/json\"\n\t\t\t  -d '{\"Name\":\"linstorvol\"}' http://localhost/VolumeDriver.List\n\n# SEE ALSO\n\n`linstor` (8).\nThe *README* file distributed with linstor-docker-volume is the base for this man page.\n\nThe source code and all documentation may be downloaded from\n\u003chttps://www.linbit.com/\u003e.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLINBIT%2Flinstor-docker-volume","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLINBIT%2Flinstor-docker-volume","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLINBIT%2Flinstor-docker-volume/lists"}