From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 99070618AC for ; Thu, 17 Dec 2020 17:41:14 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 8487A28EA3 for ; Thu, 17 Dec 2020 17:40:44 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [212.186.127.180]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id C45C328E95 for ; Thu, 17 Dec 2020 17:40:42 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 8CB664525C; Thu, 17 Dec 2020 17:40:42 +0100 (CET) To: Andrei Perapiolkin , Proxmox VE development discussion , dietmar@proxmox.com References: <7e06eb9c-a298-60bf-cfe3-15b6a630fc98@open-e.com> From: Thomas Lamprecht Message-ID: Date: Thu, 17 Dec 2020 17:40:40 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:82.0) Gecko/20100101 Thunderbird/82.0 MIME-Version: 1.0 In-Reply-To: <7e06eb9c-a298-60bf-cfe3-15b6a630fc98@open-e.com> Content-Type: text/plain; charset=UTF-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.065 Adjusted score from AWL reputation of From: address KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_SHORT 0.001 Use of a URL Shortener for very short URL NICE_REPLY_A -0.001 Looks like a legit reply (A) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [proxmox.com, gnu.org] Subject: Re: [pve-devel] Adding new data storage X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Dec 2020 16:41:14 -0000 Hi again, On 17/12/2020 17:16, Andrei Perapiolkin wrote: > Hi Thomas, Dietmar, > > Thanks for the quick reply. > > > Sorry for ambiguity with "API". By API I meant usage of SSH to send commands to Open-E JovianDSS. > > The problem here is that this commands are different from the one used in "ZFS over iSCSI" plugin. > > That is why Im thinking about adding separate plugin. > > > Also this plugin is going to be OpenSource and API is public, so there should not be any legal complications with adding it to Proxmox repo. To be included into our git tree the backing implementation also needs to have an open source license, ideally with an open development model (not just some code dump download side) covering the storages API and the plugin itself under an open license is not enough. Taking in a plugin in our tree means for us to ensure it is maintained and safe to use for our users and enterprise support, and for that access to source code, among other things, is crucial. But, as mentioned, we have a mechanism to support external Storages plugins, with mechanisms to ensure it can stay compatible and adapt to API changes (using a GNU libtool like /APIVER/sion and /APIAGE/ definition[1][2]) Such external plugins integrate fully in the backend, they are somewhat limited in the user interface, can be selected for use everywhere once defined, but not added or edited itself - for that the CLI needs to be used. Boiled down, you'd need to provide a perl module which would get installed to `/usr/share/perl5/PVE/Storage/Custom/`, it needs to have an api sub which returns the API version the plugin supports, further, it then needs to have the respective sub methods implementing that interface. If unsure, check some external plugins, like the Linstore one[3], or also our internal ones, for example the ceph RBD or ZFS Pool one. [1]: https://git.proxmox.com/?p=pve-storage.git;a=blob;f=PVE/Storage.pm;h=bd6e15e9f1f9f05dec9a6cbcd88391705ff08212;hb=HEAD#l43 [2]: https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html [3]: https://github.com/LINBIT/linstor-proxmox > > My concern is whether I should provide additional CI, Unit tests or something else? > Correct me if I'm mistaken, but FWICT, the referred storage tech is not free (meaning the definition of free software from FSF/GNU itself, that can probably not be stated in a general, absolute, manner and needs to be looked at, at a case by case basis - GPL compatible would be definitively remove most to all road blocks). Independent of that, adding a new storage plugin would require at least some basic tests, the more the better. regards, Thomas > Coding style goes without saying. > > > On 12/17/20 5:35 PM, Thomas Lamprecht wrote: >> Hi, >> >> On 17/12/2020 16:06, Andrei Perapiolkin wrote: >>> I would like to add new data storage. This storage would resemble ZFS over iSCSI but will use different API to access storage. >>> >> What do you mean here, what API will it use? If you want to include this in our >> repository some more details would be appreciated. Else, for storages with have >> a external plugin system which can be used to include plugins which are proprietary >> or otherwise unfit for inclusion. > > > > Best regards, > > Andrei Perepiolkin > >