linux/drivers/staging/dst/Kconfig
<<
>>
Prefs
   1config DST
   2        tristate "Distributed storage"
   3        depends on NET && CRYPTO && SYSFS && BLK_DEV
   4        select CONNECTOR
   5        ---help---
   6        DST is a network block device storage, which can be used to organize
   7        exported storage on the remote nodes into the local block device.
   8
   9        DST works on top of any network media and protocol; it is just a matter
  10        of configuration utility to understand the correct addresses. The most
  11        common example is TCP over IP, which allows to pass through firewalls and
  12        create remote backup storage in a different datacenter. DST requires
  13        single port to be enabled on the exporting node and outgoing connections
  14        on the local node.
  15
  16        DST works with in-kernel client and server, which improves performance by
  17        eliminating unneded data copies and by not depending on the version
  18        of the external IO components. It requires userspace configuration utility
  19        though.
  20
  21        DST uses transaction model, when each store has to be explicitly acked
  22        from the remote node to be considered as successfully written. There
  23        may be lots of in-flight transactions. When remote host does not ack
  24        the transaction it will be resent predefined number of times with specified
  25        timeouts between them. All those parameters are configurable. Transactions
  26        are marked as failed after all resends complete unsuccessfully; having
  27        long enough resend timeout and/or large number of resends allows not to
  28        return error to the higher (FS usually) layer in case of short network
  29        problems or remote node outages. In case of network RAID setup this means
  30        that storage will not degrade until transactions are marked as failed, and
  31        thus will not force checksum recalculation and data rebuild. In case of
  32        connection failure DST will try to reconnect to the remote node automatically.
  33        DST sends ping commands at idle time to detect if remote node is alive.
  34
  35        Because of transactional model it is possible to use zero-copy sending
  36        without worry of data corruption (which in turn could be detected by the
  37        strong checksums though).
  38
  39        DST may fully encrypt the data channel in case of untrusted channel and implement
  40        strong checksum of the transferred data. It is possible to configure algorithms
  41        and crypto keys; they should match on both sides of the network channel.
  42        Crypto processing does not introduce noticeble performance overhead, since DST
  43        uses configurable pool of threads to perform crypto processing.
  44
  45        DST utilizes memory pool model of all its transaction allocations (it is the
  46        only additional allocation on the client) and server allocations (bio pools,
  47        while pages are allocated from the slab).
  48
  49        At startup DST performs a simple negotiation with the export node to determine
  50        access permissions and size of the exported storage. It can be extended if
  51        new parameters should be autonegotiated.
  52
  53        DST carries block IO flags in the protocol, which allows to transparently implement
  54        barriers and sync/flush operations. Those flags are used in the export node where
  55        IO against the local storage is performed, which means that sync write will be sync
  56        on the remote node too, which in turn improves data integrity and improved resistance
  57        to errors and data corruption during power outages or storage damages.
  58
  59        Homepage: http://www.ioremap.net/projects/dst
  60        Userspace configuration utility and the latest releases: http://www.ioremap.net/archive/dst/
  61
  62config DST_DEBUG
  63        bool "DST debug"
  64        depends on DST
  65        ---help---
  66        This option will enable HEAVY debugging of the DST.
  67        Turn it on ONLY if you have to debug some really obscure problem.
  68