2012/8/2 Ata Bohra <ata.husain(a)hotmail.com>:
Hi All,
I just want to go over the design that I am working on to incorporate iSCSI
support to libvirt ESX storage driver. The highlights are:
Current Implementation
At present esx_storage_driver supports only VMFS type datastore and does not
provide much leeway to enhance or add other supported storage pools such as
iSCSI.
Proposal
My proposal is:
1. Split the current code such as esx_storage_driver becomes more like a
facade; this driver will use "backend" drivers to perform the request task
(such as: esx_storage_backend_iscsi and esx_storage_backend_vmfs)
2. Based on the pool type (lookup can determine storage pool type), the base
driver then invoke the appropriate backend driver routine to get the job
done.
3. Backend driver shall implement same routines exposed by
esx_storage_driver if needed, but the implementation will be pertinent to
its specific type.
I took a quick look at the vSphere API regarding iSCSI but I'm not
sure how it's supposed to work. Do you have a better understanding
about this. I'd like to discuss the conceptual part first. How does
storage pool and volume listing/creation/destruction work with iSCSI?
Does it differ from the current code at all? If it differs is it that
different that we really need this radical split?
--
Matthias Bolte
http://photron.blogspot.com