Skip to content

DavidButterfield/dbd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Distributed Block Device

Distributed Block Device (dbd)

A block device implementing one or more mirrors on remote hosts

David A. Butterfield

This project implements a replicated (mirrored) block device in about 3200 lines of code in the go programming language.

cgo is used to interface the tcmu-runner handler dbd.c to the dbd implementation. The device can then be managed using targetcli(8).

Components:

  • storage_main.go -- main program initializes and then calls tcmu_main()
  • storage_node.go -- generic storage routing, and RPC implementation
  • mirror.go == mirroring storage routing module (duplicates I/O)
  • store.go -- storage node issues actual I/O to the backend device
  • pa_logger.go -- persistent array logger records metadata on disk
  • junk.go -- misc trivial utility functions

Moving from C to Go reminds me of how it felt moving from assembly language to C.

About

Distributed Block Device tcmu_handler

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published