Help to understand storage

Asked by Alberto Zuin

Hello all,
I'm a newby and I read many pages, but I'm always bit confused about VM Storage in OpenStack.
As I understood, there is "OpenStack Swift" wich is able to store objects (and a VM image is an object), and there is also Glance which is able to interconnect a Nova Cluster to Swift to retrieve images. If this is true, OpenStack Swift/Glance is what can do a SAN in a traditional virtualized infrastructure like Xenserver or VMWare.
We admit, for example, a project with a VM with LAMP and a dynamic site like Wordpress; in this example, the VM has to write many datas, like Apache log and MySQL data.
The question is this: as I understood, Swift is not a real filesystem: when a bit change, all the object must be updated and, then in my example, we have to upload a modified image for every "Insert/Update" query.
Is that correct and I have to store dynamic data in another system like NFS NAS? Or I don't understood the function of memcached in swift or something else? Are old nova-objectstore able to do this?
The last question: are compute servers (using XEN or KVM hypervisor) fault tolerant? I mean, if a host goes down forn an HW problem, are the instance running on this host automatically migrated on another one?
Thanks,
Alberto

Question information

Language:
English Edit question
Status:
Solved
For:
OpenStack Compute (nova) Edit question
Assignee:
No assignee Edit question
Solved by:
Alberto Zuin
Solved:
Last query:
Last reply:
Revision history for this message
Alberto Zuin (alberto-azns) said :
#1

I searched around and I found myself the answer to some of my questions. Please correct me if I'm in fault.
1) Swift is not intended as the datastore of Nova, it is necessary a block network filesystem like iSCSI (only for XEN API) or Ceph/Rados - Sheepdog (now down for the earthquake, I think) for KVM. In future releases, Glance will be the system that interconnect the block filesystem of Nova and Swift, for example to store snapshot of VM
2) About the HA: I understood Live Migration will be implemented in next release, but I don't understand if the virtualization system is simply now fault tolerant. I don't understand if a Nova compute server crash, the Cloud Controller will transfer instance in another server. I don't understand if this feature is an hypervisor's task (Xen 4.0 is maked via Remus, I don't know how in paid Xenserver system) or a task of Nova Cloud Controller.
Please clarify me to the second question...
Thanks,
Alberto

Revision history for this message
Anne Gentle (annegentle) said :
#2

Hi Alberto -

Thanks for taking the time to ask these questions and to post your findings as well. We appreciate it and it'll help others as well.

1) Yes, you're correct. Swift is not the default datastore for Nova, but you can configure Nova to use Glance and also configure Glance to use Swift as it's data store, which would let you store your VM images in Swift and retrieve them using Glance and run them using Nova.

2) Ummm. I'm not sure, and I hope someone else can answer that question for you. It's a good question.

On a related note, for block storage, you can use nova-volume and set up LVM as a volume storage system that the instances can share. You can read more about managing volumes at http://docs.openstack.org/openstack-compute/admin/content/ch05s07.html.

Revision history for this message
Alberto Zuin (alberto-azns) said :
#3

Thanks for you reply Anne and excuse me for my delay.
Now I think I have understood how is the storage in OpenStack: please correct me if I'm in wrong.
1) there is a datastore where the VM image lives: this is not intended for read/write and, for default, is nova objectstore. If you want, you can substitute nova objectstore with glance wich provide similare S3 service like objectore but it is the "man-in-the-middle" between compute and swift to store images
2) there is a second kind of storage in OpenStack, intended for read/write purposes (databases, log, etc.) this service is nova volume wich basically is an LVM/iSCSI implemetation to mount block devices in VM. To made this storage scalable like swift, there are some possibility outside openstack (SheepDog, Chep/Rados).

Now I think the better way to understand OpenStack is to try it myself: then prepare to answer many, many other questions ;-)

Thanks,
Alberto