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.
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:
Esimerkiksi komento, jolla hakemisto myfiles kopioidaan paikalliselta koneeltasi
hakemistoon /scratch/project_2001234 Roihussa, on:
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:
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:
Jos haluat purkaa arkiston samalla kertaa:
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 |