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.

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

SSH keys are required to connect to Puhti and Mahti over SSH

Since April 14th 2025, connecting to Puhti and Mahti over SSH only works using SSH keys added in MyCSC. Password authentication and public keys stored in users' personal ~/.ssh/authorized_keys file on the supercomputer no longer works.

Read the detailed instructions on setting up and using SSH keys.

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ä.

Yleisiä tietoja tarista löydät kohdasta 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-avaintiedostosi muulla kuin oletusnimellä tai muuhun kuin oletussijaintiin (eli muualle kuin ~/.ssh/id_<algorithm>), sinun on määritettävä, mistä ssh etsii avainta käyttämällä -i-valitsinta, esimerkiksi:

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

Tämän sivun loppuosassa oletetaan, että avain on tallennettu oletussijaintiin vakiomuotoisella nimellä, joten -i-valitsin on jätetty pois.

Jos haluat purkaa 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 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

Jos haluat purkaa 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), jos haluat ottaa gzip- tai bzip2-pakkauksen (purkamisen) käyttöön. Huomaa, että jotkin tiedostot eivät hyödy pakkauksesta (esimerkiksi binaaritiedostot tai jo valmiiksi pakatut tiedostot), jolloin siirto on nopeampaa ilman pakkausta.

Vältä laveaa tulostusta

v-valitsimen lisääminen (esimerkiksi tar czv) tuottaa lavean tulostuksen, eli käsiteltävät tiedostot listataan 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 on oltava pääsy niihin SSH-avaimiin, jotka olet määrittänyt paikallisella työasemallasi CSC:n supertietokoneisiin tunnistautumista varten. Tämä tehdään välittämällä SSH-agenttisi siihen supertietokoneeseen, johon muodostat yhteyden ensin.

Tämän jälkeen dataa voidaan siirtää suoraan CSC:n supertietokoneiden välillä käyttämällä 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. Kunkin tiedoston koko on 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