[pbs-devel] [PATCH proxmox-backup v4 3/3] datastore: make 'filesystem' the default sync-level

Thomas Lamprecht t.lamprecht at proxmox.com
Fri Oct 28 13:24:31 CEST 2022


Updated stats would be nice, maybe with the following parings:

(v)Disk backed by
* nvme
* spinner

FS of:
- ext4
- XFS
- ZFS

Each combined with each disk backing type and current newest default
software (i.e. kernel 5.15).

Additionally maybe also NFS or CIFS. Those results would then maybe
again nice to have in the commit message.

Would help to find a more clear verdict, as currently I'm close to, but
not yet fully 100% sure if we just want to switch plainly, maybe making
it easier to change by adding it in the web interface, to the datastore
options tab and emphasizing it in the upcoming 2.3 changelog could be
already enough; depending on the numbers.

On 28/10/2022 09:34, Dominik Csapak wrote:
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
>  docs/storage.rst               | 4 ++--
>  pbs-api-types/src/datastore.rs | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/docs/storage.rst b/docs/storage.rst
> index c4e44c72..d61c3a40 100644
> --- a/docs/storage.rst
> +++ b/docs/storage.rst
> @@ -344,13 +344,13 @@ and only available on the CLI:
>    the crash resistance of backups in case of a powerloss or hard shutoff.
>    There are currently three levels:
>  
> -  - `none` (default): Does not do any syncing when writing chunks. This is fast
> +  - `none` : Does not do any syncing when writing chunks. This is fast
>      and normally OK, since the kernel eventually flushes writes onto the disk.
>      The kernel sysctls `dirty_expire_centisecs` and `dirty_writeback_centisecs`
>      are used to tune that behaviour, while the default is to flush old data
>      after ~30s.
>  
> -  - `filesystem` : This triggers a ``syncfs(2)`` after a backup, but before
> +  - `filesystem` (default): This triggers a ``syncfs(2)`` after a backup, but before
>      the task returns `OK`. This way it is ensured that the written backups
>      are on disk. This is a good balance between speed and consistency.
>      Note that the underlying storage device still needs to protect itself against
> diff --git a/pbs-api-types/src/datastore.rs b/pbs-api-types/src/datastore.rs
> index 4c9eda2f..ff8fe55f 100644
> --- a/pbs-api-types/src/datastore.rs
> +++ b/pbs-api-types/src/datastore.rs
> @@ -181,7 +181,6 @@ pub enum DatastoreFSyncLevel {
>      /// which reduces IO pressure.
>      /// But it may cause losing data on powerloss or system crash without any uninterruptible power
>      /// supply.
> -    #[default]
>      None,
>      /// Triggers a fsync after writing any chunk on the datastore. While this can slow down
>      /// backups significantly, depending on the underlying file system and storage used, it
> @@ -196,6 +195,7 @@ pub enum DatastoreFSyncLevel {
>      /// Depending on the setup, it might have a negative impact on unrelated write operations
>      /// of the underlying filesystem, but it is generally a good compromise between performance
>      /// and consitency.
> +    #[default]
>      Filesystem,
>  }
>  






More information about the pbs-devel mailing list