Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: added script for searching corrupted (stub) files #16

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

alex-rg
Copy link

@alex-rg alex-rg commented Jun 5, 2023

The check is performed in 3 steps: initial search, verification and dark object's search.

In the fist step a sorted list of objects is read, for every file we get it's size, size of the last object, and also calculate the number of objects that constitute the file.
If <file_size> != <object_size>*(<object_count> -1) + <last_obj_size>, the file is considered to be corrupted.

In the second step list of obtained in the first step files is read and "full" live check is performed for every file. I.e. every file's object is statted and sizes are compared. This is necessary because some files may be only partially transferred during the dump collection.

The final step is collection of orphaned objects. This is done since these objects can not be removed using rados striper.

The check is performed in 3 steps: initial search, verification and
dark object's search.

In the fist step a sorted list of objects is read, for every file
we get it's size, size of the last object, and also calculate the
number of objects that constitute the file.
If <file_size> != <object_size>*(<object_count> -1) + <last_obj_size>,
the file is considered to be corrupted.

In the second step list of obtained in the first step files is read
and "full" live check is performed for every file. I.e. every file's
object is statted and sizes are compared. This is necessary because
some files may be only partially transferred during the dump collection.

The final step is collection of orphaned objects. This is done since
these objects can not be removed using rados striper.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant