<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Aug 14, 2013 at 12:25 AM, Deepak C Shetty <span dir="ltr">&lt;<a href="mailto:deepakcs@linux.vnet.ibm.com" target="_blank">deepakcs@linux.vnet.ibm.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000"><div><div class="h5">
    <div>On 07/29/2013 12:18 AM, Anand Avati
      wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr"><br>
        <div class="gmail_extra"><br>
          <br>
          <div class="gmail_quote">On Sun, Jul 28, 2013 at 11:18 AM,
            Vijay Bellur <span dir="ltr">&lt;<a href="mailto:vbellur@redhat.com" target="_blank">vbellur@redhat.com</a>&gt;</span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi All,<br>
              <br>
              There was a recent thread on fedora-devel about bloated
              glusterfs dependency for qemu:<br>
              <br>
              <a href="https://lists.fedoraproject.org/pipermail/devel/2013-July/186484.html" target="_blank">https://lists.fedoraproject.org/pipermail/devel/2013-July/186484.html</a><br>
              <br>
              As of today, we have the following packages and respective
              primary constituents:<br>
              <br>
               1. glusterfs                 - contains all the common
              xlators, libglusterfs, glusterfsd binary &amp; glusterfs
              symlink to glusterfsd.<br>
               2. glusterfs-rdma            - rdma shared library<br>
               3. glusterfs-geo-replication - geo-rep related objects<br>
               4. glusterfs-fuse            - fuse xlator<br>
               5. glusterfs-server          - server side xlators,
              config files<br>
               6. glusterfs-api             - libgfapi shared library<br>
               7. glusterfs-resource-agents - OCF resource agents<br>
               8. glusterfs-devel           - Header files for
              libglusterfs<br>
               9. glusterfs-api-devel       - Header files for gfapi<br>
              <br>
              As far as qemu is concerned, qemu depends on glusterfs-api
              which in turn is dependent on glusterfs. Much of the
              apparent bloat is coming from glusterfs package and one
              proposal for reducing the dependency footprint of
              consumers of libgfapi could be the following:<br>
              <br>
              a) Move glusterfsd and glusterfs symlink from &#39;glusterfs&#39;
              to &#39;glusterfs-server&#39;<br>
              b) Package glusterfsd binary and glusterfs symlink in
              &#39;glusterfs-fuse&#39;<br>
            </blockquote>
            <div><br>
            </div>
            <div><br>
            </div>
            <div>Does that mean glusterfsd is in glusterfs-server or
              glusterfs-fuse? It is probably sufficient to leave
              glusterfs-fuse just have fuse.so and <a href="http://mount.glusterfs.in" target="_blank">mount.glusterfs.in</a></div>
            <div><br>
            </div>
            <div>Another model can be:</div>
            <div><br>
            </div>
            <div>0. glusterfs-libs.rpm - libglusterfs.so libgfrpc.so
              libgfxdr.so</div>
            <div>1. glusterfs (depends on glusterfs-libs) - glusterfsd
              binary, glusterfs symlink, all common xlators</div>
            <div>2. glusterfs-rdma (depends on glusterfs) - rdma shared
              library</div>
            <div>3. glusterfs-geo-replication (depends on glusterfs) -
              geo-rep related objects</div>
            <div>4. glusterfs-fuse (depends on glusterfs) - fuse xlator,
              mount.glusterfs</div>
            <div>5. glusterfs-server (depends on glusterfs) - server
              side xlators, config files</div>
            <div>6. glusterfs-api (depends on glusterfs-libs) -
              libgfapi.so and api.so</div>
            <div>7. glusterfs-resource-agents (depends on glusterfs)</div>
            <div>8. glusterfs-devel (depends on glusterfs-libs) - header
              files for libglusterfs</div>
            <div>9. glusterfs-api-devel (depends on glusterfs-api) -
              header files for gfapi</div>
            <div><br>
            </div>
            <div>This way qemu will only pick up libgfapi.so
              libglusterfs.so libgfrpc.so and libgfxdr.so (the bare
              minimum to &quot;just execute&quot;) for the binary to load at run
              time. Those who want to store vm images natively on
              gluster must also do a &#39;yum install glusterfs&#39; to make
              gfapi &#39;useful&#39;. This way Fedora qemu users who do not plan
              to use gluster will not get any of the xlator cruft.</div>
          </div>
        </div>
      </div>
    </blockquote>
    <br></div></div>
    Looks like even after the re-packaging.. the original problem is
    still there !<br>
    Post re-strucuring ( i am on F19 with updates-testing repo enabled)
    <br>
    <br>
    gluserfs-api has dep on -libs and glusterfs<br>
    So when User install glusterfs-api, it pulls in -libs and glusterfs<br>
    <br>
    This is correct, since w/o glusterfs rpm we won&#39;t have a working
    qemu gluster backend.</div></blockquote><div><br></div><div>Actually this *wasnt* what we discussed. glusterfs-api was supposed to depend on glusterfs-libs *ONLY*. This is because it has a linking (hard) relationship with glusterfs-libs, and glusterfs.rpm is only a run-time dependency - everything here is dlopen()ed.</div>
<div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000"> Just allowing qemu to execute by way of
    installing-libs and -api only won&#39;t help, since once qemu executes
    and someone tries qemu w/ gluster backend.. things will fail unless
    User has installed glusterfs rpm (which has all the client xlators)<br></div></blockquote><div><br></div><div>I think this was exactly what we concluded. That a user would need to install glusterfs rpm if they wanted to store VM images on gluster (independent of the fact that qemu was linked with glusterfs-api). Do you see a problem with this?</div>
<div><br></div><div>Avati</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    So today ...<br>
    yum install glusterfs-api brings in glusterfs-libs and glusterfs<br>
    which sounds correct to get a working system with qemu gluster
    backend.<br>
    <br>
    Later...<br>
    yum remove glusterfs <br>
    removes glusterfs-api which has a reverse dep on qemu, hence libvirt
    hence the entire virt stack goes down<br>
    <br>
    which was the original problem reported in the fedora devel list @<br>
<a href="https://lists.fedoraproject.org/pipermail/devel/2013-July/186484.html" target="_blank">https://lists.fedoraproject.org/pipermail/devel/2013-July/186484.html</a><br>
    <br>
    and that unfortunately is still there, even after -libs was created
    as a separate rpm as part of this effort!<br>
    <br>
    thanx,<br>
    deepak<br>
    <br>
  </div>

<br>_______________________________________________<br>
Gluster-devel mailing list<br>
<a href="mailto:Gluster-devel@nongnu.org">Gluster-devel@nongnu.org</a><br>
<a href="https://lists.nongnu.org/mailman/listinfo/gluster-devel" target="_blank">https://lists.nongnu.org/mailman/listinfo/gluster-devel</a><br>
<br></blockquote></div><br></div></div>