Zbr's days.

About :: TODO :: Blog :: RSS :: Old blog :: Projects :: GIT :: Gallery :: Notes

Wed, 27 Aug 2008

Completely new Distributed STorage (DST) release.

DST is a block layer network device, which among others has following features:

  • Kernel-side client and server. No need for any special tools for data processing (like special userspace applications) except for configuration.
  • Bullet-proof memory allocations via memory pools for all temporary objects (transaction and so on).
  • Zero-copy sending (except header) if supported by device using sendpage().
  • Failover recovery in case of broken link (reconnection if remote node is down).
  • Full transaction support (resending of the failed transactions on timeout of after reconnect to failed node).
  • Dynamically resizeable pool of threads used for data receiving and crypto processing.
  • Initial autoconfiguration. Ability to extend it with additional attributes if needed.
  • Support for any kind of network media (not limited to tcp or inet protocols) higher MAC layer (socket layer). Out of the box kernel-side IPv6 support (needs to extend configuration utility, check how it was done in POHMELFS).
  • Security attributes for local export nodes (list of allowed to connect addresses with permissions). Not used currently though.
  • Ability to use any supported cryptographically strong checksums. Ability to encrypt data channel.
Distributed storage was completely rewritten from scratch recenly. I dropped essentially mirrored features of teh device mapper in favour of the more robust block io processing and effective protocol.

One can grab sources (various configuration examples can be found in 'userspace' dir) from archive, or via kernel and userspace GIT trees.

/devel/dst :: Link / Comments ()