Fingerprint upgrade process for cluster file systems with deletion while upgrading
Updating fingerprints for deduplicated data segments in a cluster network by calculating new fingerprint hash values using a new hash process. A new index mapping from the present hash process to the new hash process is created, as is a new fingerprint index mapping from the updated hash process to the containers. The process generates new fingerprints with the new fingerprint hash, and calculates the new fingerprint hash values of the new data segments using the new hash process. Relevant data structures are updated using the current fingerprint hash values with the new fingerprint hash values. New containers are created as needed to store the new fingerprint hash values. Old data elements like containers and fingerprints are deleted during the upgrading process to reduce space overheads.
1 . A method of updating fingerprints for deduplicated data segments in a cluster network utilizing containers to hold directory and files of a filesystem, comprising:
calculating, for each container in the cluster network, new fingerprint hash values using a new hash process that replaces an old hash process that generated current fingerprint hash values;
producing new containers as needed to store the new fingerprint hash values;
deleting old containers immediately after the new containers are produced;
creating a new index mapping from the old hash process to the new hash process, and a new fingerprint index mapping from the new hash process to the containers;
generating, by using the new fingerprint index, new fingerprints with the new hash process;
calculating the new fingerprint hash values of the new fingerprints using the new hash process;
deleting old fingerprints immediately after the calculating step; and
updating relevant data structures using the old fingerprint hash values with the new fingerprint hash values, wherein the cluster network comprises a Santorini network processing containerized data utilizing a Kubernetes-based framework, and wherein the containerized data comprises deduplicated backup data processed by a deduplicated backup filesystem.
2 . The method of claim 1 further comprising calculating a space requirement to complete the updating of the fingerprints.
3 . The method of claim 1 further comprising:
updating content handles to references with the new fingerprints;
first deleting containers with the data segments fingerprinted with the old hash process;
second deleting a fingerprint index referencing the old hash process;
third deleting the new fingerprint index; and
fourth deleting old data segments fingerprinted with the old hash process.
4 . The method of claim 1 wherein the relevant data structures comprise a container metadata section of each container, the new fingerprint index, and a file recipe for the files of the filesystem.
5 . The method of claim 4 wherein a fingerprint for each respective data segment is generated using a secure hash (SH) cryptographic hash algorithm, and wherein the fingerprints are stored in a L0 to L6 layered segment tree with the data segments stored in the L0 layer.
6 . The method of claim 5 further comprising iterating the calculation of the new fingerprint hash values of the new data segments using the new hash process over each of the L0 to L6 layers.
7 . A system updating fingerprints for deduplicated data segments in a cluster network utilizing containers to hold directory and files of a filesystem, comprising:
a hardware-based calculator calculating, for each container in the cluster network, new fingerprint hash values using a new hash process that replaces an old hash process that generated old fingerprint hash values;
a hardware based system component producing new containers as needed to store the new fingerprint hash values and deleting old containers immediately after the new containers are produced;
a new index mapping component creating a new index mapping from the old hash process to the new hash process, and a new fingerprint index mapping from the new hash process to the containers, and generating, by using the new fingerprint index, new fingerprints with the new fingerprint hash;
the hardware-based calculator calculating the new fingerprint hash values of the new data segments using the new hash process, the system component deleting old fingerprints immediately after the new fingerprints are generated;
an updater updating relevant data structures using the old fingerprint hash values with the new fingerprint hash values; and
a component calculating a space requirement to complete the updating of the fingerprints, wherein the space requirement calculation utilizes variables related to a logical size (L) of user-written content, a physical size (P) of the data after deduplication without indexes and metadata, a total size (TP) of the data after deduplication with the indexes and metadata, and a data segment size.
8 . The system of claim 7 further comprising the updater updating content handles to references with the new data segments.
9 . The system of claim 8 further comprising a cleanup component deleting: containers with the data segments fingerprinted with the old hash process, a fingerprint index referencing the old hash process, the new fingerprint index, and old data segments fingerprinted with the old hash process.
10 . The system of claim 7 wherein the relevant data structures comprise a container metadata section of each container, the new fingerprint index, and a file recipe for the files of the filesystem.
11 . The system of claim 10 wherein a fingerprint for each respective data segment is generated using a secure hash (SH) cryptographic hash algorithm, and wherein the fingerprints are stored in a L0 to L6 layered segment tree with the data segments stored in the L0 layer.
12 . The system of claim 11 further comprising the hardware-based calculator iterating the calculation of the new fingerprint hash values of the new data segments using the new hash process over each of the L0 to L6 layers.
13 . The system of claim 12 wherein the cluster network comprises a Santorini network processing containerized data utilizing a Kubernetes-based framework, and wherein the containerized data comprises deduplicated backup data processed by a deduplicated backup filesystem.
14 . A method of updating fingerprints for deduplicated data segments in a cluster network utilizing containers to hold directory and files of a filesystem, comprising:
calculating, for each container in the cluster network, new fingerprint hash values using a new hash process that replaces an old hash process that generated current fingerprint hash values;
creating a new index mapping from the old hash process to the new hash process, and a new fingerprint index mapping from the new hash process to the containers;
calculating a space requirement to update the fingerprints on at least one of a temporary or long-term basis due to increased program code size and addition of data elements;
calculating the new fingerprint hash values of the new fingerprints using the new hash process; and
updating relevant data structures using the old fingerprint hash values with the new fingerprint hash values, wherein the space requirement calculation utilizes variables related to a logical size (L) of user-written content, a physical size (P) of the data after deduplication without indexes and metadata, a total size (TP) of the data after deduplication with the indexes and metadata, and a data segment size.
15 . The method of claim 14 further comprising updating content handles to references with the new data segments.
16 . The method of claim 14 wherein the space requirement for the long-term basis is approximated by adding a size of the new index with a size of the data elements, and wherein the size of the new index is larger than an old index as a function of the old index size, and the size of the data elements is larger than a size of old data elements as a function of the old data elements size.
17 . The method of claim 16 wherein the temporary basis for the space requirement space required to update from the old hash process to the new hash process during the updating step, and that can be regained after completion.