Hyppää sisältöön

Tarin käyttö 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 huomattavasti 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 löytyy sivulta Pakkaus- ja pakkaustyökalut.

Esimerkkejä

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

Kaikki seuraavat komennot suoritetaan paikallisella työasemalla, johon oletetaan asennetun tarvittavat työkalut (tar, ssh ja valinnaisesti gzip/bzip2). Roihua käytetään esimerkkietäpalvelimena.

Yleinen syntaksi on:

tar c <directory_to_transfer> | ssh <username>@roihu-cpu.csc.fi 'cat > <target_path_on_roihu>'

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

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

Huomaa

Jos olet tallentanut SSH-avaimesi tai sertifikaattitiedostosi 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 sertifikaatti on tallennettu oletussijaintiin tavanomaisilla nimillä, joten -i-valitsin on jätetty pois. Huomaa, että SSH-sertifikaatteja vaaditaan vain Roihuun yhdistettäessä.

Jos haluat purkaa tar-arkiston samalla kertaa, korvaa cat-komento seuraavasti:

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

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

ssh <username>@roihu-cpu.csc.fi 'tar c -C <parent_directory_on_roihu> <directory_to_transfer>' > <archive_on_local_machine>

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

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

Jos haluat purkaa arkiston samalla kertaa:

ssh <username>@roihu-cpu.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 käyttää gzip- tai bzip2-pakkausta (purkua). Huomaa, että jotkin tiedostot eivät hyödy pakkauksesta (esimerkiksi binääritiedostot 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äsiteltävät 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ä, sinun täytyy pystyä käyttämään niitä SSH-avaimia, jotka olet määrittänyt paikallisella työasemallasi todennusta varten CSC:n supertietokoneille. Roihua varten tarvitaan lisäksi voimassa oleva SSH-sertifikaatti. Tämä tehdään välittämällä SSH-agenttisi, mukaan lukien SSH-avaimesi (ja sertifikaatti), siihen supertietokoneeseen, johon yhdistät ensin.

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

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

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

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

Suorituskykyvertailu

Alla on karkea vertailu ajasta, joka kuluu hakemiston, jossa on paljon pieniä tiedostoja, siirtämiseen Roihuun. 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

Onko tämä sivu hyödyllinen?
Kiitos palautteestasi!
Kiitos! Arvostamme palautettasi.

Kerro meille miten voisimme parantaa tätä sivua ottamalla meihin yhteyttä .