Ah, okay, so when you're using spaces, the localroot is a "fake" (but real filesystem directory) which just symlinks into the spaces, as a sort of "lookup table" for which space to actually find a given file? That's interesting. (And this is definitely not explained *at all* in the documentation, so that needs fixed. The oss.spaces stuff just says that it is a means of aggregating storage spaces and doesn't say that you need a localroot too, and the oss.localroot stuff doesn't mention how it relates to spaces at all.) On Thu, 14 Nov 2019 at 21:13, Matevž Tadel <[log in to unmask]> wrote: > > > > On 2019-11-14 12:39, Sam Skipsey wrote: > > On Thu, 14 Nov 2019 at 20:27, Matevž Tadel <[log in to unmask]> wrote: > >> > >> Hi, > >> > >> You are missing oss.localroot ... this has to be always defined. That's > >> where symlinks to various oss.space instances go. > >> > > > > ...how does this work (and why isn't it described in any detail how > > this applies to oss.spaces in the documentation?) > > I think Andy should explain this (and fix the docs) ... as it might be > my mental model is incomplete. > > >> Looking at your config, you don't seem to need oss.space and pfc.spaces > >> at all, you just need oss.localroot /storage0/ > >> > > > > No, we have /storage0 through /storage4. > > > >> It seems the disks are aggregated in some other ways, not by being added > >> to any space. > >> > > > > That's... partly true. But the /storage* filesystem locations are all > > distinct, and associated with different devices. > > > >> public is the default space used by xcache, for both data and metadata > >> (so what you specify are actually the defaults). > >> > > > > I know, but since it wasn't working, I thought I'd put it in > > explicitly just in case. > > > >> xcache allows you to separate spaces for data and metadata, often it is > >> useful to have metadata and localroot on ssd, or at least on a separate > >> disk / controller. > >> > > > > Indeed... as noted, the problem is that there's no documentation about > > how to associate a space with the localroot, as the documentation > > doesn't talk about spaces in this context. > > All spaces are associate with the localroot implicitly, I believe ... > localroot just holds symlinks to instaniated files in various spaces. > You can think of localroot as the namespace representation ... with > actual data being stored on other spaces. > > Now, the question that arises for me is, how you associate parts of > namespace (export) with an oss.space -- and I believe this is also what > confuses you. > > In xcache we do it explicitly by writing data files to the "data" space > and cinfo files to the "meta" space. This way they can land on different > storage types and can be separated as cinfo files get access often > during purge cycle. > > >> See the relevant lines from a config we use at UCSD below. > >> > >> It turns out that for cache it is better to use raw disks than raid5/6 > >> or zfs as you get independent streams for each file being opened going > >> to specific disks, both on input and output. Data loss due to a lost > >> disk is not a problem for caches. > >> > >> I hope this is clearer now :) > >> > > > > Not really: I still need to know how you associate the localroot with a space. > > See above + I hope Andy can further clarify it for you. > > >> Matevz > >> > >> oss.localroot /xcache-root # On SSD > >> > >> oss.space data /data1/xcache # Spinning disks (we use xfs) > >> oss.space data /data2/xcache > >> oss.space data /data3/xcache > >> oss.space data /data4/xcache > >> oss.space data /data5/xcache > >> oss.space data /data6/xcache > >> oss.space data /data7/xcache > >> oss.space data /data8/xcache > >> oss.space data /data9/xcache > >> oss.space data /data10/xcache > >> oss.space data /data11/xcache > >> oss.space data /data12/xcache > >> > >> oss.space meta /xcache-meta # On SSD > >> > >> # Use space "data" for data, "meta" for meta-data/cinfo files > >> pfc.spaces data meta > > > > Yes. So... is /xcache-root a real path? Is /xcache-meta a real path? > > Yes, both are real paths you can write to :) > > > This doesn't help me with what I should point oss.localroot at. > > To a directory, preferably on a SSD. And the same for oss.space meta. > localroot will only hold sym-links so it needs not be very large. meta > will only hold cinfo files so it will be something like 1 kB per file + > 1-bit per-block of data files, also rather smallish. > > E.g., for blocksize of 512 kB: > > [1311] root@xcache-00 /# du -sch xcache-root xcache-meta /data{1..12} > 3.8M xcache-root > 31M xcache-meta > 1.8T /data1 > 1.8T /data2 > 1.8T /data3 > 1.8T /data4 > 1.8T /data5 > 1.8T /data6 > 1.8T /data7 > 1.8T /data8 > 1.8T /data9 > 1.8T /data10 > 1.8T /data11 > 1.8T /data12 > 22T total > > Matevz > > > Sam > > > >> > >> On 2019-11-14 11:50, Sam Skipsey wrote: > >>> Hello, > >>> So, I've tried various interpretations of the documentation, but I'm > >>> obviously missing something. > >>> > >>> I'm trying to configure an Xrootd Proxy Cache, backed by storage > >>> aggregated into an oss.space. > >>> > >>> The cache is configured like: > >>> > >>> > >>> oss.space public /storage0* > >>> #oss.space public default / > >>> > >>> ofs.osslib libXrdPss.so > >>> pss.cachelib libXrdFileCache.so > >>> pfc.ram 16g > >>> all.trace all > >>> all.log all > >>> pfs.diskusage 0.90 0.95 > >>> > >>> all.export /xroot:/ outplace > >>> all.export /root:/ outplace > >>> > >>> all.export / outplace > >>> > >>> pss.origin svr01.beowulf.cluster:1094 > >>> xrd.allow host *.beowulf.cluster > >>> > >>> pfc.blocksize 256k > >>> > >>> pfc.spaces public public > >>> > >>> > >>> > >>> where the /storage0* spaces are all writable and owned by the xrootd > >>> user (and when we start up the server, it creates "public" directories > >>> in each of them). > >>> > >>> However, whenever I try to access a file through the proxy, it logs > >>> that it couldn't write the file to the disk (specifying its path as if > >>> it was going to write it to the storage with no prefix - that is, > >>> outside of the specified "public" space, in the literal root > >>> filesystem). > >>> If this was a non-spaces based system, I'd specify oss.localroot, but > >>> that doesn't seem to apply to a space? > >>> I tried adding the outplace directives to the all.exports, but this > >>> hasn't changed anything. > >>> > >>> What am I missing? None of the example configurations I can see with > >>> oss.spaces seem to need any additional configuration directives... > >>> > >>> Sam > >>> > >>> ######################################################################## > >>> Use REPLY-ALL to reply to list > >>> > >>> To unsubscribe from the XROOTD-L list, click the following link: > >>> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1 > >>> > >> > >> ######################################################################## > >> Use REPLY-ALL to reply to list > >> > >> To unsubscribe from the XROOTD-L list, click the following link: > >> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1 ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the XROOTD-L list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1