fdb-nbd

Infrastructure

network block device

SHOW HN2018

fdb-nbd

A proof-of-concept FoundationDB based network block device backend

github.com

#foundationdb#network block device#nbd#block storage#distributed storage

192points
33comments
#192of 2,155 in 2018
Top 9%of 2018 by points

How HN took it

CuriousMostly questions and neutral comments

4 positive, 19 neutral or asking, 1 mixed, 1 critical, out of 25 comments about the project. Thread score +0.12.

Idea: 4 for, 0 againstExecution: 0 for, 1 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Fault tolerance for legacy applications via block storage over FDB

    From 2 comments
    • Awesome. I actually think that there is a lot of potential for using block storage over FDB to bring extreme fault tolerance to legacy applications without rearchitecting them.…
      voidmain on HN
    • I think the biggest feature is that you get (up to) linearizable consistency while still being FAST, meaning you can rest assured that any writes are actually permanent, even if…
      haneefmubarak on HN
  • Simple NBD protocol is useful for building new things

    From 1 comment
    • It's not really "better" or "worse". NBD is an extremely simple protocol. Read range, write range, delete range, sync -- that's it. If you want to implement an NBD server from…
      kentonv on HN

Objections

  • Python backend on same machine risks memory deadlocks

    From 2 comments
    • Very cute. For a production system, you do not want an NBD device backed by Python code on the same machine. That way lies nasty memory allocation deadlocks.
      amluto on HN
    • Suppose you've filled up most of your memory and that some of that memory contains data that you've written to an NBD-backed device but that hasn't been flushed out yet. The…
      amluto on HN
  • Ad hoc locking across etcd and Ceph is hard to get right

    From 1 comment
    • Unless you have serious simulation or model checking tools, your ad hoc combination of etcd and ceph will almost certainly be buggy. I'm not 100% positive it is even possible in…
      voidmain on HN

Requests

  • Support for multiple simultaneous clients on the same volume

    From 2 comments
    • Could you mount this on multiple machines and do simultaneous reads and writes?
      ryanworl on HN
    • How do you handle resilience? if FDB is multi-node, do you run a copy on each node? If so, how is failure detected / client traffic redirected, and what protects against…
      scoot on HN
  • Failover to an alternate node when the connected node fails

    From 1 comment
    • Thanks for the reply. Don't know if you will see this, but I was also interested in how the NBD client fails over to an alternate node if the one it's connected to fails.…
      scoot on HN

Questions

  • How is resilience and failover handled

    From 2 comments
    • How do you handle resilience? if FDB is multi-node, do you run a copy on each node? If so, how is failure detected / client traffic redirected, and what protects against…
      scoot on HN
    • Thanks for the reply. Don't know if you will see this, but I was also interested in how the NBD client fails over to an alternate node if the one it's connected to fails.…
      scoot on HN
  • What prevents concurrent clients on one volume

    From 3 comments
    • How do you handle resilience? if FDB is multi-node, do you run a copy on each node? If so, how is failure detected / client traffic redirected, and what protects against…
      scoot on HN
    • See https://www.foundationdb.org for information on FDB but in short it is a distributed database that is auto-scaling, auto-healing, auto-sharding and ACID. You do need a…
      spullara on HN
    • Thanks for the reply. Don't know if you will see this, but I was also interested in how the NBD client fails over to an alternate node if the one it's connected to fails.…
      scoot on HN
  • Does zlib compression make it faster or slower

    From 1 comment
    • does the zlib compression in python make it faster or slower?
      0x006A on HN

Alternatives named

  • Ceph RBD

    From 2 comments
    • Would this provide additional benefits over Ceph, which does no-single-point-of-failure networked block storage and is already a production-ready system? It wouldn't get you the…
      geofft on HN
    • RBD (Ceph block devices) supports exclusive locking. The RBD kernel client has support for that since kernel 4.9. Older kernels can use rbd-nbd to use the user space…
      emmericp on HN
  • iSCSI

    From 2 comments
    • Could someone explain why/how NBD is better than just using a linux host as an iscsi target? Googling NBD vs iSCSI shows old articles with no real solid conclusion.
      CaseFlatline on HN
    • It's not really "better" or "worse". NBD is an extremely simple protocol. Read range, write range, delete range, sync -- that's it. If you want to implement an NBD server from…
      kentonv on HN
  • Java NBD server by spullara

    From 1 comment
    • Cool! Here is my java version that I wrote back in the day. Recently updated to 5.1. https://github.com/spullara/nbd
      spullara on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/16948939)