Print

Print


Hi Patrick,

Since you specified "xrd/cache*" there is no need for a conditional. 
However, I am confused about mounting here. You should mount each file 
system as /xrd/chacenn where nn is a "number" mount point. So each system 
would have a variable number of mount points predefined. That would be my 
take but it sounds like you planning on doing something else.

Andy



----- Original Message ----- 
From: "Patrick McGuigan" <[log in to unmask]>
To: <[log in to unmask]>
Sent: Thursday, November 08, 2007 2:56 AM
Subject: Re: Question about oss.cache directive


> Hi,
>
> A follow question concerning how the config file would be handled by 
> systems with one mount.
>
> Consider:
>
> oss.cache public /xrd/cache*
>
> xrootd.fslib /opt/xrootd/lib/libXrdOfs.so
> xrootd.export /xrd
>
>
> On systems with multiple partitions, I would mount:
> /xrd
> /xrd/cache00
> ...
> /xrd/cacheNN
>
> On systems with one partition, I would mount /xrd
>
>
> Will this work, or does the oss.cache directive need to wrapped in a 
> conditional statement so that it is only used on multi-partition servers?
>
> Patrick
>
>
>
>
>
> Wilko Kroeger wrote:
>>
>> Hello Patrick
>>
>> Fabrizio answered already most of the question. I just have a few 
>> comments.
>>
>> If you have more then one partition that an xrootd server should serve 
>> you should use the cache directive.
>> The cache is working by placing a file in a cache directory and creating 
>> a link between this file and the proper file name. For example:
>> if the file name is /xrd/test/d1/file1 and your you use the the cache 
>> directive
>> ooss.cache /xrd*
>> the file would be put (lets pick cache xrd2) into
>>    /xrd2/%xrd%test%d1%file1
>> and a link is created:
>>> ls -l /xrd/test/d1/file1 ->  /xrd2/%xrd%test%d1%file1
>>
>> As you can see there are no directories in the cache. The file name in 
>> the cache is the proper file name with all '/' replaced by '%'.
>>
>>
>> As xrootd will export /xrd you have to create a /xrd directory. I guess 
>> this will not be in the '/' root partition but in one of you data 
>> partition (/xrd1 /xrd2) and therefore you will need a link.
>>  /xrd -> /xrd1
>>
>> However, in this case, doing an 'ls /xrd' would list all files in /xrd1 
>> which could be quite large depending how many files you have. Therefore, 
>> you might want to have a link like
>>  /xrd -> /xrd1/xrd
>> In this case 'ls /xrd' would not list the files in the /xrd1 cache.
>>
>> Another possibility would be to make the cache directories a little bit 
>> more explicit. Mount your two partitions as:
>> /xrd
>> /xrd/cache1
>> and create the directory
>> /xrd/cache0
>> and then use
>> ooss.cache /xrd/cache*
>>
>> I hope these comments helped a little bit.
>>
>>   Cheers,
>>       Wilko
>>
>>
>>
>> On Wed, 7 Nov 2007, Patrick McGuigan wrote:
>>
>>> Hi,
>>>
>>> I am setting up an xrootd cluster for the first time and I have a 
>>> question about the oss.cache directive.
>>>
>>> Some of my data servers have two partitions (and some have one) that I 
>>> want to use for storage.  Is it true that the oss.cache directive MUST 
>>> be used to put two partitions into service?  How is load balancing 
>>> (based on space) managed on caches versus partitions?  Are there any 
>>> performance penalties to using the cache directive?
>>>
>>> Finally, when a directory is created within a cache, does the directory 
>>> get created on both partitions?
>>>
>>>
>>>
>>> If the partition on a one mount server is /xrd1 and the partitions on 
>>> dual-mount server are /xrd1 and /xrd2, would the following snippet from 
>>> the config file be appropriate:
>>>
>>>
>>> #
>>> #
>>> olb.path rw /xrd
>>> #
>>> oss.cache public /xrd*
>>> #
>>> xrootd.fslib /opt/xrootd/lib/libXrdOfs.so
>>> xrootd.export /xrd
>>>
>>>
>>>
>>> I am expecting this to create a global namespace rooted at /xrd that is 
>>> writable and would use both partitions of dual-mount data server.
>>>
>>>
>>>
>>> Thanks for any information,
>>>
>>> Patrick
>>>
>