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:
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.
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:
Ladataksesi tiedoston käytä komentoarclone copy
:
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:
Jos sisällytät kohdeparametrin latauskomentoon, Rclone luo hakemiston latausta varten:
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 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:
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.