#
98a7a38f |
| 21-Feb-2014 |
Benoît Canet <benoit@irqsave.net> |
quorum: Implement recursive .bdrv_recurse_is_first_non_filter in quorum.
This is used to activate quorum snapshot.
Signed-off-by: Benoit Canet <benoit@irqsave.net> Reviewed-by: Max Reitz <mreitz@re
quorum: Implement recursive .bdrv_recurse_is_first_non_filter in quorum.
This is used to activate quorum snapshot.
Signed-off-by: Benoit Canet <benoit@irqsave.net> Reviewed-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
#
1c508d17 |
| 21-Feb-2014 |
Benoît Canet <benoit@irqsave.net> |
quorum: Add quorum_co_flush().
Makes a vote to select error if any.
Signed-off-by: Benoit Canet <benoit@irqsave.net> Reviewed-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redh
quorum: Add quorum_co_flush().
Makes a vote to select error if any.
Signed-off-by: Benoit Canet <benoit@irqsave.net> Reviewed-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
#
a28e4c40 |
| 21-Feb-2014 |
Benoît Canet <benoit@irqsave.net> |
quorum: Add quorum_invalidate_cache().
We really want that live migration works with quorum so implement quorum_invalidate_cache().
Signed-off-by: Benoit Canet <benoit@irqsave.net> Reviewed-by: Max
quorum: Add quorum_invalidate_cache().
We really want that live migration works with quorum so implement quorum_invalidate_cache().
Signed-off-by: Benoit Canet <benoit@irqsave.net> Reviewed-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
#
d55dee20 |
| 21-Feb-2014 |
Benoît Canet <benoit@irqsave.net> |
quorum: Add quorum_getlength().
Check that every bs file returns the same length. Otherwise, return -EIO to disable the quorum and avoid length discrepancy.
Signed-off-by: Benoit Canet <benoit@irqs
quorum: Add quorum_getlength().
Check that every bs file returns the same length. Otherwise, return -EIO to disable the quorum and avoid length discrepancy.
Signed-off-by: Benoit Canet <benoit@irqsave.net> Reviewed-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
#
95c6bff3 |
| 21-Feb-2014 |
Benoît Canet <benoit@irqsave.net> |
quorum: Add quorum mechanism.
This patchset enables the core of the quorum mechanism. The num_children reads are compared to get the majority version and if this version exists more than threshold t
quorum: Add quorum mechanism.
This patchset enables the core of the quorum mechanism. The num_children reads are compared to get the majority version and if this version exists more than threshold times the guest won't see the error at all.
If a block is corrupted or if an error occurs during an IO or if the quorum cannot be established QMP events are used to report to the management.
Use gnutls's SHA-256 to compare versions.
--enable-quorum must be used to enable the feature.
Signed-off-by: Benoit Canet <benoit@irqsave.net> Reviewed-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
#
7db6982a |
| 21-Feb-2014 |
Benoît Canet <benoit@irqsave.net> |
quorum: Add quorum_aio_readv.
Add code to do num_children reads in parallel and cleanup the structures afterwards.
Signed-off-by: Benoit Canet <benoit@irqsave.net> Reviewed-by: Max Reitz <mreitz@re
quorum: Add quorum_aio_readv.
Add code to do num_children reads in parallel and cleanup the structures afterwards.
Signed-off-by: Benoit Canet <benoit@irqsave.net> Reviewed-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
#
13e7956e |
| 21-Feb-2014 |
Benoît Canet <benoit@irqsave.net> |
quorum: Add quorum_aio_writev and its dependencies.
Writes are mirrored num_children times on num_children devices.
Signed-off-by: Benoit Canet <benoit@irqsave.net> Reviewed-by: Max Reitz <mreitz@r
quorum: Add quorum_aio_writev and its dependencies.
Writes are mirrored num_children times on num_children devices.
Signed-off-by: Benoit Canet <benoit@irqsave.net> Reviewed-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
#
cadebd7a |
| 21-Feb-2014 |
Benoît Canet <benoit@irqsave.net> |
quorum: Create BDRVQuorumState and BlkDriver and do init.
Create the structure holding the quorum settings and write the minimal block driver instanciation boilerplate.
Signed-off-by: Benoit Canet
quorum: Create BDRVQuorumState and BlkDriver and do init.
Create the structure holding the quorum settings and write the minimal block driver instanciation boilerplate.
Signed-off-by: Benoit Canet <benoit@irqsave.net> Reviewed-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|
#
27cec15e |
| 21-Feb-2014 |
Benoît Canet <benoit@irqsave.net> |
quorum: Create quorum.c, add QuorumChildRequest and QuorumAIOCB.
Quorum is a block filter mirroring writes to num_children children. For reads quorum reads each children and does a vote. If more tha
quorum: Create quorum.c, add QuorumChildRequest and QuorumAIOCB.
Quorum is a block filter mirroring writes to num_children children. For reads quorum reads each children and does a vote. If more than vote_threshold versions are identical the quorum is reached and this winning version is returned to the guest. So quorum prevents bit corruption. For high availability purpose minority errors are reported via QMP but the guest does not see them.
This patch creates the driver C source file and introduces the structures that will be used in asynchronous reads and writes.
Signed-off-by: Benoit Canet <benoit@irqsave.net> Reviewed-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
show more ...
|