Comments (10)
For clarity, you're saying that the receiver, which did not initiate the request, should be able to wait until a named volume is made available on it?
from flocker.
Yes, the motivation is to allow a node to independently set itself up given the current global config and required global config. See transcript in #12 for example.
from flocker.
For version 0.1, this should probably poll the storage pool for the desired volume. Once the volume manager is actually running as a service, this can be handled by internal notification.
from flocker.
Polling is the probably the way to go, yes, but better to poll for existence of the Docker data container, since that is necessary for starting the application container and it is only created after the volume creation.
from flocker.
It would be easier for that to be handled by the orchestration layer, after the volume is available. Particularly since doing that requires the knowing the mount path of the volume, which the volume manager doesn't have a reason to know.
from flocker.
Sketch: https://github.com/ClusterHQ/flocker/compare/wait-for-volume-18
The plan is to allow things to wait for ever. This can eventually handled via timeoutDeferred
(after fixing https://twistedmatrix.com/trac/ticket/6656 or switching to notification).
The only error condition, but I don't think that is worth dealing with at this point.
from flocker.
In my current handoff implementation (still in progress) the volume manager is the one that does the expose/unexpose... but I think you're right and it should probably be done at a higher level. In which case polling for volume existence is the way to go. Assuming some atomicity in results of zfs receive
I guess?
I would suggest an additional test that remotely-owned volume with same name is not erroneously considered to be sufficient for waiting to finish. Otherwise looks good, please proceed.
from flocker.
There is ... some ... atomicity in zfs receive
... I don't know if there's enough though. :/ Probably not in the general case. If the stream encompasses multiple snapshots then earlier ones definitely show up before the receive is complete. I'm not completely sure what the behavior is if you are sending a whole filesystem with no intermediate snapshots. We could address this if we knew the snapshot identifier we were waiting for - but it's not obvious how to do that without re-introducing the two-pass flocker-deploy
strategy or a new kind of node-to-node communication.
from flocker.
In that case, insofar as enumeration works by listing subdirectories of the configured mount directory having zfs receive
create unmounted datasets will solve this (i.e. #93).
from flocker.
Well, receive will only happen to a remote volume, so as long as we look only at local ones, we should be fine. But enumeration doesn't look at directories, it asks zfs, which will see unmounted FSs.
from flocker.
Related Issues (20)
- Can't start flocker-control - CentOS 7 HOT 1
- Error looking up volume plugin flocker: legacy plugin: plugin not found HOT 1
- Flocker tests are failing HOT 1
- How to use flocker with docker swarm mode HOT 1
- pkg_resources.DistributionNotFound: The 'eliot' distribution was not found and is required by Flocker HOT 1
- Linux mint 18.1 Install Flocker Node Service Error
- Error: flocker: plugin not found
- Flocker: Control service is not getting up
- Issue with Cloudformation Template HOT 2
- Cannnot install Flocker node on Centos7 HOT 3
- Download page is not reachable HOT 1
- HTTP Error 404: Not Found for URL https://clusterhq-archive.s3.amazonaws.com/python/Flocker-1.15.0-py2-none-any.whl HOT 2
- The New site need to be Right Url HOT 7
- Flocker Shutdown HOT 1
- flocker apt repo failed on ubuntu16.04 HOT 9
- Regarding kubernete with flocker, Is this mandate to intstall the flocker on kubernetes Nodes or can I install flocker on separate nodes from kubernete and then integrate together
- Unable to access the below URL HOT 1
- Can't install flocker-node on RHEL/CentOS 7
- FYI: referenced issue is fixed
- Flocker abandoned? HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flocker.