Hi Andreas

On 09/01/2015 07:22 PM, Dilger, Andreas wrote:
On 2015/09/01, 7:59 AM, "lustre-discuss on behalf of Chris Hunter"
<lustre-discuss-boun...@lists.lustre.org on behalf of
chris.hun...@yale.edu> wrote:

Hi Andreas,
Thanks for your help.

If you have a striped lustre file with "holes" (ie. one chunk is gone
due hardware failure, etc.) are the remaining file chunks considered
orphan objects ?
So when a lustre striped file has a hole (eg. missing chunk due to hardware failure), the remaining file chunks stay indefinitely on the OSTs. Is there a way to reclaim the space occupied by these pieces (after recovery of any usuable data, etc.)?


AFAIK the online lfsck tool will scrub orphan objects. When mounting a
OST on our oss server, I see syslog messages such as:
Aug 31 23:20:45 oss1 kernel: Lustre: test-OST0002: deleting orphan
objects from 0x0:228989008 to 0x0:228989127

Which leads me to believe these OST objects are subject to removal.
However I don't know what exactly are orphan objects.

These "orphan objects" are just precreated OST objects that were never
allocated to MDS files before the MDS or OSS crashed (or were allocated
before the MDS crashed but the client didn't complete recovery).  They are
unrelated to the problem you describe.

Cheers, Andreas

On 09/01/2015 12:58 AM, Dilger, Andreas wrote:
On 2015/08/31, 3:46 PM, "HPDD-discuss on behalf of Chris Hunter"
<hpdd-discuss-boun...@lists.01.org on behalf of chris.hun...@yale.edu>
wrote:

I am recovering from lustre OST failure and subsequent file corruption.
We have striped files each with 1 missing chunk. I would like to dump
the remaining file chunks from the OST. We have some tools (eg.
debugfs)
to grab the good chunks.

My question, if we put the filesystem into production (ie. users start
writing new files). What will happen to these good chunks ?

Does lustre consider these "orphan" inodes (and lfsck deletes them) ?

Since it was the OST that failed and not the MDT, then the remaining OST
objects would not be removed.

You can read the good chunks of such a file using:

    dd if=<file> of=<file>.new bs=1M conv=sync,noerror count=<size_in_mb>
    truncate --size=<size_in_bytes> <file>.new

The "conv=sync,noerror" allows reading from the file without failing
for the read errors returned from the missing stripe.  However, this
also prevents the dd from stopping when it hits the end of file, so
the number of chunks to be read needs to be specified.

Cheers, Andreas

_______________________________________________
lustre-discuss mailing list
lustre-discuss@lists.lustre.org
https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.lustre.org_listinfo.cgi_lustre-2Ddiscuss-2Dlustre.org&d=AwIFAg&c=-dg2m7zWuuDZ0MUcV7Sdqw&r=d_G2h_sZYG4xtHMeKo8QgjDmOcMVdQvYgM-5Dri1AOY&m=8a9pLNBThwNbZdkDsl_YKCAgEcnemEE2lnGA7CXhsrk&s=WogDVnKQv5gLqq3znYEOx_BaSQSBRJLNJYRjRKA3H9M&e=



Cheers, Andreas
Thanks,
chris hunter

_______________________________________________
lustre-discuss mailing list
lustre-discuss@lists.lustre.org
http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org

Reply via email to