public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* scsi layer interfaces for hypervisors
@ 2008-03-20  5:57 Siva Kodiganti
  2008-03-20 14:28 ` James Smart
  0 siblings, 1 reply; 3+ messages in thread
From: Siva Kodiganti @ 2008-03-20  5:57 UTC (permalink / raw)
  To: linux-scsi; +Cc: siva

Hello Linux community,

 A Project page for Virt_HBA is created on source forge.
 https://sourceforge.net/projects/npivhba

 Project Virt_HBA is targeted for a providing patch for
 Linux kernels to provide set of scsi layer interfaces to
 aid Hypervisors in Linux to export Scsi Hosts to Guest
 VMs.  Using these interfaces  Hypervisors could export
 Scsi_Host of a virtual hba emulated by HBA hardware to
 Guest VMs.  FC, and FCOE (may) have support for Nport
 Virtualization, a FW/HW mechanism to emulate multiple
 hbas(nports) using a single HBA HW.  Qlogic, and
 Emulex have support for FC NPIV.  With this mechanism,
 Hypervisor would be capable of mapping appropriate
 Guest VM's shost queuecommand to underlying NPIV host's
 queue_command, and other hostt relevant entry points(one
 to one mapping).  This could also provide a means of
 security for luns exported through NPIV host to be
 visible for appropriate Guest OS, hiding from HostOS.

 Scsi Layer interfaces:

 Hypervisor's registration with scsi layer

 scsi_register_hypertt(xn_hostt, xsize);
 xsize is size of private structure maintained by
 hypervisor per npiv host.

 struct scsi_hyper_hostt xn_hostt {
         .hyp_module             = "xn",
         .hyp_psize              = size of( xhost);
         .hyp_alloc_vhost        = xn_alloc_vhost,
         .hyp_add_vhost          = xn_add_vhost,
         .hyp_remove_vhost       = xn_remove_vhost,
         .hyp_trans_func         = xn_trans_vhost,
         .hyp_async_notifier     = xn_async_ntfr,
         .hyp_reboot_notifier    = xn_reboot_ntfr,
 };

 Scsi_Host {

         /* flag for FC or FCOE hw or fw hba virtulization */
         unsigned virt_host:1;

 }

 scsi_alloc_host(), scsi_add_host(), and scsi_remove_host()
 interfaces notify registered hypervisor about FC/FCOE
 virtual Scsi_Host.  scsi_alloc_host() would allocate private
 data area per scsi_host for registered hypervisors, which
 export to Guest VMs.

 Hypervisors uses these virtual hosts' lld driver hostt entry
 points to queue,abort,etc scsi commands to HBA driver directly
 bypassing Host BlK, SD layers.

 Thanks,
 Siva

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

* Re: scsi layer interfaces for hypervisors
  2008-03-20  5:57 scsi layer interfaces for hypervisors Siva Kodiganti
@ 2008-03-20 14:28 ` James Smart
  2008-03-20 17:38   ` Siva Kodiganti
  0 siblings, 1 reply; 3+ messages in thread
From: James Smart @ 2008-03-20 14:28 UTC (permalink / raw)
  To: Siva Kodiganti; +Cc: linux-scsi, siva

Siva,

I'm curious to hear how you position this against the pvscsi effort
going on in the Xen world.

-- james s

Siva Kodiganti wrote:
> Hello Linux community,
> 
>  A Project page for Virt_HBA is created on source forge.
>  https://sourceforge.net/projects/npivhba
> 
>  Project Virt_HBA is targeted for a providing patch for
>  Linux kernels to provide set of scsi layer interfaces to
>  aid Hypervisors in Linux to export Scsi Hosts to Guest
>  VMs.  Using these interfaces  Hypervisors could export
>  Scsi_Host of a virtual hba emulated by HBA hardware to
>  Guest VMs.  FC, and FCOE (may) have support for Nport
>  Virtualization, a FW/HW mechanism to emulate multiple
>  hbas(nports) using a single HBA HW.  Qlogic, and
>  Emulex have support for FC NPIV.  With this mechanism,
>  Hypervisor would be capable of mapping appropriate
>  Guest VM's shost queuecommand to underlying NPIV host's
>  queue_command, and other hostt relevant entry points(one
>  to one mapping).  This could also provide a means of
>  security for luns exported through NPIV host to be
>  visible for appropriate Guest OS, hiding from HostOS.
> 
>  Scsi Layer interfaces:
> 
>  Hypervisor's registration with scsi layer
> 
>  scsi_register_hypertt(xn_hostt, xsize);
>  xsize is size of private structure maintained by
>  hypervisor per npiv host.
> 
>  struct scsi_hyper_hostt xn_hostt {
>          .hyp_module             = "xn",
>          .hyp_psize              = size of( xhost);
>          .hyp_alloc_vhost        = xn_alloc_vhost,
>          .hyp_add_vhost          = xn_add_vhost,
>          .hyp_remove_vhost       = xn_remove_vhost,
>          .hyp_trans_func         = xn_trans_vhost,
>          .hyp_async_notifier     = xn_async_ntfr,
>          .hyp_reboot_notifier    = xn_reboot_ntfr,
>  };
> 
>  Scsi_Host {
> 
>          /* flag for FC or FCOE hw or fw hba virtulization */
>          unsigned virt_host:1;
> 
>  }
> 
>  scsi_alloc_host(), scsi_add_host(), and scsi_remove_host()
>  interfaces notify registered hypervisor about FC/FCOE
>  virtual Scsi_Host.  scsi_alloc_host() would allocate private
>  data area per scsi_host for registered hypervisors, which
>  export to Guest VMs.
> 
>  Hypervisors uses these virtual hosts' lld driver hostt entry
>  points to queue,abort,etc scsi commands to HBA driver directly
>  bypassing Host BlK, SD layers.
> 
>  Thanks,
>  Siva
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

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

* Re: scsi layer interfaces for hypervisors
  2008-03-20 14:28 ` James Smart
@ 2008-03-20 17:38   ` Siva Kodiganti
  0 siblings, 0 replies; 3+ messages in thread
From: Siva Kodiganti @ 2008-03-20 17:38 UTC (permalink / raw)
  To: James.Smart; +Cc: linux-scsi, siva

James,

VirtHBA project isn't aimed/positioned against the pvscsi effort.
VirtHBA provides hypervisor independant interfaces at SCSI
mid-layer(by some means- patch for released kernels or upstream if
embraced), which hypervisors register and get notified appropriately.
In addition, it also provides scsi emulation(target) capability at low
layers.

Thanks,
--Siva


On Thu, Mar 20, 2008 at 7:28 AM, James Smart <James.Smart@emulex.com> wrote:
> Siva,
>
>  I'm curious to hear how you position this against the pvscsi effort
>  going on in the Xen world.
>
>  -- james s
>
>
>
>  Siva Kodiganti wrote:
>  > Hello Linux community,
>  >
>  >  A Project page for Virt_HBA is created on source forge.
>  >  https://sourceforge.net/projects/npivhba
>  >
>  >  Project Virt_HBA is targeted for a providing patch for
>  >  Linux kernels to provide set of scsi layer interfaces to
>  >  aid Hypervisors in Linux to export Scsi Hosts to Guest
>  >  VMs.  Using these interfaces  Hypervisors could export
>  >  Scsi_Host of a virtual hba emulated by HBA hardware to
>  >  Guest VMs.  FC, and FCOE (may) have support for Nport
>  >  Virtualization, a FW/HW mechanism to emulate multiple
>  >  hbas(nports) using a single HBA HW.  Qlogic, and
>  >  Emulex have support for FC NPIV.  With this mechanism,
>  >  Hypervisor would be capable of mapping appropriate
>  >  Guest VM's shost queuecommand to underlying NPIV host's
>  >  queue_command, and other hostt relevant entry points(one
>  >  to one mapping).  This could also provide a means of
>  >  security for luns exported through NPIV host to be
>  >  visible for appropriate Guest OS, hiding from HostOS.
>  >
>  >  Scsi Layer interfaces:
>  >
>  >  Hypervisor's registration with scsi layer
>  >
>  >  scsi_register_hypertt(xn_hostt, xsize);
>  >  xsize is size of private structure maintained by
>  >  hypervisor per npiv host.
>  >
>  >  struct scsi_hyper_hostt xn_hostt {
>  >          .hyp_module             = "xn",
>  >          .hyp_psize              = size of( xhost);
>  >          .hyp_alloc_vhost        = xn_alloc_vhost,
>  >          .hyp_add_vhost          = xn_add_vhost,
>  >          .hyp_remove_vhost       = xn_remove_vhost,
>  >          .hyp_trans_func         = xn_trans_vhost,
>  >          .hyp_async_notifier     = xn_async_ntfr,
>  >          .hyp_reboot_notifier    = xn_reboot_ntfr,
>  >  };
>  >
>  >  Scsi_Host {
>  >
>  >          /* flag for FC or FCOE hw or fw hba virtulization */
>  >          unsigned virt_host:1;
>  >
>  >  }
>  >
>  >  scsi_alloc_host(), scsi_add_host(), and scsi_remove_host()
>  >  interfaces notify registered hypervisor about FC/FCOE
>  >  virtual Scsi_Host.  scsi_alloc_host() would allocate private
>  >  data area per scsi_host for registered hypervisors, which
>  >  export to Guest VMs.
>  >
>  >  Hypervisors uses these virtual hosts' lld driver hostt entry
>  >  points to queue,abort,etc scsi commands to HBA driver directly
>  >  bypassing Host BlK, SD layers.
>  >
>  >  Thanks,
>  >  Siva
>  > --
>  > To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
>  > the body of a message to majordomo@vger.kernel.org
>  > More majordomo info at  http://vger.kernel.org/majordomo-info.html
>  >
>

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

end of thread, other threads:[~2008-03-20 17:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-20  5:57 scsi layer interfaces for hypervisors Siva Kodiganti
2008-03-20 14:28 ` James Smart
2008-03-20 17:38   ` Siva Kodiganti

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox