qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH RFC 0/8] scsi-disk: Active/passive ALUA support
@ 2015-11-27 14:58 Hannes Reinecke
  2015-11-27 14:58 ` [Qemu-devel] [PATCH 1/8] scsi-disk: Add 'port_group' property Hannes Reinecke
                   ` (8 more replies)
  0 siblings, 9 replies; 16+ messages in thread
From: Hannes Reinecke @ 2015-11-27 14:58 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Johannes Thumshirn, Stefan Hajnoczi, Hannes Reinecke, qemu-devel,
	Alexander Graf

Hi all,

here's now an updated version to enable ALUA and simplified
active/passive multipath support for qemu.

This patchset relies on having _two_ block devices configured,
and two SCSI disks pointing to those block devices with the
_same_ 'wwn' property and unique 'port_group' properties.
I know, this is a bit of a nasty hack, but I hope to add
proper multipath support (with several SCSI devices pointing /
linking to the same block device) in the near future.

It also implements a 'alua_policy', which allows for simulating
an 'active/passive' multipath setup.

And for testing I've implemented a 'block_disconnect' HMP command,
which simulates a link failure for the attached devices.

I wouldn't object if someone declares this a gross hack, but with
it I can finally simulate real-life multipath failover and do
some functional multipath-tools testing withouth having to recurse
on using real hardware.

As usual, comments and reviews are welcome.

Hannes Reinecke (8):
  scsi-disk: Add 'port_group' property
  scsi-disk: Add 'alua_state' property
  scsi-disk: Implement 'REPORT TARGET PORT GROUPS'
  scsi-disk: Implement 'SET TARGET PORT GROUPS'
  scsi-disk: implement ALUA policy
  scsi-disk: Allow READ CAPACITY in standby
  scsi-disk: Implement 'alua_preferred' option
  block: Implement 'block_disconnect' HMP command

 block.c                        |   5 +
 block/block-backend.c          |   8 +
 blockdev.c                     |  18 ++
 hmp-commands.hx                |  14 +
 hmp.c                          |  10 +
 hmp.h                          |   1 +
 hw/scsi/megasas.c              |   4 +
 hw/scsi/scsi-bus.c             |  20 ++
 hw/scsi/scsi-disk.c            | 654 +++++++++++++++++++++++++++++++++++++++++
 hw/scsi/virtio-scsi.c          |   5 +
 include/block/block.h          |   1 +
 include/block/block_int.h      |   1 +
 include/block/scsi.h           |  18 ++
 include/hw/scsi/scsi.h         |   8 +
 include/sysemu/block-backend.h |   1 +
 qapi/block-core.json           |  21 ++
 qmp-commands.hx                |  26 ++
 17 files changed, 815 insertions(+)

-- 
1.8.4.5

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2015-12-15  6:49 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-27 14:58 [Qemu-devel] [PATCH RFC 0/8] scsi-disk: Active/passive ALUA support Hannes Reinecke
2015-11-27 14:58 ` [Qemu-devel] [PATCH 1/8] scsi-disk: Add 'port_group' property Hannes Reinecke
2015-11-27 14:59 ` [Qemu-devel] [PATCH 2/8] scsi-disk: Add 'alua_state' property Hannes Reinecke
2015-11-27 14:59 ` [Qemu-devel] [PATCH 3/8] scsi-disk: Implement 'REPORT TARGET PORT GROUPS' Hannes Reinecke
2015-11-27 14:59 ` [Qemu-devel] [PATCH 4/8] scsi-disk: Implement 'SET " Hannes Reinecke
2015-11-27 14:59 ` [Qemu-devel] [PATCH 5/8] scsi-disk: implement ALUA policy Hannes Reinecke
2015-11-27 14:59 ` [Qemu-devel] [PATCH 6/8] scsi-disk: Allow READ CAPACITY in standby Hannes Reinecke
2015-11-27 14:59 ` [Qemu-devel] [PATCH 7/8] scsi-disk: Implement 'alua_preferred' option Hannes Reinecke
2015-11-27 14:59 ` [Qemu-devel] [PATCH 8/8] block: Implement 'block_disconnect' HMP command Hannes Reinecke
2015-11-27 18:00   ` Eric Blake
2015-12-10  8:26 ` [Qemu-devel] [PATCH RFC 0/8] scsi-disk: Active/passive ALUA support Stefan Hajnoczi
2015-12-10  9:13   ` Hannes Reinecke
2015-12-14  7:24     ` Stefan Hajnoczi
2015-12-14  7:35       ` Hannes Reinecke
2015-12-15  3:02         ` Stefan Hajnoczi
2015-12-15  6:49           ` Hannes Reinecke

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).