Hyppää sisältöön

Welcome to our weekly research support coffee hour on Zoom! Click here for more information.

Warning!

Puhti scratch disk is becoming very full (80+ % ) resulting in performance degradation. Everybody is advised to only keep actively processed data on scratch, all other data should be deleted, transferred to host institute or stored in Lumi-O. No new quota will be granted. Click here for a tool for examining your disk usage.

Allaksen käyttö Rclonella

Tässä luvussa annetaan ohjeet Allaksen käyttöön Rclonella Puhdin ja Mahdin laskentaympäristöissä. Rclone tarjoaa erittäin tehokkaan ja monipuolisen tavan käyttää Allasta ja muita objektiliikennepalveluja. Se osaa käyttää sekä S3- että Swift-protokollia (sekä monia muita). Tällä hetkellä Swift-protokolla on CSC:n palvelimilla oletusvaihtoehto.

VAROITUS: Rclonea ei tule käyttää objektien kopiointiin, siirtämiseen tai uudelleennimeämiseen Allaksen sisällä. Rclone tarjoaa komennot näihin toimintoihin, mutta ne eivät toimi oikein yli 5 GB:n tiedostoille.

VAROITUS: Jos yli 5 GB:n tiedoston rclone-lataus palveluun keskeytyy, poista osittain ladattu objekti ennen latauksen käynnistämistä uudelleen. Muuten rclone ilmoittaa joskus onnistuneesta datan latauksesta palveluun, vaikka kaikkea dataa ei ole kopioitu Allakseen.

Rclonen perussyntaksi:

rclone alikomento valitsimet lähde:polku kohde:polku 

Yleisimmin käytetyt Rclone-komennot:

  • rclone copy – Kopioi tiedostoja lähteestä kohteeseen ohittaen jo kopioidut tiedostot.
  • rclone sync – Tekee lähteestä ja kohteesta identtiset muokkaamalla vain kohdetta.
  • rclone move – Siirtää tiedostoja lähteestä kohteeseen.
  • rclone delete – Poistaa polun sisällön.
  • rclone mkdir – Luo polun, jos sitä ei vielä ole olemassa.
  • rclone rmdir – Poistaa polun.
  • rclone check – Tarkistaa, vastaavatko lähteen ja kohteen tiedostot toisiaan.
  • rclone ls – Listaa kaikki polun objektit, mukaan lukien koko ja polku.
  • rclone lsd – Listaa kaikki polun hakemistot/kontit/ämpärit.
  • rclone lsl – Listaa kaikki polun objektit, mukaan lukien koko, muokkausaika ja polku.
  • rclone lsf – Listaa objektit objektien nimiin perustuvaa virtuaalista hakemistorakennetta käyttäen.
  • rclone cat – Ketjuttaa tiedostot ja lähettää ne vakiotulosteeseen.
  • rclone copyto – Kopioi tiedostoja lähteestä kohteeseen ohittaen jo kopioidut tiedostot.
  • rclone moveto – Siirtää tiedoston tai hakemiston lähteestä kohteeseen.
  • rclone copyurl – Kopioi URL-osoitteen sisällön kohteeseen tallentamatta sitä tmp-tallennustilaan.

Laajempi luettelo löytyy Rclonen manuaalisivuilta tai kirjoittamalla komento rclone Puhdissa.

Tunnistautuminen CSC:n supertietokoneilla

Alla kuvaamme, miten Rclonea käytetään CSC:n laskentaympäristössä (Puhti ja Mahti). Voit käyttää Rclonea myös omalla tietokoneellasi.

Ensimmäinen vaihe on määrittää yhteys Allaksen projektiin. Rclone voi käyttää sekä Swift- että S3-protokollia, mutta näillä yhteyksillä on eri nimet rclone-komennoissa.

allas-conf sisältää lisätietoja ja lisävalintoja.

Rclone Swiftin kanssa

Allaksen oletusprotokolla on Swift. Puhdissa ja Mahdissa Swift-pohjainen Allas-yhteys aktivoidaan komennoilla:

module load allas
allas-conf
Rclone-komennoissa tähän Swift-pohjaiseen yhteyteen viitataan etänimellä allas:.

Rclone S3:n kanssa

Jos haluat käyttää Allasta S3-protokollalla, suorita:

module load allas
allas-conf --mode S3
Tämä komento avaa pysyvän S3-pohjaisen yhteyden Allakseen. Rclone voi nyt viitata tähän yhteyteen etänimellä s3allas:. Alla olevissa esimerkeissä käytetään Swift-pohjaista allas:-etämäärittelyä, mutta jos olet määrittänyt S3-yhteyden, voit korvata sen määrittelyllä s3allas:.

Huomaa, että sekä allas: että s3allas: voivat toimia samanaikaisesti ja että ne voivat silti käyttää eri Allas-projekteja. Protokollien sekoittamista kannattaa kuitenkin välttää. Jos objekti ladataan palveluun käyttäen allas:, tee myös kaikki muut toiminnot käyttäen allas:.

Luo ämpäreitä ja lataa objekteja palveluun

Allaksen data on järjestetty kontteihin, joita kutsutaan ämpäreiksi. Niitä voi ajatella juuritason hakemistoina. Kaikkien Allaksen ämpäreiden nimien on oltava yksilöllisiä – et voi luoda ämpäriä, jos jokin toinen projekti on jo käyttänyt samaa nimeä. Hyvä nyrkkisääntö on sisällyttää ämpärin nimeen jotain projekti- tai käyttäjäkohtaista, esimerkiksi 2000620-raw-data. Katso tarkistuslista, miten ämpäri nimetään.

Rclonella ämpäri luodaan näin:

rclone mkdir allas:2000620-raw-data
Lataa tiedosto palveluun komennolla rclone copy:
rclone copy file.dat allas:2000620-raw-data/
Yllä oleva komento luo objektin file.dat ämpäriin 2000620-raw-data. Jos käytät komentoa rclone move komennon rclone copy sijasta, ladatun tiedoston paikallinen versio (file.dat) poistetaan kopioinnin jälkeen.

_ copy_- ja move-alikomennot toimivat vain tiedostojen kanssa. Jos haluat kopioida kaikki hakemiston tiedostot, käytä copyto- tai moveto-alikomentoja.

Latauksen aikana yli 5 GB:n tiedostot pilkotaan ja tallennetaan useina objekteina. Objektit tallennetaan automaattisesti erilliseen ämpäriin nimeltä <bucket-name>_segments. Jos esimerkiksi lataisit suuren tiedoston palveluun ämpäriin 2000620-raw-data, varsinainen data tallennettaisiin useina osina ämpäriin 2000620-raw-data_segments. Kohdeämpäri (2000620-raw-data) sisältäisi vain manifestiobjektin, joka kertoo, mistä segmenteistä tallennettu tiedosto koostuu. Manifestiobjektille tehdyt toiminnot heijastuvat automaattisesti segmentteihin. Tavallisesti käyttäjien ei tarvitse käsitellä segmenttiämpäreitä lainkaan, eikä näiden ämpäreiden sisällä olevia objekteja pidä poistaa tai muokata.

Listaa ämpärit ja objektit

Listaa kaikki projektiin kuuluvat ämpärit:

rclone lsd allas:
0 2019-06-06 14:43:40         0 2000620-raw-data

Listaa ämpärin sisältö:

rclone ls allas:2000620-raw-data
677972 file.dat

Lataa objekteja

Käytä samoja rclone copy- ja rclone copyto -komentoja tiedoston lataamiseen:

rclone copy allas:2000620-raw-data/file.dat

Jos lisäät latauskomentoon kohdeparametrin, Rclone luo hakemiston latausta varten:

rclone copy allas:2000620-raw-data/file.dat doh

ls doh
file.dat
ls -ld doh
drwxr-xr-x  3 user  staff  96 Jun  6 14:58 doh

Hakemiston synkronointi

Yksi tapa siirtää dataa Allaksen ja laskentaympäristön välillä on synkronointi. Kopioinnin ja synkronoinnin ero on se, että kopiointi lisää vain uusia objekteja tai tiedostoja lähteestä kohteeseen, kun taas synkronointi voi myös poistaa dataa kohteesta, jotta kohde vastaisi lähdettä. Tämä ominaisuus tekee synkronoinnista erittäin tehokkaan mutta myös mahdollisesti hyvin vaarallisen.

Esimerkiksi kansiolla mydata on seuraava rakenne:

ls -R mydata

mydata/:
file1.txt  setA  setB

mydata/setA:
file2.txt

mydata/setB:
file3.txt  file4.txt

Esimerkki sync-komennon käytöstä (huomaa, että kohdeparametri vaatii kansion nimen (mydata)):

rclone sync mydata allas:2000620-raw-data/mydata
rclone ls allas:2000620-raw-data
   677972 mydata/file1.txt
    10927 mydata/setA/file2.txt
     1116 mydata/setB/file3.txt
     5075 mydata/setB/file4.txt

Oletetaan, että tallennamme uutta dataa (file5.txt ja file6.txt) alihakemistoon mydata/setC ja poistamme samanaikaisesti tiedoston mydata/setB/file3.txt. Kun rclone sync -komento suoritetaan uudelleen, uusi data lisätään Allakseen ja objekti mydata/setB/file3.txt poistetaan.

rclone sync mydata allas:2000620-raw-data/mydata

rclone ls allas:2000620-raw-data
   677972 mydata/file1.txt
    10927 mydata/setA/file2.txt
     5075 mydata/setB/file4.txt
     1265 mydata/setC/file5.txt
     4327 mydata/setC/file6.txt

Yllä olevissa esimerkeissä Allasta on käytetty muuttuvana kohteena. Komentoa voidaan kuitenkin käyttää myös päinvastaiseen suuntaan:

rclone sync allas:2000620-raw-data/mydata mydata

Tämä komento palauttaa palveluun ladatun datan Allaksesta hakemistoon mydata. Huomaa kuitenkin, että jos olet lisännyt uutta dataa hakemistoon mydata sen jälkeen, kun hakemisto synkronoitiin Allaksen kanssa, tämä data poistetaan.

Tiedostojen kopiointi suoraan objektitallennusten välillä

Rclonea voidaan käyttää myös tiedostojen kopiointiin suoraan toisesta objektitallennuksesta (esim. Amazon S3, Google cloud, CREODIAS,...) Allakseen. Tätä varten molempien palvelujen tunnistetiedot on tallennettava käyttäjän kotihakemistossa olevaan Rclonen asetustiedostoon (.config/rclone/rclone.conf). Esimerkki on alla:

[s3allas]
type = s3
provider = Other
env_auth = false
access_key_id = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
secret_access_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
endpoint = a3s.fi
acl = private

[otherobjectstorage]
type = s3
provider = Other
env_auth = false
access_key_id = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
secret_access_key = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
endpoint = yourotherendpoint.com
acl = private
Allaksen määritys lisätään automaattisesti, kun Allas määritetään s3-tilassa

source allas_conf --mode s3cmd .

Tämän tiedoston luomisen tai päivittämisen jälkeen Rclonea voidaan käyttää tiedostojen kopiointiin

rclone copy otherobjectstorage:bucket-x/object-y s3allas:bucket-z/object-a

tai tiedostojen listaamiseen joko Allaksesta tai toisesta objektitallennuksesta käyttämällä vastaavaa nimeä

rclone lsf otherobjectstorage:.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta