<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nova.git/nova/virt/libvirt.xml.template, branch shared-key-msg</title>
<subtitle>OpenStack's nova patches.</subtitle>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/'/>
<entry>
<title>Convert libvirt connection class to use config APIs for guests</title>
<updated>2012-03-23T19:23:13+00:00</updated>
<author>
<name>Daniel P. Berrange</name>
<email>berrange@redhat.com</email>
</author>
<published>2012-03-08T16:34:54+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=c0f678778afefc71649253e685e8f5d6af96b3a9'/>
<id>c0f678778afefc71649253e685e8f5d6af96b3a9</id>
<content type='text'>
Remove the entire Cheetah XML template for libvirt guests
and make the libvirt connection class use LibvirtConfingGuest
classes instead

The nova 'libvirt_xml_template' config parameter is now obsolete
and removed.

blueprint libvirt-xml-config-apis
Change-Id: I5ff4ed7cbc69c8c141db840f4d6fc368a13f7f7a
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the entire Cheetah XML template for libvirt guests
and make the libvirt connection class use LibvirtConfingGuest
classes instead

The nova 'libvirt_xml_template' config parameter is now obsolete
and removed.

blueprint libvirt-xml-config-apis
Change-Id: I5ff4ed7cbc69c8c141db840f4d6fc368a13f7f7a
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Convert libvirt connection class to use config APIs for disk devices</title>
<updated>2012-03-23T19:23:13+00:00</updated>
<author>
<name>Daniel P. Berrange</name>
<email>berrange@redhat.com</email>
</author>
<published>2012-03-08T16:24:35+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=983ac72be4d57a4108edead00d56a3d189c6d499'/>
<id>983ac72be4d57a4108edead00d56a3d189c6d499</id>
<content type='text'>
Remove all the &lt;disk&gt; elements from the Cheetah XML template
and make the libvirt connection class use the LibvirtConfigGuestDisk
class for them instead

blueprint libvirt-xml-config-apis
Change-Id: I0f09a86e72e5e34bbd780b31177a65eb40fb5419
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove all the &lt;disk&gt; elements from the Cheetah XML template
and make the libvirt connection class use the LibvirtConfigGuestDisk
class for them instead

blueprint libvirt-xml-config-apis
Change-Id: I0f09a86e72e5e34bbd780b31177a65eb40fb5419
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Convert libvirt connection class to use config APIs for filesystem devices</title>
<updated>2012-03-23T19:23:13+00:00</updated>
<author>
<name>Daniel P. Berrange</name>
<email>berrange@redhat.com</email>
</author>
<published>2012-03-08T16:33:47+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=0b10c3f1a042003f917a4af95712a2d85561e53e'/>
<id>0b10c3f1a042003f917a4af95712a2d85561e53e</id>
<content type='text'>
Remove the &lt;filesystem&gt; element from the Cheetah XML template
and make the libvirt connection class use the LibvirtConfigGuestFilesys
class for it instead

blueprint libvirt-xml-config-apis
Change-Id: I9dad031703161d1dff86af03eff7b1ebf657fc0c
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the &lt;filesystem&gt; element from the Cheetah XML template
and make the libvirt connection class use the LibvirtConfigGuestFilesys
class for it instead

blueprint libvirt-xml-config-apis
Change-Id: I9dad031703161d1dff86af03eff7b1ebf657fc0c
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Convert libvirt connection class to use config APIs for input devices</title>
<updated>2012-03-23T19:23:12+00:00</updated>
<author>
<name>Daniel P. Berrange</name>
<email>berrange@redhat.com</email>
</author>
<published>2012-03-08T16:21:48+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=bbf078a6d95d3434da532040e14b825af1f3bcce'/>
<id>bbf078a6d95d3434da532040e14b825af1f3bcce</id>
<content type='text'>
Remove the &lt;input&gt; elements form the Cheetah XML template
and make the libvirt connection class use the LibvirtConfigGuestInput
class for it instead

blueprint libvirt-xml-config-apis
Change-Id: I4fba2ddae2d32b0ff49685245fd905651885b61b
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the &lt;input&gt; elements form the Cheetah XML template
and make the libvirt connection class use the LibvirtConfigGuestInput
class for it instead

blueprint libvirt-xml-config-apis
Change-Id: I4fba2ddae2d32b0ff49685245fd905651885b61b
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Convert libvirt connection class to use config APIs for serial/console devices</title>
<updated>2012-03-23T19:23:12+00:00</updated>
<author>
<name>Daniel P. Berrange</name>
<email>berrange@redhat.com</email>
</author>
<published>2012-03-08T16:20:09+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=7dfa07713aaf6200eba225ccee936277410835d5'/>
<id>7dfa07713aaf6200eba225ccee936277410835d5</id>
<content type='text'>
Remove the &lt;serial&gt; and &lt;console&gt; elements from the Cheetah XML template
and make the libvirt connection class use the LibvirtConfigGuestConsole
and LibvirtConfigGuestSerial classes for them instead

blueprint libvirt-xml-config-apis
Change-Id: I67031dad2969c9b36e2fe9230689c1b7bfbecfce
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the &lt;serial&gt; and &lt;console&gt; elements from the Cheetah XML template
and make the libvirt connection class use the LibvirtConfigGuestConsole
and LibvirtConfigGuestSerial classes for them instead

blueprint libvirt-xml-config-apis
Change-Id: I67031dad2969c9b36e2fe9230689c1b7bfbecfce
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Convert libvirt connection class to use config APIs for graphics</title>
<updated>2012-03-23T19:23:12+00:00</updated>
<author>
<name>Daniel P. Berrange</name>
<email>berrange@redhat.com</email>
</author>
<published>2012-03-07T16:24:47+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=30dc7d11c13c1075d441a72932957e26ef3355b7'/>
<id>30dc7d11c13c1075d441a72932957e26ef3355b7</id>
<content type='text'>
Remove the &lt;graphics&gt; element from the Cheetah XML template and
make the libvirt connection class use the LibvirtConfigGuestGraphics
class for it instead

blueprint libvirt-xml-config-apis
Change-Id: Ifa18cab2aa6983c9439c6230a9109e40a6a0bbe3
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the &lt;graphics&gt; element from the Cheetah XML template and
make the libvirt connection class use the LibvirtConfigGuestGraphics
class for it instead

blueprint libvirt-xml-config-apis
Change-Id: Ifa18cab2aa6983c9439c6230a9109e40a6a0bbe3
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Convert libvirt vif classes over to use config API</title>
<updated>2012-03-23T19:23:12+00:00</updated>
<author>
<name>Daniel P. Berrange</name>
<email>berrange@redhat.com</email>
</author>
<published>2012-03-07T11:57:36+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=77b7d39cf9a177a5947d3a59461661cde5d3af32'/>
<id>77b7d39cf9a177a5947d3a59461661cde5d3af32</id>
<content type='text'>
The classes in the libvirt/vif.py file build up dictionaries
and partial XML snippets, which are then passed onto Cheetah
templating for XML generation. Instead of building up
dictionaries of parameters, return LibvirtConfigGuestInterface
object instances instead

blueprint libvirt-xml-config-apis
Change-Id: I4e977225e21219f408dd729ac280dcbfc6b8ba8f
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The classes in the libvirt/vif.py file build up dictionaries
and partial XML snippets, which are then passed onto Cheetah
templating for XML generation. Instead of building up
dictionaries of parameters, return LibvirtConfigGuestInterface
object instances instead

blueprint libvirt-xml-config-apis
Change-Id: I4e977225e21219f408dd729ac280dcbfc6b8ba8f
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix launching of guests where instances_path is on GlusterFS</title>
<updated>2012-03-23T16:43:14+00:00</updated>
<author>
<name>Daniel P. Berrange</name>
<email>berrange@redhat.com</email>
</author>
<published>2012-03-21T11:35:43+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=78f3e76d695898aaf846efb9c420e146a982e689'/>
<id>78f3e76d695898aaf846efb9c420e146a982e689</id>
<content type='text'>
The FUSE module does not (currentl) support O_DIRECT on files.
This prevents QEMU from starting guests using 'cache=none' for
their disks located on a GlusterFS filesystem. The same also
applies for a handful of other filesystems (notably tmpfs, or
any other FUSE filesystem).

This patch introduces a startup check in Nova compute service
which tries to create a file $instances_path/.direct_io.test
using the O_DIRECT flag. If this succeeds, then cache=none
will be used for all disks, otherwise it will fallback to
using cache=writethrough. While the latter does not have
performance which is as consistent as cache=none, it is still
host-crash safe and preserves data integrity with migration,
if the filesystem is cache coherant (cluster filesystems like
GlusterFS are, NFS by constrast is not).

By doing the dynamic check for O_DIRECT, we ensure that if
future FUSE modules gain O_DIRECT support, Nova will automatically
do the right thing.

* nova/tests/test_libvirt.py: Stub out os.open in
  the _check_xml_and_disk_driver() to enable testing of
  both O_DIRECT and non-O_DIRECT code paths
* nova/tests/test_virt_drivers.py: Set instances_path to
  the current directory
* nova/virt/libvirt.xml.template: Replace hardcoded 'none'
  string with the '$cachemode' variable for all disks.
  Add missing 'cache' attribute for the config disk
* nova/virt/libvirt/connection.py: Check whether O_DIRECT
  is supported on the "FLAGS.instances_path" directory
  and use 'none' for cachemode if it is, 'writethrough'
  otherwise

Bug: 959637
Change-Id: I60cbff1c3ad8299fe2aa37099390f9235f6724d0
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The FUSE module does not (currentl) support O_DIRECT on files.
This prevents QEMU from starting guests using 'cache=none' for
their disks located on a GlusterFS filesystem. The same also
applies for a handful of other filesystems (notably tmpfs, or
any other FUSE filesystem).

This patch introduces a startup check in Nova compute service
which tries to create a file $instances_path/.direct_io.test
using the O_DIRECT flag. If this succeeds, then cache=none
will be used for all disks, otherwise it will fallback to
using cache=writethrough. While the latter does not have
performance which is as consistent as cache=none, it is still
host-crash safe and preserves data integrity with migration,
if the filesystem is cache coherant (cluster filesystems like
GlusterFS are, NFS by constrast is not).

By doing the dynamic check for O_DIRECT, we ensure that if
future FUSE modules gain O_DIRECT support, Nova will automatically
do the right thing.

* nova/tests/test_libvirt.py: Stub out os.open in
  the _check_xml_and_disk_driver() to enable testing of
  both O_DIRECT and non-O_DIRECT code paths
* nova/tests/test_virt_drivers.py: Set instances_path to
  the current directory
* nova/virt/libvirt.xml.template: Replace hardcoded 'none'
  string with the '$cachemode' variable for all disks.
  Add missing 'cache' attribute for the config disk
* nova/virt/libvirt/connection.py: Check whether O_DIRECT
  is supported on the "FLAGS.instances_path" directory
  and use 'none' for cachemode if it is, 'writethrough'
  otherwise

Bug: 959637
Change-Id: I60cbff1c3ad8299fe2aa37099390f9235f6724d0
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Simply &amp; unify console handling for libvirt drivers"</title>
<updated>2012-03-12T17:27:40+00:00</updated>
<author>
<name>Jenkins</name>
<email>jenkins@review.openstack.org</email>
</author>
<published>2012-03-12T17:27:40+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=9b8275659b5de8c8291d64d48a11edd83a276837'/>
<id>9b8275659b5de8c8291d64d48a11edd83a276837</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use cache='none' for all disks</title>
<updated>2012-03-09T12:59:50+00:00</updated>
<author>
<name>Daniel P. Berrange</name>
<email>berrange@redhat.com</email>
</author>
<published>2012-03-09T11:01:35+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/nova.git/commit/?id=2d11e87d2332577170cb983d6f41441bc534cd7e'/>
<id>2d11e87d2332577170cb983d6f41441bc534cd7e</id>
<content type='text'>
The default QEMU disk cache mode has changed several times in
QEMU's history. This means OpenStack launched VMs have unpredictable
data consistency guarantees and performance characteristics. Using
cache=none bypasses the host page cache by using direct IO. This
ensures:

 - Consistent I/O performance for VMs
 - Avoids data loss on a host OS crash
 - Avoids data corruption of images during migration

Change-Id: I099dac55b8cfa1f0ec5d0e49d1d9ffbe4ae2560d
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The default QEMU disk cache mode has changed several times in
QEMU's history. This means OpenStack launched VMs have unpredictable
data consistency guarantees and performance characteristics. Using
cache=none bypasses the host page cache by using direct IO. This
ensures:

 - Consistent I/O performance for VMs
 - Avoids data loss on a host OS crash
 - Avoids data corruption of images during migration

Change-Id: I099dac55b8cfa1f0ec5d0e49d1d9ffbe4ae2560d
Signed-off-by: Daniel P. Berrange &lt;berrange@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
