📜 ⬆️ ⬇️

dCache - storage facility where HIGGS lives

Recently, there have been a large number of posts about CERN and the Large Hadron Collider (LHC or LHC). But not many people know that BAC produces ~ 20 PB of data per year. About 50% of all data is stored in dCache.

dCache is a distributed storage system capable of operating on regular hardware, with the possibility of expanding by adding new nodes. All that is needed to work on a node is the JVM (since everything is written in Java) and the file system where the data is actually stored. Typical installations use Linux (RHEL / SL / CentOS 6) or Solaris with XFS or ZFS, respectively. Due to the kind of experimental data, dCache does not provide for the modification of stored files.

dCache has been developed since 2000 and since 2002 it has been used in more than 80 scientific centers of the world, including Russia. The smallest systems consist of one node in several TB, the largest ones consist of ~ 500 nodes with a total disk space of 22 PB.
')


image

dCache supports various data access protocols. Along with the widely used standard protocols WebDAV, FTP, NFSv4.1 / pNFS , the SRM and GRIDFTP grids are also used .

The simplest use of dCache is the distributed WebDAV server. On this basis, you can create your own Cloud Storage, especially since there are already a sufficient number of clients using HTTP and WebDAV.

We will consider a more banal application - distributed NFSv4.1 storage.

DCache uses postgresql to store metadata.
So let's get started:
# yum install postgresql-server # yum install java-1.7.0-openjdk # yum install http://www.dcache.org/downloads/1.9/repo/2.6/dcache-2.6.10-1.noarch.rpm # /etc/init.d/postgresql initdb 


In /var/lib/pgsql/data/postgresql.conf we enable TCP:
listen_addresses = 'localhost'

In /var/lib/pgsql/data/pg_hba.conf add
 host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust 


 # /etc/init.d/postgresql restart # su postgres -c "createuser -D -R -S chimera" # su postgres -c "createdb -O chimera chimera" # su postgres -c "createlang plpgsql chimera" 


All configuration files are in the / etc / dcache directory. We are only interested in one of them: /etc/dcache/layout/single.conf, where the description of the services that should be run on this node is located.

Say dCache that should work in /etc/dcache/layouts/single.conf :

 [dCacheDomain] [dCacheDomain/admin] [dCacheDomain/broadcast] [dCacheDomain/poolmanager] [dCacheDomain/loginbroker] [dCacheDomain/pnfsmanager] [dCacheDomain/cleaner] [dCacheDomain/httpd] [dCacheDomain/topo] [dCacheDomain/nfsv41] 

This configuration creates a dCacheDomain (each domain is one JVM, one process) with the corresponding services.

And configure the date server on the same node:
# dcache pool create /srv/dcache pool1 pool1Domain

This command will add a date server with the name pool1 to the configuration file pool1Domain:
 [pool1Domain] [pool1Domain/pool] name=pool1 path=/srv/dcache waitForFiles=${path}/data 


Create a directory:
# chimera-cli mkdir /data<br>
# chimera-cli chmod /data 777


And export to / etc / exports:
/data *(rw)

Run dCache:
# dcache start
Log files are in / var / log / dcache .

Since dCache is a distributed storage, we need an NFS client that supports pNFS (parallel NFS). This is RHEL / CentOS 6 or any other modern Linux distribution:

# mount -overs=4.1 :/data /data

, , , openjdk dcache,
/etc/dcache/layouts/single.conf :
dcache.broker.host= :
# dcache pool create /srv/dcache pool2 pool2Domain

, .

To steal and contribute code
dCache- , , AGPL, LGPL BSD.

:
www.dcache.org
https://github.com/dCache/dcache

, .
# mount -overs=4.1 :/data /data

, , , openjdk dcache,
/etc/dcache/layouts/single.conf :
dcache.broker.host= :
# dcache pool create /srv/dcache pool2 pool2Domain

, .

To steal and contribute code
dCache- , , AGPL, LGPL BSD.

:
www.dcache.org
https://github.com/dCache/dcache

, .
# mount -overs=4.1 :/data /data

, , , openjdk dcache,
/etc/dcache/layouts/single.conf :
dcache.broker.host= :
# dcache pool create /srv/dcache pool2 pool2Domain

, .

To steal and contribute code
dCache- , , AGPL, LGPL BSD.

:
www.dcache.org
https://github.com/dCache/dcache

, .
# mount -overs=4.1 :/data /data

, , , openjdk dcache,
/etc/dcache/layouts/single.conf :
dcache.broker.host= :
# dcache pool create /srv/dcache pool2 pool2Domain

, .

To steal and contribute code
dCache- , , AGPL, LGPL BSD.

:
www.dcache.org
https://github.com/dCache/dcache

, .
# mount -overs=4.1 :/data /data

, , , openjdk dcache,
/etc/dcache/layouts/single.conf :
dcache.broker.host= :
# dcache pool create /srv/dcache pool2 pool2Domain

, .

To steal and contribute code
dCache- , , AGPL, LGPL BSD.

:
www.dcache.org
https://github.com/dCache/dcache

, .

Source: https://habr.com/ru/post/196584/


All Articles