* 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