Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti are being decommissioned in stages, and their storage areas will become fully unavailable from 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

Tarin käyttäminen SSH:n yli monien tiedostojen siirtämiseen

SSH certificates are required to connect to Roihu over SSH

To connect to Roihu, users must sign their public key in MyCSC to obtain a time-based SSH certificate. Each certificate is valid for 24 hours, and once it expires, a new one must be generated by signing the public key again.

Read the detailed instructions on signing your public key.

Linux-työkaluja, kuten scp ja rsync, käytetään yleisesti tiedostojen siirtämiseen etäpalvelimen ja paikallisen koneen välillä. Nämä työkalut eivät kuitenkaan ole kovin käytännöllisiä, kun siirretään paljon pieniä tiedostoja.

Yksinkertainen ja paljon nopeampi ratkaisu on kirjoittaa dataa sisältävä (pakattu) tar-paketti suoraan kohdejärjestelmään. Tämä tehdään ohjaamalla tar-komennon tuloste putken kautta ssh-yhteyden yli. Arkiston kirjoittaminen suoraan kohteeseen auttaa myös säästämään levytilaa lähdejärjestelmässä.

Yleistä tietoa tarista on sivulla Pakkaus- ja pakkaustyökalut.

Esimerkkejä

Datan siirtäminen paikallisen tietokoneesi ja Puhdin välillä

Kaikki seuraavat komennot suoritetaan paikallisella työasemalla, jossa oletetaan olevan tarvittavat työkalut (tar, ssh ja valinnaisesti gzip/bzip2) asennettuina. Puhtia käytetään etäpalvelinesimerkkinä.

Yleinen syntaksi on:

tar c <directory_to_transfer> | ssh <username>@puhti.csc.fi 'cat > <target_path_on_puhti>'

Esimerkiksi komento, jolla kopioidaan hakemisto myfiles paikalliselta koneeltasi hakemistoon /scratch/project_2001234 Puhdissa, on:

tar c myfiles | ssh <username>@puhti.csc.fi 'cat > /scratch/project_2001234/myfiles.tar'

Huomaa

Jos olet tallentanut SSH-avaimesi tai varmennetiedostosi muulla kuin oletusnimellä tai muuhun kuin oletussijaintiin (jonnekin muualle kuin ~/.ssh/id_<algorithm> ja ~/.ssh/id_<algorithm>-cert.pub), sinun täytyy määrittää -i-valinnalla, mistä ssh etsii tiedostoja, esimerkiksi:

tar c myfiles | ssh -i <path_to_private_key> -i <path_to_certificate> <username>@<host> 'cat > /scratch/project_2001234/myfiles.tar'

Tämän sivun loppuosa olettaa, että avain ja varmenne on tallennettu oletussijaintiin tavanomaisilla nimillä, joten -i-lippu on jätetty pois. Huomaa, että SSH-varmenteita vaaditaan vain Roihuun yhdistettäessä.

Purkaaksesi tar-arkiston samalla kertaa korvaa cat-komento seuraavasti:

tar c myfiles | ssh <username>@puhti.csc.fi 'tar x -C /scratch/project_2001234'

Vastaavasti voit myös kopioida etäpalvelimella sijaitsevaa dataa paikalliselle koneellesi seuraavan kaltaisella komennolla:

ssh <username>@puhti.csc.fi 'tar c -C <parent_directory_on_puhti> <directory_to_transfer>' > <archive_on_local_machine>

Esimerkiksi komento, jolla kopioidaan kansio myfiles, joka sijaitsee hakemistossa /scratch/project_2001234, paikalliselle koneellesi, on:

ssh <username>@puhti.csc.fi 'tar c -C /scratch/project_2001234 myfiles' > myfiles.tar

Purkaaksesi arkiston samalla kertaa:

ssh <username>@puhti.csc.fi 'tar c -C /scratch/project_2001234 myfiles' | tar x

Ota pakkaus käyttöön

Yllä olevissa komennoissa ei käytetty pakkausta. Korvaa tar c (tar x) komennoilla tar cz tai tar cj (tar xz tai tar xj) ottaaksesi gzip- tai bzip2-pakkauksen (purkamisen) käyttöön. Huomaa, että jotkin tiedostot eivät hyödy pakkauksesta (esim. binaaritiedostot tai jo valmiiksi pakatut tiedostot), jolloin siirto on nopeampaa ilman pakkausta.

Vältä laveaa tulostusta

v-valinnan lisääminen (esim. tar czv) tuottaa lavean tulostuksen eli listaa käsitellyt tiedostot konsoliin. Tämä hidastaa siirtoprosessia, kun siirretään paljon pieniä tiedostoja, joten sen käyttöä kannattaa välttää.

Datan siirtäminen suoraan CSC:n supertietokoneiden välillä

Jotta voit siirtää dataa suoraan CSC:n supertietokoneiden välillä, sinulla täytyy olla pääsy paikallisella työasemallasi määrittämiisi SSH-avaimiin, joita käytetään CSC:n supertietokoneille tunnistautumiseen. Roihua varten tarvitaan lisäksi voimassa oleva SSH-varmenne. Tämä toteutetaan välittämällä SSH-agenttisi supertietokoneelle, johon yhdistät ensin, mukaan lukien SSH-avaimesi (ja varmenteesi).

Tämän jälkeen dataa voidaan siirtää suoraan CSC:n supertietokoneiden välillä käyttäen samaa syntaksia kuin yllä. Esimerkiksi komento, jolla siirretään hakemisto /scratch/project_2001234/myfiles Puhdista vastaavaan sijaintiin Mahdissa, on:

tar c -C /scratch/project_2001234 myfiles | ssh <username>@mahti.csc.fi 'cat > /scratch/project_2001234/myfiles.tar'

Sama voidaan tehdä myös työskenneltäessä Mahdissa seuraavasti:

ssh <username>@puhti.csc.fi 'tar c -C /scratch/project_2001234 myfiles' > /scratch/project_2001234/myfiles.tar

Suorituskykyvertailu

Alla on karkea vertailu ajasta, joka kuluu hakemiston, jossa on paljon pieniä tiedostoja, siirtämiseen Puhtiin. Kukin tiedosto on kooltaan 100 KiB eikä pakkausta käytetä.

Tiedostojen määrä tar + ssh scp
100 0.5 s 2.4 s
1000 1.3 s 20.5 s
10000 9.4 s 201.2 s

Lisätietoja

Suomenkielinen tekoälykäännös

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

Klikkaa tästä antaaksesi palautetta