Storage5k: Difference between revisions

From Grid5000
Jump to navigation Jump to search
No edit summary
(Redirected page to Unmaintained:Storage5k)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
{{Maintainer|Nicolas Niclausse}}
#REDIRECT [[Unmaintained:Storage5k]]
{{Portal|User}}
{{Status|In production}}
{{StorageHeader}}
 
[[Storage5k]] is a tool for the reservation of large storage, providing much more space than the one available in a user's /home. Contrary to other resource reservations in Grid'5000, the duration of a storage5k reservation is not limited, allowing data to be used in long term experiments.
 
The storage reserved by storage5k is accessible on Grid'5000 nodes, using NFS mounts. Some mechanisms are provided to make this storage directly available on your nodes reserved on the same site as the storage, or to mount it in deployed nodes.
 
{{Warning|text=Storage5k provides long term storage for experimentations, but not data integrity is guaranteed. '''Stored data may get lost due to incident or any other reason''' (like an unexpected end of reservation). '''You MUST backup important data'''.}}
 
{{Warning|text=Storage5k uses to export volumes though the iSCSI protocol, but this functionality is not available anymore. Only NFS is provided}}
== Storage5k resources pool ==
 
No all sites provides storage5k volumes. The following tables give the volumes per site:
 
{{Template:Storage5k_resources}}
 
== Usage ==
 
The Storage5k tool is available on Grid'5000 frontends. You can check if the <code class="command">storage5k</code> command is installed by running:
 
<code class="host">frontend: </code><code class="command">storage5k</code> -v
 
An individual Storage5k resource is called a "chunk", and represents the smallest allocatable unit of storage. A typical chunk size is 10GB but it may vary among Grid'5000 sites. To display the chunks size, use the following command:
 
<code class="host">frontend: </code><code class="command">storage5k</code> -a chunk_size
 
=== Reservation ===
Let's say that you need 50GB of space during one day to carry out your experiment. To reserve this storage, use:
 
<code class="host">frontend: </code><code class="command">storage5k</code> -a add -l chunks=<code class="replace">number</code>,walltime=24
 
You can get information on your reserved storage with:
 
<code class="host">frontend: </code><code class="command">storage5k</code> -a info
 
Note the '''Job_Id''' field. Actually, a Storage5k reservation is an OAR job ! You can use any of the OAR tools, such as:
 
<code class="host">frontend: </code><code class="command">oarstat</code> -f -j <code class="replace">storage_job_id</code>
 
An other important field is '''Source nfs'''. It displays the NFS mount point where your storage is exported. Note that your storage is already available from the frontend:
 
<code class="host">frontend: </code><code class="command">ls</code> /data/<code class="replace">username</code>_<code class="replace">storage_job_id</code>
<code class="host">frontend: </code><code class="command">cp</code> <code class="replace">my_big_data</code> /data/<code class="replace">username</code>_<code class="replace">storage_job_id</code>/
 
=== Access to the storage ===
Nodes you reserve will automatically have access to the storage. For instance, try this:
 
<code class="host">frontend: </code><code class="command">oarsub</code> -l nodes=3 -I
<code class="host">node: </code><code class="command">ls</code> /data/<code class="replace">username</code>_<code class="replace">storage_job_id</code>/
lost+found my_big_data
<code class="host">node: </code><code class="command">oarsh</code> <code class="replace">othernode</code>
<code class="host">othernode: </code><code class="command">ls</code> /data/<code class="replace">username</code>_<code class="replace">storage_job_id</code>/
lost+found my_big_data
 
=== Access in deploy jobs ===
 
Though there is an exception: Deployed nodes do not mount your reserved storage by default. Let's try:
 
<code class="host">frontend: </code><code class="command">oarsub</code> -l nodes=3 -t deploy -I
<code class="host">frontend: </code><code class="command">kadeploy3</code> -e debian9-x64-nfs -f $OAR_NODE_FILE -k
<code class="host">frontend: </code><code class="command">ssh</code> <code class="replace">node</code>
<code class="host">node: </code><code class="command">ls</code> /data
ls: cannot access /data: No such file or directory
<code class="host">node: </code><code class="command">exit</code>
 
For this situation, Storage5k provides you with a way to mount the reserved space into your nodes. This command will mount your storage in all the nodes belonging to the job <code class="replace">nodes_job_id</code>
 
<code class="host">frontend: </code><code class="command">storage5k</code> -a mount -j <code class="replace">nodes_job_id</code>
<code class="host">frontend: </code><code class="command">ssh</code> <code class="replace">node</code>
<code class="host">node: </code><code class="command">ls</code> /data/<code class="replace">username</code>_<code class="replace">storage_job_id</code>/
lost+found my_big_data
 
You can umount storage with:
 
<code class="host">frontend: </code><code class="command">storage5k</code> -a umount -j <code class="replace">nodes_job_id</code>
 
=== Manual setup of the access ===
 
With the knowledge of the '''Source nfs''' entry, you can manually mount your storage as well:
 
<code class="host">frontend: </code><code class="command">ssh</code> root@<code class="replace">node</code>  #As root
root@<code class="host">node: </code><code class="command">mount</code> storage5k.lyon.grid5000.fr:/data/<code class="replace">username_storage_job_id</code> /mnt
root@<code class="host">node: </code><code class="command">exit</code>
<code class="host">frontend: </code><code class="command">ssh </code><code class="replace">node</code>        #As normal user
<code class="host">node: </code><code class="command">ls</code> /mnt/
lost+found my_big_data
<code class="host">node: </code><code class="command">exit</code>
 
{{Warning|text=Accessing storage in deployed nodes requires the <code>nfs-common</code> package. It is included by default in the <code>nfs</code>, <code>big</code> and <code>std</code> environments}}

Latest revision as of 10:30, 22 October 2019