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)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id C56D4701CC for ; 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 ; 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 ; 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 ; Fri, 3 Sep 2021 11:27:25 +0200 (CEST) To: Dominik Csapak , Proxmox Backup Server development discussion References: <20210830111505.38694-1-h.laimer@proxmox.com> From: Hannes Laimer Message-ID: 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: 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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 '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(-) >> > >