<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Sat, Mar 19, 2016 at 12:53 AM Jacek Nykis <<a href="mailto:jacek.nykis@canonical.com">jacek.nykis@canonical.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 08/03/16 23:51, Mark Shuttleworth wrote:<br>
> *Storage*<br>
><br>
> * shared filesystems (NFS, GlusterFS, CephFS, LXD bind-mounts)<br>
> * object storage abstraction (probably just mapping to S3-compatible APIS)<br>
><br>
> I'm interested in feedback on the operations aspects of storage. For<br>
> example, whether it would be helpful to provide lifecycle management for<br>
> storage being re-assigned (e.g. launch a new database application but<br>
> reuse block devices previously bound to an old database instance).<br>
> Also, I think the intersection of storage modelling and MAAS hasn't<br>
> really been explored, and since we see a lot of interest in the use of<br>
> charms to deploy software-defined storage solutions, this probably will<br>
> need thinking and work.<br>
<br>
Hi Mark,<br>
<br>
I took juju storage for a spin a few weeks ago. It is a great idea and<br>
I'm sure it will simplify our models (no more need for<br>
block-storage-broker and storage charms). It will also improve security<br>
because block-storage-broker needs nova credentials to work<br>
<br>
I only played with storage briefly but I hope my feedback and ideas will<br>
be useful<br>
<br>
* IMO it would be incredibly useful to have storage lifecycle<br>
management. Deploying a new database using pre-existing block device you<br>
mentioned would certainly be nice. Another scenario could be users who<br>
deploy to local disk and decide to migrate to block storage later<br>
without redeploying and manual data migration<br>
<br></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
One day we may even be able to connect storage with actions. I'm<br>
thinking "storage snapshot" action followed by juju deploy to create up<br>
to date database clone for testing/staging/dev<br>
<br>
* I found documentation confusing. It's difficult for me to say exactly<br>
what is wrong but I had to read it a few times before things became<br>
clear. I raised some specific points on github:<br>
<a href="https://github.com/juju/docs/issues/889" rel="noreferrer" target="_blank">https://github.com/juju/docs/issues/889</a><br>
<br>
* cli for storage is not as nice as other juju commands. For example we<br>
have the in the docs:<br>
<br>
juju deploy cs:~axwalk/postgresql --storage data=ebs-ssd,10G pg-ssd<br>
<br>
I suspect most charms will use single storage device so it may be<br>
possible to optimize for that use case. For example we could have:<br>
<br>
juju deploy cs:~axwalk/postgresql --storage-type=ebs-ssd --storage-size=10G<br></blockquote><div><br></div><div>It seems like the issues you've noted below are all documentation issues, rather than limitations in the implementation. Please correct me if I'm wrong.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
If we come up with sensible defaults for different providers we could<br>
make end users' experience even better by making --storage-type optional<br></blockquote><div><br></div><div>Storage type is already optional. If you omit it, you'll get the provider default. e.g. for AWS, that's EBS magnetic disks.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
* it would be good to have ability to use single storage stanza in<br>
metadata.yaml that supports all types of storage. They way it is done<br>
now [0] means I can't test block storage hooks in my local dev<br>
environment. It also forces end users to look for storage labels that<br>
are supported<br>
<br>
[0] <a href="http://paste.ubuntu.com./15414289/" rel="noreferrer" target="_blank">http://paste.ubuntu.com./15414289/</a></blockquote><div><br></div><div>Not quite sure what you mean here. If you have a "filesystem" type, you can use any storage provider that supports natively creating filesystems (e.g. "tmpfs") or block devices (e.g. "ebs"). If you specify the latter, Juju will manage the filesystem on the block device.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
* the way things are now hooks are responsible for creating filesystem<br>
on block devices. I feel that as a charmer I shouldn't need to know that<br>
much about storage internals. I would like to ask juju and get<br>
preconfigured path back. Whether it's formatted and mounted block<br>
device, GlusterFS or local filesystem it should not matter</blockquote><div><br></div><div>That is exactly what it does, so again, I think this is an issue of documentation clarity. If you're using the "filesystem" type, Juju will create the filesystem; if you use "block", it won't.</div><div><br></div><div>If you could provide more details on what you're doing (off list, I think would be best), I can try and help. We can then feed back into the docs to make it clearer.</div><div><br></div><div>Cheers,</div><div>Andrew</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
* finally I hit 2 small bugs:<br>
<br>
<a href="https://bugs.launchpad.net/juju-core/+bug/1539684" rel="noreferrer" target="_blank">https://bugs.launchpad.net/juju-core/+bug/1539684</a><br>
<a href="https://bugs.launchpad.net/juju-core/+bug/1546492" rel="noreferrer" target="_blank">https://bugs.launchpad.net/juju-core/+bug/1546492</a></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
If anybody is interested in more details just ask, I'm happy to discuss<br>
or try things out just note that I will be off next week so will most<br>
likely reply on 29th<br>
<br>
<br>
Regards,<br>
Jacek<br>
<br>
--<br>
Juju mailing list<br>
<a href="mailto:Juju@lists.ubuntu.com" target="_blank">Juju@lists.ubuntu.com</a><br>
Modify settings or unsubscribe at: <a href="https://lists.ubuntu.com/mailman/listinfo/juju" rel="noreferrer" target="_blank">https://lists.ubuntu.com/mailman/listinfo/juju</a><br>
</blockquote></div></div>