OpenStack Glance NFS and Compute local direct fetch
This feature has been around for quite a while now, if I remember correctly it was introduced in the Grizzly release. However, I never really got the chance to play around with it. Let’s assume that you use NFS to store Glance images, we know that the default booting mechanism implies to fetch the instance image from Glance to the Nova compute. This is basically streaming the image which involves network throughput and makes the boot process longer. OpenStack Nova can be configured to directly access Glance images from a local filesystem path. This is ideal for our NFS scenario.
The setup is a bit tricky, so first configure your glance-api.conf
and apply the following flags:
[DEFAULT]
show_multiple_locations = True
filesystem_store_metadata_file = /etc/glance/nfs.json
Create your /etc/glance/nfs.json
file:
{
"id": "f5e1eee7-9160-493e-9b6f-d4b1c34eaa23",
"mountpoint": "/srv/nfs/glance/"
}
Make sure to restart both Glance API and registry.
Now, in your nova.conf
on your compute nodes only, append the following values in the appropriate sections:
[DEFAULT]
...
...
allowed_direct_url_schemes = file
...
...
[image_file_url]
filesystems = nfs
[image_file_url:nfs]
id = f5e1eee7-9160-493e-9b6f-d4b1c34eaa23
mountpoint = /srv/nfs/glance/
During the boot sequence, Nova will issue a
cp
instead of fetching the Glance image through the network. Et voilà!
Comments