Tasca #5467
tancatProvar el sistema d'emmagatzemament d'AWS (Amazon)
Descripció
Amazon ha fet una oferta a la UAB, via un representat de Telefónica, per provar el seu núvol d'emmagatzemament.
Un dels casos que interessa avaluar és la seva viabilitat com a segona còpia dels fitxers resultats de les digitalitzacions, el http://volum-i.uab.cat
Tasques relacionades 2 (0 obertes — 2 tancades)
CA Actualitzat per Cristina Azorin fa més de 6 anys
- Paraula clau s'ha establert a JR
FJ Actualitzat per Ferran Jorba fa més de 6 anys
- S'ha afegit relacionat amb Tasca #5456: Traslladar els fitxers del Volum-I (VNX-5800) al Unity-500
FJ Actualitzat per Ferran Jorba fa més de 6 anys
Sembla ser que hi ha diferents maneres d'accedir al servei de disc d'Amazon al núvol des d'un sistema Linux. Amazon ofereix una interfície estàndard anomanada S3 (https://aws.amazon.com/es/s3/) i diferents persones hi han desenvolupat altres interfícies perquè es vegi com un disc local, com un filesystem, etc.
Concretament, com a paquets estàndards Debian, fent la cerca s3 (https://packages.debian.org/s3) hi veiem aquests:
- https://packages.debian.org/s3backer. Agafa un espai de disc del núvol i el presenta com si fos un disc, i per tant es pot formatejar com es vulgui i es poden executar tots els serveis d'un disc.
- https://packages.debian.org/s3cmd. Interfície de comandes per accedir als serveis S3.
- https://packages.debian.org/s3fs. Utilitza el FUSE (Fileystem in User SpacE) per veure els serveis S3 com un disc més, com si fos NFS. No és 100% Posix, però se li acosta molt. Ja diuen que no és especialment ràpid.
- https://packages.debian.org/s3ql. Una alternativa amb més rendiment que el s3fs però a costa de perdre més compatibilitat Posix.
Això només amb Debian, perquè a Github se'n troben més, p. ex. https://github.com/kahing/goofys, etc.
Jo diria que cadascuna d'aquestes propostes té el seu interès, i no donaria per suposat que un ens convingui més que un altre.
A tot això hem d'aplicar a la matriu els diferents serveis Amazon, sigui el S3 estàndard, el Glacier o el Deep Glacier. Tot plegat, necessitarem un temps per fer-ne proves.
CA Actualitzat per Cristina Azorin fa aproximadament 6 anys
- Data de venciment s'ha establert a 15-06-2020
- Paraula clau ha canviat de JR a NC
CA Actualitzat per Cristina Azorin fa aproximadament 6 anys
- Temàtica prevista ha canviat de Tasques informàtiques internes a Direcció i planificació
- Paraula clau ha canviat de NC a NCR
FJ Actualitzat per Ferran Jorba fa quasi 6 anys
La meva proposta per fer les proves continua essent accedir-hi com un disc, perquè quan ens ha calgut accedir a la còpia ha estat, en general, per confirmar, comparar o corregir canvis de noms de fitxers, o canvis d'estructura de directoris, o la confirmació que tots els fitxers d'abans d'una reorganització hi eren després.
L'eina que hem estat fent servir per aquestes comparacions és la llista de valors md5, en el format estàndard Unix/Linux. Per tant, hem de poder accedir a la còpia com si fos un disc més. La velocitat és poc important, i la immediatesa o latència també.
El comportament Posix dels fitxers ha de ser tan transparent com un disc NFS; per tant, hi he de poder accedir tant via eines shell, com programes en Python o qualsevol altre llenguatge, o des d'Emacs mateix.
Ara mateix els punts de muntatge són:
- /mnt/VOLUM-5/1-?? Per al Unity 500
- /mnt/VOLUM-2b/?-?? per als Satabeasts
No sabem encara quina de les eines que Debian proposa és la que ens anirà millor. Per tant, proposo de provar-les totes. Per als Amazon WS proposo de moment crear-ne un d'arrel, i perquè alfabèticament surti al final, que es digui S3, i després un punt de muntatge per a cada disc de 2 TB amb cadascuna de les eines:
- /mnt/VOLUM-S3/b-01 per al s3backer
- /mnt/VOLUM-S3/f-01 per al s2fs
- /mnt/VOLUM-S3/q-01 per al s3ql
- /mnt/VOLUM-S3/c-01 per al s3cmd (aquest no sé ben bé què vol dir)
Pel que fa al tamany, és important que els 2 TB a can Amazon siguin exactament els mateixos 2 TB a l'Unity 500. El José Manual en sap els detalls, però no sempre 2 TB acaben sent els mateixos a tots els discs. En concret, els del Unity 500, tal com es veuen des de Taltabull, són
ddd@taltabull:~$ df -h | grep /mnt/VOLUM-5/1-01 /dev/mapper/mpathcm-part1 2.0T 1.9T 142G 93% /mnt/VOLUM-5/1-01 ddd@taltabull:~$ df -m | grep /mnt/VOLUM-5/1-01 /dev/mapper/mpathcm-part1 2063204 1897788 144429 93% /mnt/VOLUM-5/1-01 ddd@taltabull:~$ df -k | grep /mnt/VOLUM-5/1-01 /dev/mapper/mpathcm-part1 2112720816 1943334820 147894860 93% /mnt/VOLUM-5/1-01
Jo hi copiaré el primer dels discs del Unity 500 (/mnt/VOLUM-5/1-01) al 01 de cadascuna de les 3 (o 4) interfícies muntades.
La meva proposta és que comencem amb l'Amazon Glacier, i si de cas ja anirem al Deep Glacier més endavant, però si creieu que és millor fer-ho d'una altra manera, sóc tot oïdes.
FJ Actualitzat per Ferran Jorba fa més de 5 anys
Documentació que em va passar el meu company Javier Enrique:
From: Javier Enrique Romero <Javier.Enrique@uab.cat>
To: Ferran Jorba García <Ferran.Jorba@uab.cat>
CC: Pere Roca Trias <Pere.Roca@uab.cat>, Ivan Leiva Puerto <Ivan.Leiva@uab.cat>, Jose Manuel Castillo Pedrosa <JoseManuel.Castillo@uab.cat>
Subject: Accés a S3 Glacier
Date: Fri, 5 Jun 2020 09:54:08 +0200
Bon dia Ferran,
Porto dies fent proves amb l’S3 Glacier a una màquina virtual amb Debian 10.4, i les conclusions que he extret són les següents.
S3 Glacier no és S3. La manera de treballar amb S3 Glacier és totalment asíncrona mitjançant “jobs” que poden trigar a resoldre’s fins a 12 hores. Per tant, les eines que havíem considerat en un primer moment (s3backer, s3cmd, s3ql i s3fs) no funcionen amb Glacier, no es pot configurar la connexió amb Glacier. En canvi, he pogut configurar i provar el funcionament d’un parell d’aquestes eines amb S3 standard sense problemes.
Tal i com indica la documentació d’Amazon sobre S3 Glacier (https://docs.aws.amazon.com/es_es/amazonglacier/latest/dev/introduction.html) per interactuar amb S3 Glacier tenim 3 opcions:
- Fer servir AWS CLI
- Escriure codi per treballar amb l’API de REST
- Treballar amb algun dels SDK de AWS (C++, Go, Java, JavaScript en Node.js, .NET, PHP Python (Boto) i Ruby)
Jo he estat fent proves amb AWS CLI, que és la interfície de línia de comandes unificada per a tots els serveis d’AWS. Després d’instal·lar AWS CLI, el primer que s’ha de fer és configurar-lo amb les credencials corresponents, al nostre cas les dades de configuració són:
- AWS Access Key ID: **[omeses]
- AWS Secret Access Key: **[omeses]
- Default region name: eu-west-1
- Default output format: json
Amb aquestes keys només tenim privilegis per al contenidor “uab-vault-ddd” del servei S3 Glacier, per tant només podem fer servir les comandes d’AWS CLI del servei S3 Glacier. A les comandes hem d’indicar l’account-id propietari del contenidor (vault) i el nom del vault. Per exemple si volem pujar un fitxer a Glacier la comanda serà:
$ aws glacier upload-archive --account-id 933552749301 --vault-name uab-vault-ddd --body fitxer
El resultat serà com el següent on s S’obté un checksum i un ID de l’arxiu:
{
"location": "/933552749301/vaults/uab-vault-ddd/archives/v0DdHlsA-FHYCIBd3TdQ_uy-qWFsjun_573g4-DGNZE7CVNyAGgmCbR9LsJaZqCOxRnYTYMzuX5Jr7Mls7Z-ZKQ807OYMBhykjUdC5cToheASCU7dcFjezOjs_45EYprUS8MJmH_Ow",
"checksum": "8f4308b25bfc467ffcdcac6e89da209b4c850caddece7b9251b52eb86f05bb52",
"archiveId": "v0DdHlsA-FHYCIBd3TdQ_uy-qWFsjun_573g4-DGNZE7CVNyAGgmCbR9LsJaZqCOxRnYTYMzuX5Jr7Mls7Z-ZKQ807OYMBhykjUdC5cToheASCU7dcFjezOjs_45EYprUS8MJmH_Ow"
}
Amazon fa inventari del contenidor cada cert temps, màxim cada 12 hores. Per consultar l’inventari de un contenidor s’ha d’iniciar un job del tipus “inventory-retrieval”:
$ aws glacier initiate-job --vault-name uab-vault-ddd --account-id 933552749301 --job-parameters '{"Type": "inventory-retrieval"}'
El llançament d’un job retorna un identificador JobID, que es pot fer servir per consultar l’estat del job:
$ aws glacier describe-job --vault-name uab-vault-ddd --account-id 933552749301 --job-id 0Qxy-YcjyoV_oLsMHDI4IqXBRY_GcXNFwkU7loXiXaP4utBxsWetZZUdFeMtXTNSDXYCYTxMkS5FuVE7aejYKhJXQR5-
El resultat de la consulta de l’estat del job és del tipus següent:
{
"JobId": "0XNFwkU7loXiXaP4utBxsWetZZUdFeMtXTNSDXYCYTxMkS5FuVE7aejYKhJXQR5-",
"Action": "InventoryRetrieval",
"VaultARN": "arn:aws:glacier:eu-west-1:933552749301:vaults/uab-vault-ddd",
"CreationDate": "2020-06-04T08:20:06.188Z",
"Completed": true,
"StatusCode": "Succeeded",
"StatusMessage": "Succeeded",
"InventorySizeInBytes": 1709,
"CompletionDate": "2020-06-04T12:11:58.240Z",
"InventoryRetrievalParameters": {
"Format": "JSON"
}
}
En aquest cas es tracta d’un job “completed”, per tant podem obtenir el resultat a un fitxer json indicant el JobID:
$ aws glacier get-job-output --vault-name uab-vault-ddd --account-id 933552749301 --job-id 0Qxy-YcjyoV_oLsMHDI4IqXBRY_GcXNFwkU7loXiXaP4utBxsWetZZUdFeMtXTNSDXYCYTxMkS5FuVE7aejYKhJXQR5- InventoryRetrieval-20200604-1528.json
El contingut del fitxer InventoryRetrieval-20200604-1528.json és l’inventari del contenidor:
{"VaultARN":"arn:aws:glacier:eu-west-1:933552749301:vaults/uab-vault-ddd",
"InventoryDate":"2020-06-03T20:00:11Z",
"ArchiveList": [
{"ArchiveId":"Enoq_BOTTbE_xB2S_fN_GE8AFUq7fi_I1NAUqfvn1aEmXdp9xmj3kX1C7ZqRs69Ki8vViEbXN1Ro4Ui8wfHSVG7pG1S0HcHUnV9zFRUAeVbsNE_m53UJbfd8jeVZfqTfycxRtgOIkQ",
"ArchiveDescription":"",
"CreationDate":"2020-05-28T13:58:15Z",
"Size":3145728,
"SHA256TreeHash":"cbc505b46f619677a4e5cbaa8aca6bfa6c08e55280f260f620bb60dad0d23125"},
{"ArchiveId":"RqBLusCVCqXMuph4EoaYGqDCd-VVO1o1mLnt0UeUeA0k-3-bALagNnEfzUo7jh4YZH0StQSQ6S9r0YOAd1ghlW76Wou5o00QODAvhHDMxl2xKA42Xw4Q7z3m2bAgYusTT3FbtdtOaQ",
"ArchiveDescription":"",
"CreationDate":"2020-06-03T08:21:12Z",
"Size":1048576,
"SHA256TreeHash":"21ee5f7f2d409b4986bd0618345b2f4e1b4c4267cff6a82ca65ecf4dee666783"},
{"ArchiveId":"v0DdHlsA-FHYCIBd3TdQ_uy-qWFsjun_573g4-DGNZE7CVNyAGgmCbR9LsJaZqCOxRnYTYMzuX5Jr7Mls7Z-ZKQ807OYMBhykjUdC5cToheASCU7dcFjezOjs_45EYprUS8MJmH_Ow",
"ArchiveDescription":"",
"CreationDate":"2020-06-03T08:21:57Z",
"Size":2097152,
"SHA256TreeHash":"8f4308b25bfc467ffcdcac6e89da209b4c850caddece7b9251b52eb86f05bb52"},
{"ArchiveId":"dWAdjxW71sQ-bDhbE6dHnNtFijjI1I9AXr9U-LJ54JVeGD0e6_mz3eg-S0W1TWZkNZj0aepQKs6NYnJcqonl7rS6ye0WMTIuOrd8PpS7dAjxTwtqtRhmm0mm0eJIaYKhyXVehGZNTA",
"ArchiveDescription":"",
"CreationDate":"2020-06-03T08:22:51Z",
"Size":4194304,
"SHA256TreeHash":"5693b13e89eb034500f73e6b1084c8f075084096aad0a42978d461d4a7b0ddf0"},
{"ArchiveId":"Mj9_WO-bx17JvJXncUNf0tINSn0gqTWuMjJ5yon3dK24w79pMvuygFG07kH2u18LX6eW23kgRJu6ksSD4XlCJmLcAgNTsM_EmvjSOMzyuzZDj9qykhfRI_tF_y7HdyAIYaeEXrthjw",
"ArchiveDescription":"",
"CreationDate":"2020-06-03T08:23:05Z",
"Size":5242880,
"SHA256TreeHash":"8bd7b23269133bb2d9bf555b342ccbc6495178ecb2e3d1eba708e222e0b37cc9"}
]}
Tenim un ArchiveList amb 5 elements, i de cada element ens indica el ArchiveId, ArchiveDescription, CreationDate, Size i el SHA256TreeHash. Si ens fixem en l’element de l’ArchiveList corresponent al fitxer que hem pujat al principi, es pot veure que el SHA256TreeHash obtingut coincideix amb el checksum que es va calcular al pujar el fitxer al contenidor de Glacier. D’aquesta manera queda garantitzada la consistència de les dades, ja que al realitzar un upload es calcula el checksum del fitxer al client, Glacier torna a calcular-lo en destí i compara els dos checksums, si són diferents es refusa l’upload.
De la mateixa manera, es pot iniciar un job de recuperació d’un arxiu indicant l’ArchiveId:
$ aws glacier initiate-job --vault-name uab-vault-ddd --account-id 933552749301 --job-parameters '{"Type": "archive-retrieval","ArchiveId": "Mj9_WO-bx17JvJXncUNf0tINSn0gqTWuMjJ5yon3dK24w79pMvuygFG07kH2u18LX6eW23kgRJu6ksSD4XlCJmLcAgNTsM_EmvjSOMzyuzZDj9qykhfRI_tF_y7HdyAIYaeEXrthjw"}'
Quan el job s’hagi completat podrem recuperar el fitxer:
$ aws glacier get-job-output --vault-name uab-vault-ddd --account-id 933552749301 --job-id OysCkzBfmd5iwms5Bn7BW8LK8S7Fpooaw9BwDZZGo9YgpPZJWA1QQJ6qNRnfSwa-vUhGCDqDRFzak_yyC4Z8xR0pHWtt retrieved-file
Com pots veure és una manera de treballar totalment asíncrona que no té res a veure amb la manera de treballar amb un filesystem tradicional, i requereix d’una certa organització a la que pot ajudar l’etiquetatge del arxius. Tampoc he explorat el camp ArchiveDescription que apareix associat als arxius de l’ArchiveList de l’inventari, potser es podria aprofitar per indicar el nom del fitxer original.
Crec que amb la informació d’aquest correu ja pots començar a treballar i provar. Si necessites un cop de ma o vols que José Manuel i jo instal·lem i configurem AWS CLI ens ho pots dir. Recorda que també es pot interactuar amb Glacier amb els SDK de AWS si estàs més familiaritzat amb algun dels llenguatges de programació disponibles.
Salutacions,
Javier Enrique
Servei d'Informàtica
Direcció de Tecnologies de la Informació i la Comunicació
Carrer de l'Albareda, Edifici D, Despatx D/110
Campus de la UAB · 08193 Bellaterra
(Cerdanyola del Vallès) · Barcelona · Spain
Tel.: +34 93 581 21 51
www.uab.cat
FJ Actualitzat per Ferran Jorba fa més de 5 anys
From: Ferran Jorba <Ferran.Jorba@uab.cat>
To: Javier Enrique Romero <Javier.Enrique@uab.cat>
Cc: Pere Roca Trias <Pere.Roca@uab.cat>, Ivan Leiva Puerto <Ivan.Leiva@uab.cat>, Jose Manuel Castillo Pedrosa <JoseManuel.Castillo@uab.cat>
Subject: Re: Accés a S3 Glacier
Date: Fri, 5 Jun 2020 10:49:22 +0200
Organization: Universitat Autonoma de Barcelona
Hola Javier,
moltes gràcies per aquesta informació, i l'estona de fer les proves. És tan incompatible amb el que he estat utilitzant en els darrers 15 anys, que m'ho he de pensar tot de dalt a baix.
Ara mateix no sé cap on tirar: per exemple, de tots els nostres fitxers, tinc el md5 i el sha1, però no el sha256 que utilitza Glacier. És normal que sigui així, ells han d'abastar una quantitat enormement més gran de fitxers i necessiten aquest hash. Però calcular el sha256 dels nostres 5.887.893 fitxers i, sobretot, integrar la seva generació en el fluxe de treball automàtic, i fer-ne accessible seu emmagatzemament i accés sense trencar l'actual basat en md5 no ho puc fer d'un dia per l'altra. Una altra opció seria tirar pel servei aws s3 estàndard, però entenc que econòmicament no té sentit.
Per tant, cap opció la veig immediatament bona o ràpida. Totes les idees seran benvingudes. Potser en uns dies podem parlar-ne via Teams, però ara mateix necessito digerir tot això que m'has fet arribar.
Carai, carai...
Ferran
CA Actualitzat per Cristina Azorin fa més de 5 anys
- Data de venciment ha canviat de 15-06-2020 a 18-12-2020
- Estat ha canviat de Creada a En curs
FJ Actualitzat per Ferran Jorba fa més de 5 anys
- Assignat a ha canviat de Ferran Jorba a Pere Roca
Hem vist que, com que el que necessitem és accés a disc i Glacier no ens el dóna, hem de tornar-ho a avaluar.
PR Actualitzat per Pere Roca fa aproximadament 5 anys
- Data de venciment ha canviat de 18-12-2020 a 28-02-2021
FJ Actualitzat per Ferran Jorba fa aproximadament 5 anys
Aquests dies, a la llista digital-curation s'està parlant de com cadascú utilitza Amazon Glacier o S3 per a desar-hi grans volums de fitxers, i s'hi expliquen coses interessants:
https://groups.google.com/g/digital-curation/c/wSEvQScJkOM/m/Tk9kEmIwDwAJ
PR Actualitzat per Pere Roca fa aproximadament 5 anys
- Data de venciment ha canviat de 28-02-2021 a 26-11-2021
He demanat a la Direcció de TIC baixar la prioritat d'aquesta tasca. Canvio la data de venciment pel novembre.
FJ Actualitzat per Ferran Jorba fa aproximadament 4 anys
- Estat ha canviat de En curs a Tancada
La tanquem fins que no hi hagi noves notícies.
Informació relacionada: https://www.dpconline.org/handbook/technical-solutions-and-tools/cloud-services
CA Actualitzat per Cristina Azorin fa aproximadament 4 anys
- Paraula clau s'ha suprimit (
NCR)
FJ Actualitzat per Ferran Jorba fa més de 3 anys
- S'ha afegit relacionat amb Tasca #7412: Substituir els Satabeasts per l'Isilon