Hyppää sisältöön

Significant changes to Puhti & Mahti authentication coming in April! Read about the SSH key and multi-factor authentication requirements.

Allaksen käyttö Rclonella

Tämä luku sisältää ohjeet Allaksen käyttämiseen Rclonen kanssa Puhti- ja Mahti-laskentaympäristöissä. Rclone tarjoaa erittäin tehokkaan ja monipuolisen tavan käyttää Allasta ja muita objektitallennuspalveluja. Se pystyy käyttämään sekä S3- että Swift-protokollia (ja monia muita). Tällä hetkellä CSC-palvelimissa Swift-protokolla on oletusvaihtoehto.

VAROITUS: Rclonella ei tulisi kopioida, siirtää tai nimetä uudelleen objekteja Allaksen sisällä. Rclone tarjoaa komentoja näihin toimenpiteisiin, mutta ne eivät toimi oikein yli 5 GB kokoisille tiedostoille.

VAROITUS: Jos Rclone-datan latausprosessi yli 5 GB kokoiselle tiedostolle keskeytyy, poista osittain ladattu objekti ennen uudelleen käynnistämistä. Muuten Rclone saattaa joskus ilmoittaa onnistuneesta datan latauksesta, vaikka kaikkea tietoa ei ole kopioitu Allakseen.

Rclonen perussyntaksi:

rclone käsky vaihtoehdot lähde:polku kohde:polku 

Useimmiten käytetyt Rclone-komennot:

  • rclone copy – Kopioi tiedostoja lähteestä kohteeseen, ohittaa jo kopioituja.
  • rclone sync – Tekee lähteestä ja kohteesta identtisiä, muokkaa vain kohdetta.
  • rclone move – Siirtää tiedostoja lähteestä kohteeseen.
  • rclone delete – Poistaa sisällön polusta.
  • rclone mkdir – Luo polun, jos se ei jo ole olemassa.
  • rclone rmdir – Poistaa polun.
  • rclone check – Tarkistaa, vastaavatko tiedostot lähteissä ja kohteissa.
  • rclone ls – Listaa kaikki objektit polussa, mukaan lukien koko ja polku.
  • rclone lsd – Listaa kaikki hakemistot/säiliöt/sanko polussa.
  • rclone lsl – Listaa kaikki objektit polussa, mukaan lukien koko, muokkausaika ja polku.
  • rclone lsf – Listaa objektit virtuaalisen hakemistorakenteen mukaisesti objektin nimien perusteella.
  • rclone cat – Yhdistää tiedostot ja lähettää ne stdout:lle.
  • rclone copyto – Kopioi tiedostoja lähteestä kohteeseen, ohittaa jo kopioituja.
  • rclone moveto – Siirtää tiedoston tai hakemiston lähteestä kohteeseen.
  • rclone copyurl – Kopioi URL:n sisällön kohteeseen tallentamatta sitä tmp-tallennukseen.

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

Autentikointi

Ensimmäinen askel on autentikoitua projektiin Allaksessa. Rclone voi käyttää sekä Swift- että S3-protokollia, mutta näillä yhteyksillä on eri nimet rclone-komennoissa.

Tässä dokumentissa kuvataan, miten Rclonea käytetään CSC:n laskentaympäristössä (Puhti ja Mahti). Voit käyttää rclonea myös paikallisella tietokoneellasi. Ohjeet paikallisesti asennetun Rclonen konfigurointiin ovat täällä

Rclone Swift-protokollalla CSC:n supertietokoneilla

Allaksen oletusprotokolla on Swift. Puhti- ja Mahti-ympäristöissä Swift-pohjainen Allas-yhteys aktivoidaan komentoja käyttäen:

module load allas
allas-conf
allas-conf-komento pyytää CSC-salasanaasi (yliopiston/Haka-salasana ei toimi tässä). Se listaa projektisi Allaksessa ja pyytää määrittämään käytettävän projektin. Sitten allas-conf luo Rclone-konfiguraatiotiedoston Allas-palvelulle ja autentikoi yhteyden valittuun projektiin. Rclone-komennossa tämä Swift-pohjainen yhteys mainitaan etäyhteyden nimellä allas:. Autentikointitiedot tallennetaan kuori- muuttujissa OS_AUTH_TOKEN ja OS_STORAGE_URL, jotka ovat voimassa jopa kahdeksan tuntia. Kuitenkin, voit päivittää autentikoinnin milloin vain suorittamalla allas-conf uudelleen. Ympäristömuuttujat ovat saatavilla vain kyseiselle sisäänkirjautumissessioille, joten jos kirjaudut Puhdille toisessa istunnossa, sinun on autentikoiduttava uudelleen päästäksesi Allakseen.

Rclone S3-protokollalla CSC:n supertietokoneilla

Jos haluat käyttää Allasta S3-protokollalla, suorita allas-conf-komento --mode S3 -valinnalla.

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äyhteyden nimellä s3allas:. Alla olevissa esimerkeissä käytetään Swift-pohjaista allas:-etämääritelmää, mutta jos olet määrittänyt S3-yhteyden, voit korvata sen s3allas:. Huomaa, että voit käyttää samanaikaisesti sekä allas: että s3allas: ja että ne voivat silti käyttää eri Allas-projekteja. Vältä kuitenkin protokollien sekoittamista. Jos objekti ladataan käyttäen allas:, tee myös kaikki toiminnot allas: kanssa.

Luo sankoja ja lataa objekteja

Allaksen data on järjestetty kontteihin, joita kutsutaan sankoiksi. Voit pitää niitä juuritason hakemistoina. Kaikilla sankoilla Allaksessa on oltava yksilölliset nimet – et voi luoda sankoa, jos joku muu projekti on jo käyttänyt kyseistä sankonimeä. On hyvä nyrkkisääntö lisätä jotain projekti- tai käyttäjäkohtaista sankonimeen kuten 2000620-raw-data. Katso tarkistuslistan ohjeet kuinka nimetä sanko.

Rclonella: luodaan sanko:

rclone mkdir allas:2000620-raw-data
Ladataksesi tiedoston käytä komentoa rclone copy:
rclone copy file.dat allas:2000620-raw-data/
Yllä oleva komento luo objektin file.dat sankoon 2000620-raw-data. Jos käytät rclone move sen sijaan että rclone copy, ladatun tiedoston (file.dat) paikallinen versio poistetaan kopioinnin jälkeen.

copy ja move käskyt toimivat vain tiedostoilla. Jos haluat kopioida kaikki tiedostot hakemistosta, käytä copyto tai moveto käskyjä.

Latauksen aikana, tiedostot jotka ovat suurempia kuin 5 GB pilkotaan ja tallennetaan useiksi objekteiksi. Objektit tallennetaan automaattisesti erilliseen sankoon nimeltä <sanko-nimi>_segments. Esimerkiksi, jos lataisit suuren tiedoston 2000620-raw-data, todellinen data tallennetaan useiksi paloiksi sankoon 2000620-raw-data_segments. Kohdesanko (2000620-raw-data) sisältää vain manifesti-objektin, joka kertoo mitkä segmentit muodostavat tallennetun tiedoston. Toimet manifesti-objektissa heijastuvat automaattisesti segmentteihin. Normaalisti käyttäjien ei tarvitse käsitellä segmentti-sankoja lainkaan, ja näiden sankojen sisällä olevia objekteja ei pitäisi poistaa tai muokata.

Listaa sankoja ja objekteja

Listaa kaikki projektiin kuuluvat sangot:

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

Listaa sankon 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 sisällytät kohdeparametrin latauskomentoon, 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

Kansion synkronointi

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

Esimerkiksi kansiolla nimeltä mydata on seuraava rakenne:

ls -R mydata

mydata/:
file1.txt  setA  setB

mydata/setA:
file2.txt

mydata/setB:
file3.txt  file4.txt

Esimerkki sync:in käyttämisestä (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 samalla poistamme 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 kohteena jota muutetaan. Komentoa voidaan käyttää myös toiseen suuntaan:

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

Tämä komento palauttaa ladatun datan Allaksesta mydata-kansioon. Huomaa kuitenkin, että jos olet lisännyt uusia tietoja mydata:an synkronoinnin jälkeen Allaksen kanssa, nämä tiedot poistetaan.