<html><body><div style="font-family: times new roman, new york, times, serif; font-size: 14pt; color: #000000"><div>Avati,<br></div><div><br></div><div>Per our conf call yesterday, i would like to start a discussion on what the future architectural guiding principles of Gluster should be. The motivation for laying this foundation is to provide a framework for tactical short term feature/functions to map to and provide a vision for what we want Gluster to be when it grows up. Having a clear articulated vision can and does focus design elements and also provides for contextual framework discussions. My research into providing such a framework uncovered some earlier discussions around this topic. They have been paraphrased as follows:</div><div><br></div><div>1 RHS BU 10 year objective=<br>&nbsp; &nbsp;Do to storage what RH did to operating systems with RHEL<br>2 RHEL recipe=<br>&nbsp; &nbsp;Disrupt and transform the market&nbsp;by driving volume economics&nbsp;through open source community innovation<br>3 RHS BU recipe =<br>&nbsp; &nbsp;Drive disruptive storage technologies. Software defined data center (SDDC) drives the need for&nbsp;Open software defined storage (OSDS) that runs on&nbsp;converged commodity servers (storage, compute, network)&nbsp;with abstracted management outside the storage system (like openstack)&nbsp;Into specific storage market segments where the disruptive tech has competitive</div><div><br></div><div>Although this does provide a discussion framework, it does not provide a path or set of principles for achievement of the goals. The principles for discussion, might include topics as follows, in no particular order:</div><div><br></div><div><strong>Architectural Guiding Principles</strong></div><div><br></div><div>1. <strong>Reliability</strong> - storage must be perceived as being reliable. a bit stored should be able to be retrieved.&nbsp;</div><div>&nbsp; &nbsp; Sub topics might include:</div><div>&nbsp; &nbsp; &nbsp; &nbsp; How should we gracefully recover from errors?</div><div>&nbsp; &nbsp; &nbsp; &nbsp; How should we do system and cluster cleanup and maintenance?</div><div>&nbsp; &nbsp; &nbsp; &nbsp; What functions should have preventive maintenance features?&nbsp;</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; How do we provide reporting, monitoring and analysis?&nbsp;</div><div><br></div><div>2. <strong>Availability</strong> - storage and ultimately workloads/applications must be perceived as be highly available</div><div>&nbsp; &nbsp; Sub topics might include:&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; What is our storage HA strategy intra and inter DC?</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; What is our storage fail-over-back strategy and how does this interact with applications and virtualization?</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; What is our field measured cluster uptime goals?</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; How do we provide and support application end to end availability?</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;How do we provide reporting, monitoring and analysis?&nbsp;</div><div><br></div><div>3. <strong>Deterministic</strong> - Storage should provide individual application workloads as deterministic response times as possible.&nbsp;Application workloads accessed by users&nbsp;must have positive user experiences</div><div>&nbsp; &nbsp; Sub topics might include:</div><div>&nbsp; &nbsp; &nbsp; &nbsp; How should we architect storage data structures within the cluster to provide self-tuned application specific response times?</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;How should we architect cluster wide multi-tenant workloads to coexist while providing application specific response times?&nbsp;&nbsp;&nbsp;</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; How should we provide application workloads automatic response expansion or contraction? &nbsp;&nbsp; &nbsp;&nbsp;</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;How do we provide reporting, monitoring and analysis?<br></div><div><br></div><div>4. <strong>Scale out/up</strong> - Storage systems must scale in I/O, MB/s and capacity as workload requirements expand or contract</div><div>&nbsp; &nbsp; Sub topics might include:&nbsp; &nbsp;</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;How do we insert new physical cluster resources into the cluster for consumption and provide for cluster/application awareness of the new resource?&nbsp;</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; How do we seamlessly plan and provide for the self-tuning of capacity expansion by application or workload type?</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; How do we seamlessly plan and provide for the self-tuning of cluster wide applications with heuristics techniques?</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; How do we provide for application migration and cut over?<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; How do we provide for cluster upgrades without application downtime or reduction of services? &nbsp;</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<span style="font-size: 14pt;">&nbsp;</span><span style="font-size: 14pt;">How do we provide reporting, monitoring and analysis?</span></div><div><br></div><div>5.<strong> Simplicity</strong> - Storage should be simple to understand, setup, configure, operate, manage, consume and report upon.&nbsp;The structural storage architecture and cluster wide interactions should be simple to articulate.</div><div>&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-size: 14pt;">Sub topics might include:</span></div><div>&nbsp; &nbsp; &nbsp; &nbsp; How do we document, keep current and provide training for Gluster users, developers and interested parties?</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; How can we better communicate inter dependencies of code modules while providing for agile structural development environments?&nbsp;<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; How do we provide simple operational models at scale?</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; How do we keep complexity minimized?</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;How do we provide reporting, monitoring and analysis?</div><div><br></div><div>6.<strong> Automation</strong> - Storage processes and procedures should be automated to reduce operational cost, overhead, reduce errors, scale up and out, provide workload and application fault tolerance, backups etc. &nbsp;</div><div>&nbsp; &nbsp;Sub topics might include:</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; What does automation at scale mean as PB+ scale is reached.</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;How do we provide reporting, monitoring, analysis and control?</div><div><br></div><div>7.<strong> Security</strong> - Storage and specifically the data stored must be perceived as secure.</div><div>&nbsp; &nbsp; Sub topics might include:</div><div>&nbsp; &nbsp; &nbsp; &nbsp; What security standards should we adopt and adhere to?</div><div>&nbsp; &nbsp; &nbsp; &nbsp; How should security containers and data structures operate?</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; What RBAC structures do we need to develop?&nbsp;&nbsp;</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div><div><br></div><div>&nbsp;I believe we should formulate goals and responses to each of these "architectural guiding principles" and add more if needed.</div><div><br></div><div>Mark Hayford</div><div><br></div><div><br></div><div><hr id="zwchr"><br>From: "Anand Avati" &lt;avati@gluster.org&gt;<br>To: "Gluster Devel" &lt;gluster-devel@nongnu.org&gt;<br>Sent: Wednesday, December 11, 2013 8:52:36 PM<br>Subject: [Gluster-devel] GlusterFS 4.0 plan<br></div><div><br></div><div>Hello all, <br></div><div><br></div><div>Here is a working draft of the plan for 4.0. It has pretty significant changes from the current model. Sending it out for early review/feedback. Further revisions will follow over time. <br></div><div><br></div><div><a href="https://gist.github.com/avati/af04f1030dcf52e16535#file-plan-md " target="_blank">https://gist.github.com/avati/af04f1030dcf52e16535#file-plan-md </a><br></div><div><br></div><div><br></div><div>Avati <br></div><div><br></div><div>_______________________________________________<br>Gluster-devel mailing list<br>Gluster-devel@nongnu.org<br>https://lists.nongnu.org/mailman/listinfo/gluster-devel</div></div></body></html>