From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <h.laimer@proxmox.com> 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)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id C56D4701CC for <pbs-devel@lists.proxmox.com>; Fri, 3 Sep 2021 11:27:56 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id AD28E19907 for <pbs-devel@lists.proxmox.com>; Fri, 3 Sep 2021 11:27:26 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (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 F049E198FB for <pbs-devel@lists.proxmox.com>; Fri, 3 Sep 2021 11:27:25 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 9D5F744519 for <pbs-devel@lists.proxmox.com>; Fri, 3 Sep 2021 11:27:25 +0200 (CEST) To: Dominik Csapak <d.csapak@proxmox.com>, Proxmox Backup Server development discussion <pbs-devel@lists.proxmox.com> References: <20210830111505.38694-1-h.laimer@proxmox.com> <c4692781-6487-5898-e6d4-84c88c1985b6@proxmox.com> From: Hannes Laimer <h.laimer@proxmox.com> Message-ID: <f97f5b28-9167-47fb-4b6c-eb22d9836cf8@proxmox.com> Date: Fri, 3 Sep 2021 11:27:24 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: <c4692781-6487-5898-e6d4-84c88c1985b6@proxmox.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 1.280 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment NICE_REPLY_A -2.225 Looks like a legit reply (A) SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pbs-devel] [PATCH v2 proxmox-backup 00/15] (partially)close #3156: Add support for removable datastores X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion <pbs-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/> List-Post: <mailto:pbs-devel@lists.proxmox.com> List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=subscribe> X-List-Received-Date: Fri, 03 Sep 2021 09:27:56 -0000 Am 01.09.21 um 16:48 schrieb Dominik Csapak: > High level comment here, rest in the relevant patches: > > looks mostly ok, but one things stood out: > > why do you add a command for the socket and the > manager 'send command' method? would it not have > been easier to call the mount api directly > from the proxmox-backup-manager? Since this is called by a udev rule it has to finish almost immediately, calling the API(also through the pbs-manager) takes to long, and everything forked will be killed. So I had to somehow make the udev rule just 'dispatch' the mounting command without actually doing it or starting another thread/process to do it. The path to the socket file starts with a null byte and is therefore not really accessible from outside of the rust code. > > also, would it not make sense to have > multiple uuids per datastore instead of only one? > > i guess most users of this will want to have more than > one usb devices in rotation, and having multiple > datastores + multiple sync jobs is probably > a bit error prone. just allowing multiple > uuids for each datastore would solve that > problem nicely > > On 8/30/21 13:14, Hannes Laimer wrote: >> v2(based on Lorenz Stechauner <l.stechauner@proxmox.com>'s feedback): >> - do not allow creation of removable datastores on a device that >> is mounted at '/' >> - ui: also show the mount point in the Options-tab >> >> Adds the possibility to create removable datastores. A removable >> datastore has a UUID(the device on which the data is stored) and a >> mount-point(where the device will be mounted), iff both are set the >> datastore is removable. Everything else is identical to normal >> datastores. Since config files for jobs, etc. are stored on the server, >> all configuration can be done with the device plugged in or not. Certain >> statistics about the datastore won't be available as long as it is not >> plugged in. >> Removable datastores have to be unmounted before removing, it can only >> be unmounted if not jibs are running. >> Removable datastores are mounted automatically when the device is >> plugged in, if it has >> been unmounted, it has to be mounted manually through the WebUI or the >> Api. >> Jobs will not be started if the datastore is not available, and >> depending on the configuration, start when the device is plugged in the >> next time. >> >> Still todo: >> - make sync to local datastore more integrated >> - (add 'when plugged in'-option to job schedule?) >> - replace linux commands with internal functions in tools/disks, where >> possible >> >> Hannes Laimer (15): >> tools: add disks utility functions >> config: add uuid+mountpoint to DataStoreConfig >> api2: add support for removable datastore creation >> backup: add check_if_available function to ds >> api2: add 'is_available' to DataStoreConfig >> api2: add 'removable' to DataStoreListItem >> api2: add (un)mount endpoint for removable ds's >> pbs: add mount-removable command to commandSocket >> pbs-manager: add 'send-command' command >> debian: add udev rule for removable datastores >> ui: show usb icon for removable datastore in list >> ui: add 'removable' checkbox in datastore creation >> ui: display row as disabled in ds statistics >> ui: show backing device UUID and mount-point in option tab >> ui: add (un)mount button to summary >> >> debian/proxmox-backup-server.udev | 3 + >> pbs-api-types/src/lib.rs | 7 ++ >> src/api2/admin/datastore.rs | 159 +++++++++++++++++++++++++++ >> src/api2/config/datastore.rs | 22 +++- >> src/api2/status.rs | 19 +++- >> src/api2/types/mod.rs | 2 + >> src/backup/datastore.rs | 23 ++++ >> src/backup/mod.rs | 2 +- >> src/bin/proxmox-backup-api.rs | 27 +++++ >> src/bin/proxmox-backup-manager.rs | 41 +++++++ >> src/config/datastore.rs | 16 +++ >> src/tools/disks/mod.rs | 53 +++++++++ >> www/NavigationTree.js | 3 +- >> www/dashboard/DataStoreStatistics.js | 3 + >> www/datastore/OptionView.js | 6 + >> www/datastore/Summary.js | 77 ++++++++++++- >> www/window/DataStoreEdit.js | 5 + >> 17 files changed, 460 insertions(+), 8 deletions(-) >> > >