{"action":"created","issue":{"url":"https://api.github.com/repos/codedellemc/rexray/issues/698","repository_url":"https://api.github.com/repos/codedellemc/rexray","labels_url":"https://api.github.com/repos/codedellemc/rexray/issues/698/labels{/name}","comments_url":"https://api.github.com/repos/codedellemc/rexray/issues/698/comments","events_url":"https://api.github.com/repos/codedellemc/rexray/issues/698/events","html_url":"https://github.com/codedellemc/rexray/issues/698","id":201046942,"number":698,"title":"[FEATURE REQUEST] Reuse existing EFS file systems in different docker volumes","user":{"login":"bvis","id":580682,"avatar_url":"https://avatars3.githubusercontent.com/u/580682?v=3","gravatar_id":"","url":"https://api.github.com/users/bvis","html_url":"https://github.com/bvis","followers_url":"https://api.github.com/users/bvis/followers","following_url":"https://api.github.com/users/bvis/following{/other_user}","gists_url":"https://api.github.com/users/bvis/gists{/gist_id}","starred_url":"https://api.github.com/users/bvis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bvis/subscriptions","organizations_url":"https://api.github.com/users/bvis/orgs","repos_url":"https://api.github.com/users/bvis/repos","events_url":"https://api.github.com/users/bvis/events{/privacy}","received_events_url":"https://api.github.com/users/bvis/received_events","type":"User","site_admin":false},"labels":[{"id":322333211,"url":"https://api.github.com/repos/codedellemc/rexray/labels/feature%20request","name":"feature request","color":"bfdadc","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2017-01-16T15:23:52Z","updated_at":"2017-03-15T21:27:29Z","closed_at":"2017-03-15T21:27:28Z","body":"### Fact\r\nCurrently there's a basic support of EFS as filesystem provider for Rex-Ray. But as far as I've seen it creates/uses a filesystem for each docker volume.\r\n\r\nAs the EFS paradigm (unlimited size, credits/performance model, limits) is quite different from other providers it would have sense to add the possibility to define in configuration one particular EFS backend for the node. \r\n\r\n### Proposal\r\n\r\nInstead of the current configuration that is something like:\r\n\r\n```\r\nlibstorage:\r\n service: efs\r\n server:\r\n   services:\r\n     efs:\r\n       driver: efs\r\n       efs:\r\n         accessKey:      ${AWS_ACCESS_KEY_ID}\r\n         secretKey:      ${AWS_SECRET_ACCESS_KEY}\r\n         securityGroups: ${AWS_SECURITY_GROUP_ID}\r\n         region:         ${AWS_DEFAULT_REGION}\r\n         tag:            efs-namespace\r\n```\r\nWould be good to have another extra configuration value:\r\n```\r\nlibstorage:\r\n service: efs\r\n server:\r\n   services:\r\n     efs:\r\n       driver: efs\r\n       efs:\r\n         accessKey:      ${AWS_ACCESS_KEY_ID}\r\n         secretKey:      ${AWS_SECRET_ACCESS_KEY}\r\n         securityGroups: ${AWS_SECURITY_GROUP_ID}\r\n         region:         ${AWS_DEFAULT_REGION}\r\n         tag:            efs-namespace\r\n         fileSystem:     concrete-fs\r\n```\r\nThe usage in both scenarios would be the same:\r\n```\r\n$ docker run -d -P \\\r\n  --volume-driver=rexray \\\r\n  -v my-named-volume:webapp \\\r\n  --name web \\\r\n  user/app-image\r\n\r\n$ docker run -d -P \\\r\n  --volume-driver=rexray \\\r\n  -v my-named-volume:db \\\r\n  --name db \\\r\n  mysql\r\n```\r\nThe only difference is that in the first configuration (currently available) you are creating or using a volume that represents each EFS filesystem: *efs-namespace:webapp* and *efs-namespace:db*. Both mounting the root folder of each fs.\r\n\r\nThe second allows to reuse a global EFS filesystem and mount just a directory from it. Applying the same definitions it would be in EFS just one file system: *efs-namespace:concrete-fs*, but you would be mounting a subdirectory: *efs-namespace:concrete-fs/webapp* and *efs-namespace:concrete-fs/db*\r\n\r\n### Advantages\r\n\r\n- Limitation of number of EFS filesystem per AWS account is no longer a problem\r\n- Credit usage: EFS performs better with the usage of the FS. Divide the usage on each independent FS and you'll dividing individual performance as well."},"comment":{"url":"https://api.github.com/repos/codedellemc/rexray/issues/comments/286884837","html_url":"https://github.com/codedellemc/rexray/issues/698#issuecomment-286884837","issue_url":"https://api.github.com/repos/codedellemc/rexray/issues/698","id":286884837,"user":{"login":"codenrhoden","id":1627176,"avatar_url":"https://avatars0.githubusercontent.com/u/1627176?v=3","gravatar_id":"","url":"https://api.github.com/users/codenrhoden","html_url":"https://github.com/codenrhoden","followers_url":"https://api.github.com/users/codenrhoden/followers","following_url":"https://api.github.com/users/codenrhoden/following{/other_user}","gists_url":"https://api.github.com/users/codenrhoden/gists{/gist_id}","starred_url":"https://api.github.com/users/codenrhoden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codenrhoden/subscriptions","organizations_url":"https://api.github.com/users/codenrhoden/orgs","repos_url":"https://api.github.com/users/codenrhoden/repos","events_url":"https://api.github.com/users/codenrhoden/events{/privacy}","received_events_url":"https://api.github.com/users/codenrhoden/received_events","type":"User","site_admin":false},"created_at":"2017-03-15T21:27:29Z","updated_at":"2017-03-15T21:27:29Z","body":"Issue moved to [codedellemc/libstorage #468](https://github.com/codedellemc/libstorage/issues/468) via [**ZenHub**](https://www.zenhub.com/)\n"}}
{"actor":{"display_login":"codenrhoden"}}