Print

Print


Hi Andy,

I am trying to avoid using the cache directive on machines that have one 
RAID.  I expect our applications to create a reasonable hierarchy in the 
namespace and no one directory would contain too many files.  The 
systems with one RAID could mount and export /xrd.


The systems with two RAIDs must use caching to aggregate the storage or 
use an LVM.  The plan here is to use caching and create smaller 
partitions (~1TB) either through disk partitioning or exporting multiple 
devices from the RAID.  I was then working from Wilko's suggestion about 
how to mount items.  All, but one, of the partitions would be mounted at 
/xrd/cacheNN.  One partition would be mounted at /xrd but would also 
contain a cache subdirectory (/xrd/cache00).  With the caching 
directive, the partition mounted at /xrd will contain the directory 
structure that matches the namespace along with it's links to the cache 
partitions.  This coincides with the xrootd.export directive, but the 
partition would still be used for some storage since it provides the 
/xrootd/cache00 directory.


Am I missing something here?

Patrick



Andrew Hanushevsky wrote:
> 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
>>>>
>>