<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 2019/3/21 18:09, Prasanna Kalever
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CANwsLLGoxPz6QudVRtsBHGiYgg2g6=mgZohGjUWu++5jDubDzw@mail.gmail.com">
      <div dir="ltr">
        <div dir="ltr">
          <div dir="ltr">
            <div class="gmail_default"><br>
            </div>
          </div>
          <br>
          <div class="gmail_quote">
            <div dir="ltr" class="gmail_attr">On Thu, Mar 21, 2019 at
              9:00 AM Xiubo Li &lt;<a href="mailto:xiubli@redhat.com"
                moz-do-not-send="true">xiubli@redhat.com</a>&gt; wrote:<br>
            </div>
            <blockquote class="gmail_quote">
              <div>
                <p class="gmail-m_-8427338770979236914part">All,</p>
                <p class="gmail-m_-8427338770979236914part">I am one of
                  the contributor for<span> </span><a
                    href="https://github.com/gluster/gluster-block"
                    rel="noopener" target="_blank"
                    moz-do-not-send="true">gluster-block</a>[1] project,
                  and also I contribute to linux kernel and<span> </span><a
                    href="https://github.com/open-iscsi" rel="noopener"
                    target="_blank" moz-do-not-send="true">open-iscsi</a>
                  project.[2]</p>
                <p class="gmail-m_-8427338770979236914part">NBD was
                  around for some time, but in recent time, linux
                  kernel’s Network Block Device (NBD) is enhanced and
                  made to work with more devices and also the option to
                  integrate with netlink is added. So, I tried to
                  provide a glusterfs client based NBD driver recently.
                  Please refer<span> </span><a
                    href="https://github.com/gluster/glusterfs/issues/633"
                    rel="noopener" target="_blank"
                    moz-do-not-send="true">github issue #633</a>[3], and
                  good news is I have a working code, with most basic
                  things @<span> </span><a
                    href="https://github.com/gluster/nbd-runner"
                    rel="noopener" target="_blank"
                    moz-do-not-send="true">nbd-runner project</a>[4].</p>
                <p class="gmail-m_-8427338770979236914part">While this
                  email is about announcing the project, and asking for
                  more collaboration, I would also like to discuss more
                  about the placement of the project itself. Currently
                  nbd-runner project is expected to be shared by our
                  friends at Ceph project too, to provide NBD driver for
                  Ceph. I have personally worked with some of them
                  closely while contributing to open-iSCSI project, and
                  we would like to take this project to great success.</p>
                <p class="gmail-m_-8427338770979236914part">Now few
                  questions:</p>
                <ol class="gmail-m_-8427338770979236914part">
                  <li>Can I continue to use<span> </span><a
                      href="http://github.com/gluster/nbd-runner"
                      rel="noopener" target="_blank"
                      moz-do-not-send="true">http://github.com/gluster/nbd-runner</a><span> </span>as
                    home for this project, even if its shared by other
                    filesystem projects?</li>
                </ol>
                <ul class="gmail-m_-8427338770979236914part">
                  <li>I personally am fine with this.</li>
                </ul>
                <ol start="2" class="gmail-m_-8427338770979236914part">
                  <li>Should there be a separate organization for this
                    repo?</li>
                </ol>
                <ul class="gmail-m_-8427338770979236914part">
                  <li>While it may make sense in future, for now, I am
                    not planning to start any new thing?</li>
                </ul>
                <p class="gmail-m_-8427338770979236914part">It would be
                  great if we have some consensus on this soon as
                  nbd-runner is a new repository. If there are no
                  concerns, I will continue to contribute to the
                  existing repository.</p>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>
              <div class="gmail_default"><span></span>Thanks Xiubo Li,
                for finally sending this email out. Since this email is
                out on gluster mailing list, I would like to take a
                stand from gluster community point of view *only* and
                share my views.</div>
              <div class="gmail_default"><br>
              </div>
              <div class="gmail_default">My honest answer is "If we want
                to maintain this within gluster org, then 80% of the
                effort is common/duplicate of what we did all these days
                with gluster-block",</div>
              <div class="gmail_default"><br>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <p>The great idea came from Mike Christie days ago and the
      nbd-runner project's framework is initially emulated from
      tcmu-runner. This is why I name this project as nbd-runner, which
      will work for all the other Distributed Storages, such as
      Gluster/Ceph/Azure, as discussed with Mike before. <br>
    </p>
    <p>nbd-runner(NBD proto) and tcmu-runner(iSCSI proto) are almost the
      same and both are working as lower IO(READ/WRITE/...) stuff, not
      the management layer like ceph-iscsi-gateway and gluster-block
      currently do.<br>
    </p>
    <p>Currently since I only implemented the Gluster handler and also
      using the RPC like glusterfs and gluster-block, most of the other
      code (about 70%) in nbd-runner are for the NBD proto and these are
      very different from tcmu-runner/glusterfs/gluster-block projects,
      and there are many new features in NBD module that not yet
      supported and then there will be more different in future.</p>
    <p>
      The framework coding has been done and the nbd-runner project is
      already stable and could already work well for me now.</p>
    <br>
    <blockquote type="cite"
cite="mid:CANwsLLGoxPz6QudVRtsBHGiYgg2g6=mgZohGjUWu++5jDubDzw@mail.gmail.com">
      <div dir="ltr">
        <div dir="ltr">
          <div class="gmail_quote">
            <div>
              <div class="gmail_default">like:</div>
              <div class="gmail_default">* rpc/socket code</div>
              <div class="gmail_default">* cli/daemon parser/helper
                logics</div>
              <div class="gmail_default">* gfapi util functions</div>
              <div class="gmail_default">* logger framework</div>
              <div class="gmail_default">* inotify &amp; dyn-config
                threads</div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <p>Yeah, these features were initially from tcmu-runner project,
      Mike and I coded two years ago. Currently nbd-runner also has
      copied them from tcmu-runner.<br>
    </p>
    <p>Very appreciated for you great ideas here Prasanna and hope
      nbd-runner could be more generically and successfully used in
      future.</p>
    <p>BRs</p>
    <p>Xiubo Li<br>
    </p>
    <p><br>
    </p>
    <blockquote type="cite"
cite="mid:CANwsLLGoxPz6QudVRtsBHGiYgg2g6=mgZohGjUWu++5jDubDzw@mail.gmail.com">
      <div dir="ltr">
        <div dir="ltr">
          <div class="gmail_quote">
            <div>
              <div class="gmail_default">* configure/Makefile/specfiles</div>
              <div class="gmail_default">* docsAboutGluster and etc ..</div>
              <div class="gmail_default"><br>
              </div>
              <div class="gmail_default">The repository gluster-block is
                actually a home for all the block related stuff within
                gluster and its designed to accommodate alike
                functionalities, if I was you I would have simply copied
                nbd-runner.c into <a
                  href="https://github.com/gluster/gluster-block/tree/master/daemon/"
                  moz-do-not-send="true">https://github.com/gluster/gluster-block/tree/master/daemon/</a>
                just like ceph plays it here <a
href="https://github.com/ceph/ceph/blob/master/src/tools/rbd_nbd/rbd-nbd.cc"
                  moz-do-not-send="true">https://github.com/ceph/ceph/blob/master/src/tools/rbd_nbd/rbd-nbd.cc</a>
                and be done.</div>
              <div class="gmail_default"><br>
              </div>
              <div class="gmail_default">Advantages of keeping nbd
                client within gluster-block:</div>
              <div class="gmail_default">-&gt; No worry about
                maintenance code burdon</div>
              <div class="gmail_default">-&gt; No worry about monitoring
                a new component</div>
              <div class="gmail_default">-&gt; shipping packages to
                fedora/centos/rhel is handled</div>
              <div class="gmail_default">-&gt; This helps improve and
                stabilize the current gluster-block framework</div>
              <div class="gmail_default">-&gt; We can build a common CI</div>
              <div class="gmail_default">-&gt; We can use reuse common
                test framework and etc ..</div>
              <div class="gmail_default"><br>
              </div>
              <div class="gmail_default">If you have an impression that
                gluster-block is for management, then I would really
                want to correct you at this point.</div>
              <div class="gmail_default"><br>
              </div>
              <div class="gmail_default">Some of my near future plans
                for gluster-block:</div>
              <div class="gmail_default">* Allow exporting blocks with
                FUSE access via fileIO backstore to improve large-file
                workloads, draft:  <a
                  href="https://github.com/gluster/gluster-block/pull/58"
                  moz-do-not-send="true">https://github.com/gluster/gluster-block/pull/58</a></div>
              <div class="gmail_default">* Accommodate kernel loopback
                handling for local only applications</div>
              <div class="gmail_default">* The same way we can
                accommodate nbd app/client, and IMHO this effort
                shouldn't take 1 or 2 days to get it merged with in
                gluster-block and ready for a go release.</div>
              <div class="gmail_default"><br>
              </div>
              <div class="gmail_default"><br>
              </div>
              <div class="gmail_default">Hope that clarifies it.</div>
              <div class="gmail_default"><br>
              </div>
              <div class="gmail_default"><br>
              </div>
              <div class="gmail_default">Best Regards,</div>
              <div class="gmail_default">--</div>
              <div class="gmail_default">Prasanna<span></span></div>
            </div>
            <div> </div>
            <blockquote class="gmail_quote">
              <div>
                <p class="gmail-m_-8427338770979236914part">Regards,<br>
                  Xiubo Li (@lxbsz)</p>
                <p class="gmail-m_-8427338770979236914part">[1] -<span> </span><a
                    href="https://github.com/gluster/gluster-block"
                    rel="noopener" target="_blank"
                    moz-do-not-send="true">https://github.com/gluster/gluster-block</a><br>
                  [2] -<span> </span><a
                    href="https://github.com/open-iscsi" rel="noopener"
                    target="_blank" moz-do-not-send="true">https://github.com/open-iscsi</a><br>
                  [3] -<span> </span><a
                    href="https://github.com/gluster/glusterfs/issues/633"
                    rel="noopener" target="_blank"
                    moz-do-not-send="true">https://github.com/gluster/glusterfs/issues/633</a><br>
                  [4] -<span> </span><a
                    href="https://github.com/gluster/nbd-runner"
                    rel="noopener" target="_blank"
                    moz-do-not-send="true">https://github.com/gluster/nbd-runner</a></p>
              </div>
              _______________________________________________<br>
              Gluster-devel mailing list<br>
              <a href="mailto:Gluster-devel@gluster.org" target="_blank"
                moz-do-not-send="true">Gluster-devel@gluster.org</a><br>
              <a
                href="https://lists.gluster.org/mailman/listinfo/gluster-devel"
                rel="noreferrer" target="_blank" moz-do-not-send="true">https://lists.gluster.org/mailman/listinfo/gluster-devel</a></blockquote>
          </div>
        </div>
      </div>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>