<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 01/11/2014 01:34 AM, Rodrigo
      Trujillo wrote:<br>
    </div>
    <blockquote
cite="mid:1389375282-6677-1-git-send-email-rodrigo.trujillo@linux.vnet.ibm.com"
      type="cite">
      <pre wrap="">NOTICE: THIS FEATURE IS STILL UNDER DISCUSSION/AGREEMENT/DEVELOPMENT

This patch set implements the basic functions in order to create a SCSI
storagepool based in fibre channel protocol.

--- What is implemented? ---
* backend API 
   It is possible to create a pool with curl POST request like:
   curl -X POST -u &lt;USER&gt;  -H 'Content-type: application/json' \
   -H 'Accept: application/json' <a class="moz-txt-link-freetext" href="http://localhost:8000/storagepools">http://localhost:8000/storagepools</a> \
    --data '{ \
        "name": "testFC", \
        "source": { "adapter_type": "scsi_host", \
                    "adapter_name": "scsi_hostX", \
                    "wwnn":"112233789",  \
                    "wwpn":"44332211" }, \
        "path": "/dev/disk/by-id", \
        "type": "scsi" }'

* json schema updated

* created a function to test the host libvirt version
   SCSI FC pool and volumes have theirself configuration only after
   libvirt version 1.0.5. If lesser, I must use older configuration
   tags

* updates the VM guest template with proper disk xml
   Create volumes in a SCSI pool is not supported by libvirt, because
   volumes are the LUNS preconfigured and available in the SAN. Disk
   will have the biggest LUN found assigned.</pre>
    </blockquote>
    You could use 'volume' type of disk like this (since 1.0.5)<span
      style="color: rgb(60, 133, 124); font-family: Verdana, Arial,
      Helvetica, sans-serif; font-size: 13.142857551574707px;
      font-style: italic; font-variant: normal; font-weight: bold;
      letter-spacing: normal; line-height: normal; orphans: auto;
      text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      255); display: inline !important; float: none;"></span>
    <meta http-equiv="content-type" content="text/html;
      charset=ISO-8859-1">
    <pre xml:space="preserve" style="border: 1px solid rgb(153, 153, 153); background-color: rgb(238, 238, 238); color: rgb(0, 0, 0); padding: 1em; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-position: initial initial; background-repeat: initial initial;">&lt;disk type='volume' device='disk'&gt;
      &lt;driver name='qemu' type='raw'/&gt;
      &lt;source pool='blk-pool0' volume='blk-pool0-vol0'/&gt;
      &lt;target dev='hda' bus='ide'/&gt;
    &lt;/disk&gt;</pre>
    <blockquote
cite="mid:1389375282-6677-1-git-send-email-rodrigo.trujillo@linux.vnet.ibm.com"
      type="cite">
      <pre wrap="">

--- What does need to be discussed? Ideas? ---
1) Backend expects right information from UI, so UI would have to ask
   and send 'adapter_name', 'wwnn' and 'wwpn' (other fields can be fi
   xed). However, the UI coud show the FC_Hosts available and let user
   select which one he wants. This would require to implement more ba
   ck-end functions to gather FC_host info, automatically (name, wwnn,
   wwpn).
   So, at this moment, just create an UI with input fields or facili
   tate the users life ?  </pre>
    </blockquote>
    Yes, it's better to collect all fc host info and provide a list of
    (wwnn, wwpn) to UI<br>
    The host name is not very useful.<br>
    <blockquote
cite="mid:1389375282-6677-1-git-send-email-rodrigo.trujillo@linux.vnet.ibm.com"
      type="cite">
      <pre wrap="">

2) Currently the user have no choice on with LUN to assign to a guest.
   LUN is selected automatically and if not LUN is available, guest
   will not have any disk. In order to improve this, the guest creation
   fase could have one more step, if the pool in the template in SCSI
   type. If SCSI, user could choose which LUN he wants to assign to VM.
   Notice that the disk size in the template have been, and will be, ig
   nored.
   What do you guys think about this approach ?
</pre>
    </blockquote>
    <span style="color: rgb(60, 133, 124); font-family: Verdana, Arial,
      Helvetica, sans-serif; font-size: 13.142857551574707px;
      font-style: italic; font-variant: normal; font-weight: bold;
      letter-spacing: normal; line-height: normal; orphans: auto;
      text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      255); display: inline !important; float: none;"></span>You could
    use 'volume' type of disk.&nbsp;&nbsp; More importantly, we need allow
    creating VM<br>
    from the scsi storage pool and iscsi storage poll.&nbsp; Otherwise, it's
    meaningless to <br>
    add the storage pool to kimchi.&nbsp; At least: <br>
    we should allow creating vm with existing volume (all the luns
    exported by scsi target are predefined)<br>
    create vm with a raw image.&nbsp; We can't use qcow2 format on block
    device because we don't have monitoring facility and can't extend
    the disk size on demand as LVM<br>
    <br>
    <br>
    <blockquote
cite="mid:1389375282-6677-1-git-send-email-rodrigo.trujillo@linux.vnet.ibm.com"
      type="cite">
      <pre wrap="">
3) LUNs refresh: Once the storage admin creates more LUNs, the host admin
   needs to perform some commands in order to kernel 'see' and map new
   devices. I am implementing this backend functionality. A refresh bu
   tton will be necessary in the UI, where could it be placed?
     - In the storagepool creation window ? When select SCSI type
     - In the window to select the LUN, when creating new guest (if 
       approved this extra step)
     - In the storagepool tab, in the pool section, if its a SCSI type
     - Also, when the user expands a SCSI pool section, which will show
       the volumes (LUNs), this function can be triggered.

4) More ideas/concerns/suggestions ?



Rodrigo Trujillo (3):
  Storagepool: SCSI/Fibre Channel backend implementation
  Storagepools: Function to check libvirt version
  Storagepools: Assign SCSI fibre channel LUN as disk to a new guest

 docs/API.md              |  6 ++++
 src/kimchi/API.json      | 18 ++++++++++-
 src/kimchi/model.py      | 79 +++++++++++++++++++++++++++++++++++++++++++++---
 src/kimchi/utils.py      | 14 +++++++++
 src/kimchi/vmtemplate.py | 40 +++++++++++++++++++++++-
 5 files changed, 151 insertions(+), 6 deletions(-)

</pre>
    </blockquote>
    <br>
  </body>
</html>