# open-isns **Repository Path**: Vivio2x/open-isns ## Basic Information - **Project Name**: open-isns - **Description**: open-isns - **Primary Language**: C - **License**: LGPL-2.1 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-03-10 - **Last Updated**: 2023-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Welcome to Open-iSNS ==================== This is a partial implementation of iSNS, according to RFC4171. The implementation is still somewhat incomplete, but I'm releasing it for your reading pleasure. The distribution comprises: isnsd This is the iSNS server, supporting persistent storage of registrations in a file based database. isnsadm A command line utility for querying the iSNS database, and for registering/deregistering nodes and portals isnsdd An iSNS Discovery Daemon, which is still very much work in progress. The daemon is supposed to handle all the bit banging and server communications required to register a node, its portals, and to maintain the registration. It is also supposed to use the iSNS State Change Notification framework to learn of new targets or initiators coming online, and inform local services (such as the iSCSI initiator daemon) about these changes. Thanks! ------- Many thanks to Albert Pauw for his fearless testing of snapshots, and his copious feedback! What works, after a fashion: ---------------------------- - For now, I've been focusing on getting the iSCSI part to work. There is some very basic support for FC objects, but this will be hardly useful yet. - Registration, deregistration, query, getnext You can use isnsadm to register iSCSI nodes, and portals. isnsadm also illustrates how this is supposed to be used from the client perspective. - Discovery domains are supported mostly. The administrator can create discovery domains using isnsadm, and place storage nodes in domains. Queries by clients are scoped by their discovery domains membership, so that they will be unable to see nodes not part of a shared DD. Open-iSNS currently does not allow clients to place themselves in a DD. Optionally, storage nodes that are not in any discovery domain will be placed in a "default DD" (see the DefaultDiscoveryDomain in isnsd.conf). - ESI, supported both by the server and the discovery daemon - SCN, supported by the server and the discovery daemon What is still missing --------------------- - Better documentation (esp. a HOWTO on getting started with iSNS) - DD Sets - Various bits and pieces of the protocol - FC support Building Open-iSNS ------------------ Currently we are transitioning to using 'meson' instead of autotools/autoconf. This means that, for now, both systems work. But autoconf will be deprecated, so please start using meson. Using meson to Build open-isns ------------------------------ For Open-iSNS, the system is built using meson and ninja (see https://github.com/mesonbuild/meson). If these packages aren't available to you on your Linux distribution, you can download the latest release from: https://github.com/mesonbuild/meson/releases. The README.md file there describes in detail how to build it yourself, including how to get ninja. To build the open-isns, first run meson to configure the build, from the top-level open-iscsi directory, e.g.: rm -rf builddir mkdir builddir meson [] setup builddir Meson has many options, some built in, and some specifically for this project. To see the built-in options, run: meson setup --help One option of note is "--default-library={shared,static,both}". The meson default is "shared". The project-specific options are set using -D