Migrazione a S3
Queste istruzioni si riferiscono alla v5.x e successive. Se segui questa guida per una versione precedente, usa
sharelatex invece di overleaf nei nomi dei percorsi e il prefisso SHARELATEX_ invece di OVERLEAF_ per le variabili d’ambiente. Per la v6 e successive, salta i comandi legacy relativi a user_files.Ci piacerebbe sentire la tua opinione! Se vuoi condividere con noi quanti file hai migrato, il loro volume complessivo e quanto tempo ha richiesto la migrazione, scrivi a
ayaka-notes@outlook.com.Requisiti
- Uno storage a oggetti compatibile con S3 con cui comunicare; vedi #s3-setup per le opzioni
- Spazio libero su disco per migrare i dati esistenti, all’incirca pari alla dimensione attuale su disco
- Una finestra di manutenzione per eseguire la migrazione vera e propria
- Un backup completo, inclusa la configurazione, per poter eseguire un ripristino
Stimare lo spazio su disco necessario per la migrazione
Possiamo usaredu per calcolare l’utilizzo attuale del disco:
Le directory della cronologia hanno già il layout corretto. Puoi caricarle direttamente dalla cartella sorgente montata in bind, senza bisogno di spazio su disco aggiuntivo.
Passaggi della migrazione
Passaggio 0: arrestare l’istanza
Dobbiamo assicurarci che tutti i file degli utenti e dei template vengano migrati. È meglio arrestare l’istanza per evitare di perdere i file caricati di recente. Consulta la nostra guida sull’esecuzione di un backup coerente per la procedura di arresto.Passaggio 1: riscrivere il layout delle directory
Dobbiamo riscrivere il layout delle directory dei file dei progetti per caricarli su S3. Il layout delle directory per lo storage locale nel filestore è<project-id>_<file-id>, mentre il layout in S3 è <project-id>/<file-id>.
Di seguito, /srv/overleaf-s3-migration viene usato per archiviare i file nel nuovo layout delle directory. Sostituisci /srv/overleaf-bind-mount con la directory dell’host montata su /var/lib/overleaf. Esegui i comandi di copia sull’host con i permessi di lettura e scrittura su queste directory; il container resta arrestato.
Possiamo usare tar per riscrivere il layout:
Passaggio 2: caricare i file
A seconda delle tue preferenze, puoi usare il client S3 minio mc o la aws cli per caricare i file sul tuo storage a oggetti compatibile con S3. aws cli- Qui devi sostituire
overleaf-user-files,overleaf-template-files,overleaf-project-blobseoverleaf-chunkscon i nomi dei tuoi bucket S3. - Sostituisci anche
/srv/overleaf-bind-mountcon il percorso locale del bind mount di/var/lib/overleaf. Per impostazione predefinita, è~/overleaf_datain un deployment docker-compose.yml e<toolkit-checkout>/data/overleafquando usi il Toolkit.
Passaggio 3: avviare l’istanza puntando a S3
Aggiungi alla tua configurazione tutte le variabili relative a S3, come descritto nella sezione Panoramica delle variabili della guida di configurazione di S3. Mantieni il bind mount della directory dei dati: potrebbe contenere anche le chiavi di cifratura di Zotero o Mendeley, che non vengono migrate su S3.Mantieni il bind mount di un disco scratch per i file temporanei.
- è possibile visualizzare in anteprima i file binari nell’editor
- è possibile compilare un PDF con immagini
- è possibile caricare nuovi file
Rollback
Puoi annullare la migrazione in modo ordinato eseguendo i passaggi al contrario:- Arresta l’istanza
- Esegui il mirroring inverso dei file invertendo l’ordine di origine/destinazione
- Riscrivi i file nella directory locale usando una
transforminversa - Riavvia l’istanza con la vecchia configurazione
La prima transform rimuove la cartella di primo livello. La seconda transform trasforma il layout delle directory in uno piatto. I caratteri jolly assicurano che vengano estratti solo i file e non le loro cartelle padre (dei progetti).

