Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lessons from 15 years of NBD

Similar presentations


Presentation on theme: "Lessons from 15 years of NBD"— Presentation transcript:

1 Lessons from 15 years of NBD
Wouter Verhelst Debconf 2016 May have oversold this a bit; not much comparison between little NBD and Debian. Still would be interesting, I think

2 Little history 2001-02: wouter@debian.org
(or -04): got an m68k mac with 68LC040 with broken mask revision : bought an m68k mac with 80MB of diskspace 68k/2001/04/msg00162.html: first time playing with NBD for builds over 10Mbit network Timestamp on initial changelog entry of NBD: Sat, 2 Jun :44:

3 Lesson Beware of the m68k macs you buy, you might end up maintaining NBD in fifteen years Be careful what you play with, you might end up maintaining a network storage system for fifteen years Playing with stuff is a good way to figure out new things to maintain in Debian – even if the said stuff isn’t very useful at first sight

4 Documentation Originally: no docs, at all 2005-10-25: doxygen comments
: blog post describing protocol with request for ethereal dissector : informal protocol description added to code repository : first significant external contribution : STARTTLS spec 2014 – 2016: more protocol-related commits than functionality commits

5 Lesson Writing documentation is too hard, so don’t do it
Writing documentation takes time, so postpone it Writing documentation takes time away from actual work, so don’t do it Writing documentation makes people send you patches, so don’t do it Writing documentation allows other people to understand and help out, so do it!

6 Naming things Original protocol had no way for proper negotiation
2010 (during debconf): wrote (and implemented) a different negotiation During discussion, informally referred to negotiations as “old” and “new” style Later that year: found a minor imperfection with “new” style Needed a “fix”, informally referred to that as “fixed new style” 2016: Official names are now “oldstyle”, “newstyle”, and “fixed newstyle”

7 Lesson Be careful what you name things, because you’re going to be stuck with the name for quite a while Choosing a good name is usually a good thing

8 Deprecating Oldstyle protocol was broken, so newstyle was created (in 2010) Intend was always to drop oldstyle when that would be reasonable January 2016: issue with mixed negotiation implementation → dropped oldstyle Lots of compatibility issues with third-party implementations (mostly fixed now)

9 Lesson If you’re going to deprecate something, make (and publish) a plan If you’re going to deprecate something, don’t wait six years If you’re going to deprecate something, make it clear in the documentation, in the code, in the comments In your .sig Try not to deprecate at all?

10 Security issues CVE-2005-3534 CVE-2011-0530 CVE-2013-6410
CVE : reintroduction of CVE

11 Lessons Writing a server? Prepare for security fixes
Security bugs are nothing to be ashamed about, we’re all humans Even so, try to prepare with proper design (fork-per- child, state machines, …) Fix bugs on all branches

12 Debian-specific NBD features
Debconf config for nbd-client/nbd-server Init script Installer support Systemd nbd unit


Download ppt "Lessons from 15 years of NBD"

Similar presentations


Ads by Google