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 068726AE35 for ; Wed, 9 Dec 2020 17:27:28 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id E896C13A64 for ; Wed, 9 Dec 2020 17:26:57 +0100 (CET) Received: from mail.directique.com (mail.directique.com [176.31.91.54]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id D44B913A58 for ; Wed, 9 Dec 2020 17:26:55 +0100 (CET) Received: from SCOM4.directique.net ([::1]) by SCOM4.directique.net ([::1]) with mapi id 14.03.0487.000; Wed, 9 Dec 2020 17:23:46 +0100 From: Lubomir Apostolov To: Proxmox Backup Server development discussion Thread-Topic: [pbs-devel] [PATCH proxmox-backup] docs: explain some technical details about datastores/chunks Thread-Index: AQHWzj+qXSxQS5+MkEKI9cwLvuZDLKnu7UEg Date: Wed, 9 Dec 2020 16:23:25 +0000 Message-ID: <718D0AF11703FA4C85B0535448A05610038195BAB5@SCOM4.directique.net> References: <20201209152553.8752-1-d.csapak@proxmox.com> In-Reply-To: <20201209152553.8752-1-d.csapak@proxmox.com> Accept-Language: fr-FR, en-US Content-Language: fr-FR X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [90.46.0.213] Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment 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] Subject: Re: [pbs-devel] [PATCH proxmox-backup] docs: explain some technical details about datastores/chunks 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: Wed, 09 Dec 2020 16:27:28 -0000 Hi, After reading https://bugzilla.proxmox.com/show_bug.cgi?id=3D3138 and your = mail, I'd like to discuss the following statement : "we have to read all files again in every backup" for both cases - file and= image based backup. The image-backup seems simpler - fixed-size chunks.=20 PBS should be able to link a snapshot with it's backup, and backup only dif= ferencies with parent snapshot as for example zfs send/recv works. Every backup knows the chunk order and chunk size, so it can map every chun= k to the original image extents. The snapshot differences gives extents, which PBS can map to overlapped chu= nks, and send only those chunks, while referencing unchanged chunks from pr= evious backup chunks list. The variable-size chunks based on files needs another mapping between chunk= s and filenames.=20 The rolling hash over the data may be linked a list containing the filename= s inside, and then the snapshot diff containing files can flag the chunks t= o be saved. So where's the catch ? Best regards, Lubomir Apostolov -----Message d'origine----- De=A0: pbs-devel [mailto:pbs-devel-bounces@lists.proxmox.com] De la part de= Dominik Csapak Envoy=E9=A0: mercredi 9 d=E9cembre 2020 16:26 =C0=A0: pbs-devel@lists.proxmox.com Objet=A0: [pbs-devel] [PATCH proxmox-backup] docs: explain some technical d= etails about datastores/chunks adds explanations for: * what datastores are * their relation with snapshots/chunks * basic information about chunk directory structures * fixed-/dynamically-sized chunks * special handling of encrypted chunks * hash collision probability * limitation of file-based backups Signed-off-by: Dominik Csapak --- docs/index.rst | 1 + docs/technical-overview.rst | 152 ++++++++++++++++++++++++++++++++++++ docs/terminology.rst | 3 + 3 files changed, 156 insertions(+) create mode 100644 docs/technical-overview.rst diff --git a/docs/index.rst b/docs/index.rst index fffcb4fd..f3e6bf0c 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -33,6 +33,7 @@ in the section entitled "GNU Free Documentation License". pve-integration.rst pxar-tool.rst sysadmin.rst + technical-overview.rst faq.rst =20 .. raw:: latex diff --git a/docs/technical-overview.rst b/docs/technical-overview.rst new file mode 100644 index 00000000..20f937bd --- /dev/null +++ b/docs/technical-overview.rst @@ -0,0 +1,152 @@ +Technical Overview +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +.. _technical_overview: + +Datastores +---------- + +A Datastore is the logical place where :ref:`Backup Snapshots ` +and their chunks are stored. Snapshots consist of a manifest, blobs, +dynamic- and fixed-indexes (see :ref:`terminology`), and are stored in the= following directory structure: + + ///