Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752726AbYKYOt0 (ORCPT ); Tue, 25 Nov 2008 09:49:26 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751918AbYKYOsh (ORCPT ); Tue, 25 Nov 2008 09:48:37 -0500 Received: from cavolo.yandex.ru ([87.250.244.45]:5226 "EHLO cavolo.yandex.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751706AbYKYOsc (ORCPT ); Tue, 25 Nov 2008 09:48:32 -0500 X-Greylist: delayed 867 seconds by postgrey-1.27 at vger.kernel.org; Tue, 25 Nov 2008 09:48:30 EST From: Evgeniy Polyakov To: Andrew Morton Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, Evgeniy Polyakov Subject: [resend take 3 0/4] Distributed storage. Date: Tue, 25 Nov 2008 17:37:46 +0300 Message-Id: <12276238703113-git-send-email-zbr@ioremap.net> X-Mailer: git-send-email 1.5.2.5 X-Antivirus: Dr.Web (R) for Mail Servers on cavolo.yandex.ru host X-Antivirus-Code: 100000 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3205 Lines: 70 Hello. Distributed storage is a feature-rich network block device. Supported 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). All clients structures are allocated as single transaction from the memory pool and except this there is no allocation overhead. Network adds own though. Server uses memory pools too, but number of allocations is higher (bio, transaction and pages for IO). * 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 barriers and other block io request flags. * 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). Read-only connections. * Ability to use any supported cryptographically strong checksums. Ability to encrypt data channel. * Keepalive messages to early detect failed nodes. This release changes only in name, which reflects inclusion and feedback process. One can grab sources (various configuration examples can be found in 'userspace' dir) from archive, or via kernel and userspace GIT trees. Consider for inclusion. Thank you. 1. POHMELFS homepage. http://www.ioremap.net/projects/pohmelfs 2. DST homepage. http://www.ioremap.net/projects/dst 3. DST archive. http://www.ioremap.net/archive/dst/ 4. DST git trees. http://www.ioremap.net/cgi-bin/gitweb.cgi Signed-off-by: Evgeniy Polyakov drivers/block/Kconfig | 2 + drivers/block/Makefile | 2 + drivers/block/dst/Kconfig | 14 + drivers/block/dst/Makefile | 3 + drivers/block/dst/crypto.c | 731 +++++++++++++++++++++++++++++ drivers/block/dst/dcore.c | 972 +++++++++++++++++++++++++++++++++++++++ drivers/block/dst/export.c | 664 ++++++++++++++++++++++++++ drivers/block/dst/state.c | 839 +++++++++++++++++++++++++++++++++ drivers/block/dst/thread_pool.c | 345 ++++++++++++++ drivers/block/dst/trans.c | 335 ++++++++++++++ include/linux/connector.h | 4 +- include/linux/dst.h | 587 +++++++++++++++++++++++ 12 files changed, 4497 insertions(+), 1 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/