17/09/2014 - Come trasferire i dati da /gpor_* a /gporq1_*

In vista della fine della manutenzione (dal 21/11/2014) del sistema di storage GPFS di CRESCO1/2  (file system /gpor_*) consigliamo agli utenti di trasferire i dati di cui si vuole la salvaguardia sui sistemi di storage GPFS di CRESCO3/4 (file system /gporq1_*).

Le linee guida per il trasferimento sono le seguenti:

a) valutare la quota occupata su /gpor_* che si vuole  trasferire su /gporq1_*

b) valutare se c'è abbastanza quota disponibile sul file system di destinazione /gporq1_*

c) se non c'è abbastanza spazio su /gporq1_* richiedere  la allocazione della quota necessaria per trasferire i dati agli amministratori via ticketing https://gridticket.enea.it/index.php

ATTENZIONE: aprire il ticket solo in caso di effettiva necessità di spazio su /gporq1_*

d) trasferire i dati dopo aver ricevuto dagli amministratori  la comunicazione della avvenuta allocazione della quota.

Di seguito si indicano le modalità per valutare la quota dati da trasferire e alcuni strumenti per poter effettuare il trasferimento.

Come vedere la quota occupata
=========================

Per vedere la quota disco TOTALE che si sta occupando su un file system /gpor* si può usare il comando "mmlsquota" con la sintassi

mmlsquota device

dove il nome del device del file system si può ricavare dall'output del comando "df" che fa vedere tutti i file system.

Per esempio, per sapere il nome del device del file system /gpor_user si può fare

df | grep "/gpor_user" | awk '{print $1}'

che fornisce

/dev/vsd_gpor_user

L'output del comando

mmlsquota   /dev/vsd_gpor_user

è (solo la parte che interessa)

Filesystem type         KB         quota      limit
vsd_gpor_user USR   2984524288  3670016000  3774873600


e mostra, in KB, la quota TOTALE occupata dall'utente (2984524288) e i limiti soft (3670016000) e hard (3774873600) stabiliti dagli amministratori.

Si ricorda che la quota massima a disposizione è il limite hard. Il limite soft è una soglia "di sicurezza" per la gestione delle quote disco e si può superare per 7 giorni consecutivi dopodiché, se non ci si riporta al di sotto, il file system si blocca.

Pertanto, è opportuno aprire il ticket per chiedere l'allocazione di spazio solo se la quantità di dati da trasferire supera il limite soft.

***

Per conoscere la quota PARZIALE occupata dal contenuto di una directory si può usare il comando "du".

Per esempio, la quota occupata dalla directory "dir1" il cui path è /gpor_user/usr/userid/dir1 si può sapere dando

du -sh /gpor_user/usr/userid/dir1

Se dir1 contiene la sottodirectory dir2, il comando

du -sh /gpor_user/usr/userid/dir1/dir2

fa vedere solo la quota occupata da dir2.

Come trasferire i dati
======================

Per sfruttare meglio la banda della rete si consiglia di effettuare le operazioni di trasferimento dati da un frontend di CRESCO3/4.
Inoltre ricordiamo che, ai fini di ottenere prestazioni migliori,

il file system /gporq1_1M (block size 1 MB) è indicato per file di dimensione >= 1 MB

il file system /gporq1_256k (block size 256 KB) è indicato per file di dimensione < 1 MB

Vi sono diversi strumenti per effettuare il trasferimento dei dati. Di seguito se ne consigliano un paio: "cp" e "rsync". La differenza principale è che se il trasferimento si interrompe per qualche ragione "cp" copia di nuovo tutti i dati dal principio, mentre "rsync" fa un controllo e se trova dati già copiati allora non li ricopia. Quindi "rsync" è più indicato per la copia di grosse quantità di dati.

ATTENZIONE: si consiglia di utilizzare i comandi per trasferire i dati in background in modo che se si chiude la sessione di lavoro (volontariamente o per accidente) il trasferimento dati continua. Si possono mandare i comandi in background usando "nohup" come spiegato di seguito.

***

Il comando "cp" fornisce diverse opzioni (vedere il manuale). Per esempio, per copiare la directory dir1 il cui path è /gpor_user/usr/userid/dir1 su /gporq1_1M/usr/userid/ si può dare

nohup cp -a  /gpor_user/usr/userid/dir1/   /gporq1_1M/usr/userid/ > cp.log 2>&1 &

ATTENZIONE: prendere nota del PID del processo per monitorare il trasferimento.

Si noti l'opzione:

-a, copia ricorsiva, preservazione delle informazione sui metadati (data di accesso, di modifica, permessi).

Per vedere se il trasferimento è ancora in corso si può dare il comando

top -p PID

L'output del comando è raccolto nel file cp.log

***

Anche "rsync" ha molte opzioni (vedere il manuale). Per esempio, per copiare la directory dir1 il cui path è /gpor_user/usr/userid/dir1 su /gporq1_1M/usr/userid/ si può dare

nohup rsync -av  /gpor_user/usr/userid/dir1 /gporq1_1M/usr/userid/ > rsync.log 2>&1 &


ATTENZIONE: se si vuole che la directory "dir1" venga creata in /gporq1_1M/usr/userid/ allora NON va scritto lo slash (/) dopo "dir1"nel path di partenza. Se invece del comando di prima si dà ("/" dopo "dir1")

nohup rsync -avz /gpor_user/usr/userid/dir1/ /gporq1_1M/usr/userid/ > rsync.log 2>&1 &

allora "dir1" NON viene creata in /gporq1_1M/usr/userid/ ma vengono ivi copiati tutti i suoi file e sottodirectory (le sottodirectory verranno create).

ATTENZIONE: prendere nota del PID del processo per monitorare il trasferimento.

Si notino le opzioni:

-a, per la copia ricorsiva e la preservazione di  tutte le informazioni sui metadati;

-v, verbosità;


Per vedere se il trasferimento è ancora in corso si può dare il comando

top -p PID

L'output del comando è raccolto nel file rsync.log

Saluti
gli amministartori CRESCO