Ohje Allaksen käyttöön Roihu-supertietokoneessa
Yksi Allaksen tärkeimmistä käyttötapauksista on datan säilyttäminen silloin, kun sitä ei käytetä aktiivisesti CSC:n supertietokoneilla. Kun aloitat työskentelyn, tuot datan Allaksesta käyttöön. Ja kun data ei ole enää aktiivisessa käytössä, se voidaan siirtää takaisin Altaaseen. Roihun scratch-levyalue mahdollistaa suurten aineistojen analysoinnin. Scratch-levyä ei kuitenkaan ole tarkoitettu tutkimusdatan pitkäaikaiseen säilytykseen. Data, jota täytyy säilyttää pidempään kuin vain muutamia viikkoja, kannattaa kopioida sen sijaan Allakseen tai LUMI-O-objektitallennuspalveluun. Allas tarjoaa alustan, jota voit käyttää datasi säilyttämiseen niin kauan kuin CSC-projektisi on aktiivinen. Tallennuksen lisäksi Allasta voidaan käyttää datan siirtämiseen eri palvelimien välillä ja datan jakamiseen muiden käyttäjien kanssa.
Jos et ole käyttänyt Allasta aiemmin, aloita lukemalla Allaksen yleisesittely, joka sisältää paljon tärkeitä huomioita.
Huomaa, että CSC:n laskentaprojekteilla ei ole automaattisesti pääsyä Allakseen. Projektin johtajan täytyy aktivoida Allas-palvelu MyCSC:ssä ennen kuin projekti voi alkaa käyttää Allasta. Allaksen esittelysivulla kerrotaan, miten tämä tehdään, sekä oletuskiintiöistä ja lisätallennustilan hakemisesta.
Lisätietoa aiheista:
Datan siirtämiseen Allaksen ja Roihun välillä on useita vaihtoehtoisia työkaluja. Voit käyttää Roihun selainkäyttöliittymää, komentorivityökaluja tai Python-, R- tai muita työkaluja. Roihussa Allaksen komentorivityökalut ovat CSC:n asentamia ja saatavilla allas-moduulin kautta.
Esimerkit
Tässä ohjeessa annetaan kolme esimerkkiä Allaksen käytöstä Roihussa. Nämä esimerkit perustuvat interaktiivisesti suoritettuihin komentoihin, joten esimerkit 1 ja 2 soveltuvat vain verrattain pienille aineistoille (enintään joitakin satoja gigatavuja). Kolmas esimerkki sopii myös suuremmille aineistoille.
- Ensimmäisessä esimerkissä käytetään
a-komentoja (
a-put,a-get) datan lataamiseen Roihusta Allakseen ja sitten datan lataamiseen takaisin Roihuun. - Toisessa esimerkissä siirretään sama data käyttäen Rclonea.
- Kolmannessa esimerkissä käsitellään tapausta, jossa kopioitava aineisto sisältää suuren määrän tiedostoja.
A-komennot soveltuvat paremmin tilanteisiin, joissa dataa käytetään pääasiassa CSC:n laskentaympäristössä (Roihu, Lumi). Toinen vaihtoehto, Rclone, on hyvä tilanteissa, joissa dataa käytetään myös CSC:n ulkopuolella. Huomaa, että s3cmd ja aws s3 ovat täysin käyttökelpoisia vaihtoehtoja rclonelle ja a-komennoille, vaikka niitä ei käytetä tässä ohjeessa.
Esimerkki 1: Allaksen käyttö a-komennoilla
A. Datan lataaminen Roihusta Allakseen
A-komennot ovat Allas-kohtaisia työkaluja, joiden avulla Allaksen käyttö on helppo aloittaa. A-komennot arkistoivat ja siirtävät datan automaattisesti. Voit myös pakata datan ennen tallennusta. Esimerkiksi tekstimuotoisessa datassa pakkaus vähentää tarvittavaa tallennustilaa, mutta toisaalta tekee siirtoprosessista hieman hitaamman. A-komennot ovat hyvä vaihtoehto sekalaiselle datalle, jota käytetään enimmäkseen CSC-ympäristössä.
Tässä esimerkissä meillä on alihakemisto genomes/zebrafish projektin scratch-hakemistossa
Roihussa (/scratch/project_2001659). Hakemisto zebrafish
sisältää alla luetellut kahdeksan tiedostoa:
[kkayttaj@roihu-cpu-login1 ~]$ ls /scratch/project_2001659/genomes/zebrafish
Danio_rerio.GRCz10.91.1.bt2 Danio_rerio.GRCz10.91.2.bt2
Danio_rerio.GRCz10.91.3.bt2 Danio_rerio.GRCz10.91.4.bt2
Danio_rerio.GRCz10.91.rev.1.bt2 Danio_rerio.GRCz10.91.rev.2.bt2
Danio_rerio.GRCz10.fa Danio_rerio.GRCz10.fa.fai
Kopioidaksemme tämän hakemiston sisällön Allakseen asetamme ensin Allas-ympäristön:
Sen jälkeen avaamme yhteyden Allakseen komennolla allas-conf. Komento
pyytää käyttäjän CSC-salasanaa ja listaa sitten käytettävissä olevat Allas-projektit.
Tässä tapauksessa valitsemme project_2001659.
[kkayttaj@roihu-cpu-login1 ~]$ allas-conf
Mode s3cmd
Please enter CSC password for account kkayttaj: <password>
Checking projects available for your account.
Please wait.
1) project_2000982 2) project_2001659 3) project_2000136 4) abort allas_conf
Please choose a project by giving an item number from the list above: 2
Configuration will be done for project: project_2001659
Protocols:
S3
s3cmd configuration updated
Remote endpoints configured for rclone
Rclone remote name Protocol
--------------------------------------------------------
s3allas: s3
s3allas-project_2001659: s3
--------------------------------------------------------
rclone remote s3allas: now provides an S3 based connection to project project_2001659 in Allas
aws client and s3cmd use now project_2001659
a-commands use now project_2001659 when used in S3 mode
allas-conf tallentaa S3-todennusavaimet kotihakemistoosi.
Jos haluamme alkaa käyttää toista projektia, meidän täytyy suorittaa allas-conf uudelleen.
Seuraavaksi siirrymme zebrafish-hakemistoon:
Voimme nyt ladata tiedostoja yksi kerrallaan Allakseen komennolla a-put:
Latausprosessin lopussa komento ilmoittaa:
-------------------------------------------------------------------------------
1 files from Danio_rerio.GRCz10.fa uploaded to bucket 2001659-mahti-SCRATCH in Allas as one file:
2001659-mahti-SCRATCH/genomes/zebrafish/Danio_rerio.GRCz10.fa
-----------------------------------------------------------------
Upload summary:
Date Name Files Size(kB) Location in allas
12.10.20 12:10:50 Danio_rerio.GRCz10.fa 1 1330852 2001659-mahti-SCRATCH/genomes/zebrafish
-----------------------------------------------------------------
OK
Datan siirtäminen Allakseen tiedosto kerrallaan on hidasta ja tuottaa suuren määrän
objekteja. Usein on tehokkaampaa ladata dataa Allakseen hakemisto kerrallaan ja tallentaa data suurempiin kokonaisuuksiin. Esimerkiksi zebrafish-hakemiston lataamiseksi siirrymme ensin
ylähakemistoon genomes:
Sen jälkeen käytämme a-put-komentoa ladataksemme koko zebrafish-hakemiston Allakseen
yhtenä objektina:
Latausprosessin lopussa komento ilmoittaa:
Files or directories to be uploaded: zebrafish/
Processing: zebrafish/
Checking total size of zebrafish. Please wait.
zebrafish contains 8 files or directories that take 2585920K of disk space
Collecting data from directory zebrafish to archive file: zebrafish.tar
zebrafish/
zebrafish/Danio_rerio.GRCz10.fa.fai
zebrafish/Danio_rerio.GRCz10.91.3.bt2
zebrafish/Danio_rerio.GRCz10.91.4.bt2
zebrafish/Danio_rerio.GRCz10.fa
zebrafish/Danio_rerio.GRCz10.91.rev.2.bt2
zebrafish/Danio_rerio.GRCz10.91.rev.1.bt2
zebrafish/Danio_rerio.GRCz10.91.2.bt2
zebrafish/Danio_rerio.GRCz10.91.1.bt2
Packing successful.
Uploading data to s3allas.
Transferred: 3.044 GiB / 3.044 GiB, 100%, 62.753 MiB/s, ETA 0s
Transferred: 1 / 1, 100%
Elapsed time: 46.9s
Confirming upload...
Adding metadata for uploaded zebrafish
Transferred: 975 B / 975 B, 100%, 0 B/s, ETA -
Transferred: 1 / 1, 100%
Elapsed time: 0.0s
-------------------------------------------------------------------------------
8 files from zebrafish uploaded to bucket 2001659-roihu-scratch in Allas as one tar file:
2001659-roihu-scratch/genomes/zebrafish.tar
-----------------------------------------------------------------
Upload summary:
Date Name Files Size(kB) Location in Allas
06.05.26 13:05:05 zebrafish 8 2585920 2001659-roihu-scratch/genomes
-----------------------------------------------------------------
OK
Tämän jälkeen meillä on toinen objekti 2001659-roihu-scratch-ämpärissä:
[kkayttaj@roihu-cpu-login1 genomes]$ a-list 2001659-roihu-scratch
2001659-roihu-scratch/genomes/zebrafish.tar
2001659-roihu-scratch/genomes/zebrafish/Danio_rerio.GRCz10.fa
Huomaa, että tiedosto Danio_rerio.GRCz10.fa on nyt itse asiassa tallennettu Allakseen
kahdesti: sekä yksittäisenä objektina (genomes/zebrafish/Danio_rerio.GRCz10.fa)
että osana objektia genomes/zebrafish.tar.
B. Datan lataaminen Roihuun
Seuraavaksi lataamme saman datan takaisin Roihuun. Tässä esimerkissä oletamme, että seeprakalojen genomidata on poistettu Roihusta joko käyttäjän toimesta tai automaattisen siivousprosessin vuoksi.
Kun olemme muodostaneet yhteyden Roihuun, siirrymme projektin 2001659 scratch-hakemistoon ja lataamme allas-moduulin:
Komennon module load allas tulosteesta voit tarkistaa, käyttävätkö a-komennot oikeaa Allasta, tässä tapauksessa project_2001659:ää. Tarvittaessa voit ottaa projektin käyttöön komennolla allas-conf:
Yllä olevan komennon tapauksessa määritysprosessi kysyy vain CSC-salasanan ja muodostaa sitten
yhteyden Allakseen projektia 2001659 varten. Koska Roihun scratch-hakemisto on
jaettu kaikkien projektin jäsenten kesken, luomme käyttäjäkohtaisen alihakemiston
kkayttaj:
Komennolla a-list voimme nyt nähdä objektit, jotka aiemmin ladattiin Allakseen:
[kkayttaj@roihu-cpu-login2 kkayttaj]$ a-list
2001659-roihu-scratch
[kkayttaj@roihu-login1 kkayttaj]$ a-list 2001659-roihu-scratch
2001659-roihu-scratch/genomes/zebrafish.tar
2001659-roihu-scratch/genomes/zebrafish/Danio_rerio.GRCz10.fa
Datan paikantaminen on helppoa, koska ämpärissä on vain kaksi objektia, mutta kun
Allakseen lisätään enemmän dataa, tietyn tiedoston löytäminen kymmenien ämpärien
ja satojen objektien joukosta voi olla vaikeaa. Siinä tapauksessa voit etsiä
tiettyä tiedostoa komennolla a-find. Tässä esimerkissä voimme tarkistaa,
sisältääkö jokin objekti tiedoston Danio_rerio.GRCz10.fa:
[kkayttaj@roihu-cpu-login2 kkayttaj]$ a-find -a Danio_rerio.GRCz10.fa
Checking bucket: 2001659-roihu-scratch
Matching object names:
2001659-roihu-scratch/genomes/zebrafish/Danio_rerio.GRCz10.fa
----------------------------------------------
a-put generated objects that include matching file name:
Object: 2001659-roihu-scratch/genomes/zebrafish.tar
includes 2 file names that that match query: Danio_rerio.GRCz10.fa
Object: 2001659-roihu-scratch/genomes/zebrafish/Danio_rerio.GRCz10.fa
includes 1 file names that that match query: Danio_rerio.GRCz10.fa
------------------------------------------------
Query: Danio_rerio.GRCz10.fa
Total of 3 hits were found in 2 objects
-------------------------------------------------
Yllä oleva a-find-raportti näyttää esimerkiksi, että objekti
2001659-mahti-SCRATCH/genomes/zebrafish.tar sisältää kaksi tiedostoa, joiden nimet
vastaavat hakua Danio_rerio.GRCz10.fa (toinen tiedosto on Danio_rerio.GRCz10.fa.fai).
Huomaa, että a-find löytää osumia vain objekteista, jotka on ladattu
komennolla a-put. Lisäksi a-find hakee vain objektinimen perusteella. Älä sisällytä ämpärin nimeä hakutermiin.
Käytä sen sijaan valitsinta -b <bucket-name>, jos haluat hakea objektia vain yhdestä ämpäristä.
Seuraavaksi lataamme datan Roihuun komennolla a-get:
[kkayttaj@roihu-cpu-login2 kkayttaj]$ a-get 2001659-roihu-scratch/genomes/zebrafish.tar
Starting to copy data from allas...
Object:
2001659-roihu-scratch/genomes/zebrafish.tar
copied and uncompressed from s3allas into:
zebrafish
Tämän jälkeen nykyisessä työhakemistossa Roihussa on uusi hakemisto
zebrafish, joka sisältää tiedostot, jotka aiemmin ladattiin Roihusta
Allakseen:
[kkayttaj@roihu-cpu-login2 kkayttaj]$ ls zebrafish/
Danio_rerio.GRCz10.91.1.bt2 Danio_rerio.GRCz10.91.rev.1.bt2
Danio_rerio.GRCz10.91.2.bt2 Danio_rerio.GRCz10.91.rev.2.bt2
Danio_rerio.GRCz10.91.3.bt2 Danio_rerio.GRCz10.fa
Danio_rerio.GRCz10.91.4.bt2 Danio_rerio.GRCz10.fa.fai
Esimerkki 2: Allaksen käyttö Rclonella
A. Datan lataaminen Rclonella
Rclone on tehokäyttäjän työkalu Allakselle. Se sopii hyvin tilanteisiin, joissa data täytyy tallentaa niin, että jokainen tiedosto on erillinen objekti.
Warning
Rclone tarjoaa nopean ja tehokkaan tavan käyttää Allasta, mutta sitä tulee käyttää varoen, sillä Rclone-operaatiot voivat ylikirjoittaa ja poistaa dataa sekä Allaksessa että paikallisessa levyympäristössä ilmoittamatta tai pyytämättä vahvistusta.
Tässä esimerkissä käytetään samaa dataa kuin edellisessä tapauksessa: Roihun scratch-hakemistossa
meillä on alihakemisto genomes/zebrafish, joka sisältää alla luetellut kahdeksan
tiedostoa:
[kkayttaj@roihu-cpu-login2 ~]$ ls /scratch/project_2001659/genomes/zebrafish
Danio_rerio.GRCz10.91.1.bt2 Danio_rerio.GRCz10.91.rev.1.bt2
Danio_rerio.GRCz10.91.2.bt2 Danio_rerio.GRCz10.91.rev.2.bt2
Danio_rerio.GRCz10.91.3.bt2 Danio_rerio.GRCz10.fa
Danio_rerio.GRCz10.91.4.bt2 Danio_rerio.GRCz10.fa.fai
Kopioidaksemme tämän hakemiston sisällön Allakseen asetamme ensin Allas-ympäristön:
Komennon module load allas tulosteesta voit tarkistaa, käyttääkö a-komennot oikeaa Allasta, tässä tapauksessa project_2001659:ää. Tarvittaessa voit ottaa projektin käyttöön komennolla allas-conf:
Yllä olevan komennon tapauksessa määritysprosessi kysyy vain CSC-salasanan ja muodostaa sitten yhteyden Allakseen projektia 2001659 varten. Määrityksen jälkeen voit käyttää määritellyn projektin Allas-aluetta kahden rclone-päätepisteen kautta: s3allas:, s3allas-project_name. Tässä esimerkissä päätepisteet ovat s3allas: ja s3allas-project_2001659:.
Määrityksen jälkeen nämä kaksi päätepistettä ovat käytössä kaikissa Roihu-istunnoissa, myös eräajoissa. Lyhyttä päätepistettä on mukavampi käyttää komentorivillä, mutta se muuttuu, jos suoritat allas-conf-komennon toisen projektin käyttöön ottamiseksi. Siksi projektikohtainen päätepiste (s3allas-project_2001659) on parempi vaihtoehto eräajoihin ja projektikohtaisiin skripteihin.
Latauksen aloittamiseksi siirrymme genomes-hakemistoon:
Edellisessä esimerkissä käytetyn a-put-komennon sijaan käytämme komentoa
rclone copy kopioidaksemme kaikki tiedostot annetusta hakemistosta Allakseen. rclone-komennon
tapauksessa oletusämpäriä ei ole. Sen sijaan meidän täytyy määritellä
ämpärin nimi. Tässä esimerkissä käytämme ämpärin nimeä 2001659-genomes ja määrittelemme,
että jokaisen objektin nimessä on etuliite zebrafish.
Tiedostojen kopioinnin jälkeen voimme käyttää rclone ls -komentoa nähdäksemme, mitä on ladattu
Allakseen:
[kkayttaj@roihu-cpu-login2 genomes] rclone ls s3allas:2001659-genomes/zebrafish
450646234 Danio_rerio.GRCz10.91.1.bt2
334651392 Danio_rerio.GRCz10.91.2.bt2
187325 Danio_rerio.GRCz10.91.3.bt2
334651387 Danio_rerio.GRCz10.91.4.bt2
450646234 Danio_rerio.GRCz10.91.rev.1.bt2
334651392 Danio_rerio.GRCz10.91.rev.2.bt2
1362788082 Danio_rerio.GRCz10.fa
715 Danio_rerio.GRCz10.fa.fai
B. Datan lataaminen Roihuun
Seuraavaksi lataamme saman datan takaisin Roihuun. Kun olemme muodostaneet yhteyden Roihuun, siirrymme
projektin project_2001659 scratch-hakemistoon ja lataamme allas-moduulin:
Jos rclone on edelleen määritetty projektille 2001659, allas-conf-komentoa ei tarvitse suorittaa.
Koska Roihun scratch-hakemisto on jaettu kaikkien projektin jäsenten kesken, luomme käyttäjäkohtaisen alihakemiston
kkayttaj ja siirrymme sinne:
Voimme nyt käyttää komentoa rclone lsd tarkistaaksemme käytettävissä olevat ämpärit
Allaksessa:
[kkayttaj@roihu-cpu-login2 kkayttaj]$ rclone lsd s3allas:
3268222761 2026-05-03 10:01:42 8 2001659-genomes
2576778428 2026-05-03 10:01:42 4 2001659-roihu-SCRATCH
Nyt näemme kaksi ämpäriä. 2001659-genomes on tässä esimerkissä juuri luotu,
kun taas 2001659-roihu-SCRATCH on peräisin edellisestä
a-komentoesimerkistä. Seuraavaksi listaamme objektit 2001659-genomes-ämpärissä:
[kkayttaj@roihu-cpu-login2 kkayttaj]$ rclone ls s3allas:2001659-genomes
450646234 zebrafish/Danio_rerio.GRCz10.91.1.bt2
334651392 zebrafish/Danio_rerio.GRCz10.91.2.bt2
187325 zebrafish/Danio_rerio.GRCz10.91.3.bt2
334651387 zebrafish/Danio_rerio.GRCz10.91.4.bt2
450646234 zebrafish/Danio_rerio.GRCz10.91.rev.1.bt2
334651392 zebrafish/Danio_rerio.GRCz10.91.rev.2.bt2
1362788082 zebrafish/Danio_rerio.GRCz10.fa
715 zebrafish/Danio_rerio.GRCz10.fa.fa
Lopuksi käytämme komentoa rclone copy kopioidaksemme datan Allaksesta
Roihuun uuteen hakemistoon zebrafish2:
[kkayttaj@roihu-cpu-login2 kkayttaj]$ rclone -P copy s3allas:2001659-genomes/zebrafish zebrafish2
Transferred: 3.044 GiB / 3.044 GiB, 100%, 323.600 MBytes/s, ETA 0s
Transferred: 8 / 8, 100%
Elapsed time: 9.6s
[kkayttaj@roihu-cpu-login1 kkayttaj]$ ls zebrafish2
Danio_rerio.GRCz10.91.1.bt2 Danio_rerio.GRCz10.91.3.bt2
Danio_rerio.GRCz10.91.2.bt2 Danio_rerio.GRCz10.91.4.bt2
Danio_rerio.GRCz10.91.rev.1.bt2 Danio_rerio.GRCz10.fa
Danio_rerio.GRCz10.91.rev.2.bt2 Danio_rerio.GRCz10.fa.fai
Esimerkki 3: Monimutkaisten hakemistorakenteiden lataaminen Allakseen
Jotkin työnkulut ja ohjelmistot luovat monimutkaisia hakemistorakenteita datan tallentamiseen ja hallintaan. Sinulla voi olla hakemistoja, joissa on tuhansia tai jopa miljoonia yksittäisiä tiedostoja. Tällaisten aineistojen kopioiminen Allakseen vie aikaa eikä ole aina suoraviivaista. Järkevin tapa ladata tämänkaltaista dataa riippuu tapauksesta. Tämä esimerkki esittelee muutamia vaihtoehtoja.
Aloitamme avaamalla tmux-istunnon Roihussa ja muodostamalla Allas-yhteyden aivan
kuten edellisessä esimerkissä:
Oletetaan, että meillä on hakemistorakenne, joka sisältää kuvia tienpintakameroista
kymmenestä sijainnista kymmenen minuutin välein vuosilta
2021–2025. Data sijaitsee hakemistossa road_cameras, jossa jokaisella
sijainnilla on oma alihakemistonsa (kymmenen hakemistoa). Jokaisen alihakemiston sisällä
on toinen alihakemistokerros, yksi jokaiselle vuodelle (viisi
alihakemistoa), joista kukin sisältää alihakemistot vuoden jokaiselle päivälle
(lisäksi 365 alihakemistoa), ja jokainen niistä sisältää 144 pientä kuvatiedostoa.
Esimerkiksi:
Näin ollen tiedostojen kokonaismäärä hakemistossa road_cameras on
10 * 5 * 365 * 144 = 2 628 000.
Periaatteessa voisimme kopioida kaikki 2,6 miljoonaa tiedostoa erillisinä objekteina Allakseen,
mutta siinä tapauksessa data pitäisi jakaa useisiin ämpäreihin, koska yhdessä ämpärissä
voi olla enintään 0,5 miljoonaa objektia. Voisit esimerkiksi suorittaa erillisen
rclone-komennon jokaiselle site_*-hakemistolle ja sijoittaa kunkin sijainnin datan
sijaintikohtaiseen ämpäriin. Esimerkiksi:
Tällä tavalla päätyisit luomaan kymmenen ämpäriä, joista kukin sisältää 262 800 objektia. Tämä lähestymistapa voisi olla tehokkain tapa datan tallentamiseen ja uudelleenkäyttöön, jos tiedät, että sinun täytyy käyttää yksittäisiä kuvia satunnaisesti. Tällöin sinun pitäisi kuitenkin käyttää muita työkaluja kuin rclonea tai a-komentoja, sillä rclonessa on virhe, jonka vuoksi se epäonnistuu tilanteissa, joissa yksi ämpäri sisältää valtavan määrän objektinimiä (tyypillisesti tämä alkaa vaikuttaa, kun objektien määrä ylittää 15 000–50 000).
Toisena äärivaihtoehtona voisimme käyttää a-put-komentoa ja kerätä kaiken datan
yhdeksi arkisto-objektiksi. Jotta tämä onnistuu, sinun täytyy lisätä valitsin
--skip-filelist a-put-komentoon. Oletuksena a-put kerää yksityiskohtaisen
metadatan jokaisesta tiedostosta ameta-tiedostoon. Jos tiedostoja on kuitenkin miljoonia,
tämän tiedon kerääminen vie paljon aikaa. Jos sinun täytyy tietää
tiedostonimet, voit käyttää valitsinta --simple-fileslist nimien keräämiseen –
mutta ei muuta tietoa – metadatatiedostoon. Tämä jo
nopeuttaa esikäsittelyä merkittävästi. Tässä tapauksessa nimeäminen on kuitenkin ollut
järjestelmällistä, joten tiedostonimien tallentaminen metadatatiedostoihin voidaan
jättää kokonaan pois (--skip-filelist), mikä on nopein vaihtoehto.
Tämä lähestymistapa tallentaisi kaikki 2,6 miljoonaa tiedostoa yhtenä objektina.
Käytännössä optimaalinen tapa tallentaa data on kuitenkin usein jotakin näiden kahden ääripään väliltä. Kompromissina voisit käyttää pakkaamista hierarkiassa ylemmällä tasolla. Esimerkiksi:
Tämä tuottaisi kymmenen objektia, joista kukin sisältää yhden kamerasijainnin kaikki tiedot. Vaihtoehtoisesti voisit tehdä arkistoinnin niin, että kunkin kameran kunkin vuoden data kerätään yhdeksi objektiksi:
Tämä vaihtoehto tallentaisi datan 50 objektina. Päiväkohtaiset objektit kullekin
kameralle voisivat olla käytön kannalta käytännöllisin vaihtoehto myöhemmin, mutta
haittapuolena datan esikäsittely 10 * 5 * 365 = 18250 objektiksi vie
todennäköisesti melko paljon aikaa.
Miljoonien tiedostojen kopioiminen Allakseen vie paljon aikaa menetelmästä riippumatta.
Jos olemme käynnistäneet a-put-komennon tmux-istunnon sisällä, voimme irrottautua
virtuaali-istunnosta painamalla Ctrl-b d, kirjautua ulos Roihusta ja jättää
latausprosessin käyntiin pitkäksi aikaa. Jos kirjautumissolmu kuitenkin
käynnistyy uudelleen istuntojen välillä, tmux-istuntosi päättyy.
Palataksesi istuntoon myöhemmin, muodosta yhteys Roihuun uudelleen ja suorita:
Kun et enää tarvitse tmux-istuntoa, voit lopettaa istunnon kirjoittamalla exit
istunnon sisällä.
Kun a-put-komento on valmis, suoritamme a-check-komennon tarkistaaksemme, että
kaikki dataobjektit on luotu. a-check täytyy suorittaa täsmälleen
samoilla valitsimilla, joita käytettiin a-put-komennon kanssa. Tässä tapauksessa
komento olisi:
a-check-komento vertaa ladattaviksi tarkoitettujen kohteiden nimiä vastaaviin
objekteihin Allaksessa. Tiedostot tai hakemistot, joille ei löydy kohdeobjektia
Allaksesta, raportoidaan ja tallennetaan tiedostoon. Tässä tapauksessa, jos jokin yllä olevan
a-put-komennon objekteista puuttuisi, a-check listaisi puuttuvat
tiedostot ja hakemistot tiedostoon missing_<bucket_name>_<number> (lopussa oleva numero
on vain satunnaisluku).
Puuttuvien kohteiden tiedostoa voidaan sitten käyttää a-put-komennon valitsimen --input-list
kanssa epäonnistuneen latausprosessin jatkamiseksi:
On hyvä huomata, että a-check ei tarkista, ovatko objektin todelliset sisällöt
oikeita. Se tarkistaa vain objektien nimet, jotka voivat aivan hyvin
olla peräisin jostakin muusta lähteestä.