Migrering av binærfiler
Den kommende hovedversjonen6.0 av Server Pro og Community Edition vil halvere lagringsbruken for binærfiler. En migrering som kan kjøres mens tjenesten er i drift, er inkludert i versjon 5.5.7 , noe som gir minimal nedetid ved oppgraderingen.
Siden Server Pro 4.x har binærfiler blitt lagret to ganger: i lagringen for aktive filer i “filestore” og i systemet for fullstendig prosjekthistorikk. Fremover vil én enkelt kopi av hver fil bli lagret i systemet for fullstendig prosjekthistorikk.
Migreringen til det konsoliderte lagringssystemet består av to deler: et nytt flagg for å styre migreringsfasen og et skript som behandler alle aktive og mykt slettede prosjekter.
Faser:
OVERLEAF_FILESTORE_MIGRATION_LEVEL=0(standard): filer leses fra og skrives til filestore. Filer skrives asynkront til historikken.OVERLEAF_FILESTORE_MIGRATION_LEVEL=1: filer leses fra historikken med filestore som reserve, og skrives til både filestore og historikken. Nedgradering tilOVERLEAF_FILESTORE_MIGRATION_LEVEL=0er mulig.OVERLEAF_FILESTORE_MIGRATION_LEVEL=2: filer leses fra og skrives bare til historikken. Nedgradering tilOVERLEAF_FILESTORE_MIGRATION_LEVEL=1er ikke mulig, med mindre migreringen ble utført “offline”.
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID) og historikk (OVERLEAF_HISTORY_S3_ACCESS_KEY_ID): Gi filestore-brukeren lesetilgang til historikkbøtta for blober, OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET . Filestore-tjenesten vil fremover betjene lesinger fra kompileringstjenesten.
Standardlisensen for Server Pro lar deg kjøre applikasjonen både i et produksjonsmiljø og i et miljø som ikke er produksjon / et sandkassemiljø; det anbefales sterkt at du setter opp et miljø som ikke er produksjon, for testing.
Hvis du oppgraderer til Server Pro/CE versjon
6.0 og senere bestemmer deg for å nedgradere til en tidligere versjon, bør du gjenopprette fra en fullstendig sikkerhetskopi av systemet.Migreringsprosedyre
1
Ta en sikkerhetskopi
Ta en fullstendig sikkerhetskopi av instansen med et konsistent øyeblikksbilde av katalogene mongo, redis og sharelatex.
2
Oppdater
Toolkit: Bruk skriptet
$ bin/upgrade til å oppgradere toolkit til nyeste versjon. Når du blir spurt, må du ikke bekrefte spørsmålet Upgrade image? — rediger i stedet filen config/version manuelt og sett verdien til 5.5.7.Eldre docker-compose.yml: Oppdater versjonen av sharelatex-tjenesten til 5.5.7.3
Anslå antall berørte prosjekter
4
Tøm køene for prosjekthistorikk
"project_ids":0).Hvis “failedProjects” ikke er null, må du kontakte support og ikke fortsette med migreringen av binærfiler.
5
Gå videre til migreringsfase 1
Toolkit: Sett
OVERLEAF_FILESTORE_MIGRATION_LEVEL=1 i config/variables.env.Eldre docker-compose.yml: Sett OVERLEAF_FILESTORE_MIGRATION_LEVEL: '1' i environment-delen av sharelatex-tjenesten.6
Bruk konfigurasjonsendringen og start instansen
Toolkit:
bin/up -dEldre docker-compose.yml: docker compose up -d7
Bekreft tilgang til binærfiler
Åpne et prosjekt i Overleaf-editoren i nettleseren og velg en binærfil, for eksempel et bilde.
8
Kjør migreringsskriptet
Hvis du lagrer loggfiler permanent utenfor sharelatex-containeren, må du sørge for at eieren av loggkatalogen er satt til brukeren
www-data (uid=33), slik at loggfilen som produseres, kan skrives.0, og de siste linjene viser at det ikke var noen feil:9
Stopp instansen
Toolkit:
bin/stop sharelatexEldre docker-compose.yml: docker compose stop sharelatex10
Gjør gamle filer utilgjengelige for applikasjonen
Du kan nå flytte de gamle filene til sekundær lagring. Vi anbefaler å beholde filene en stund i tilfelle det oppstår problemer senere.
11
Gå videre til migreringsfase 2
Toolkit: Sett
OVERLEAF_FILESTORE_MIGRATION_LEVEL=2 i config/variables.env.Eldre docker-compose.yml: Sett OVERLEAF_FILESTORE_MIGRATION_LEVEL: '2' i environment-delen av sharelatex-tjenesten.12
Bruk konfigurasjonsendringen og start instansen
Toolkit:
bin/up -dEldre docker-compose.yml: docker compose up -d13
Bekreft tilgang til binærfiler
Åpne et prosjekt i Overleaf-editoren i nettleseren og velg en binærfil, for eksempel et bilde.
Frakoblet migrering
Hvis du vil hindre brukere i å logge inn mens skriptet for migrering av binærfiler kjører, følger du disse trinnene:- Logg inn på Overleaf-instansen med en administratorkonto
- Klikk på knappen Admin og velg Manage Site
- Klikk på fanen Open/Close Editor
- Klikk på knappen Close Editor
- Klikk på knappen Disconnect all users
Migrering under drift
Det er mulig å kjøre migreringsskriptene mens applikasjonen fortsatt kjører. Det er noen hensyn du må ta:- Migreringsprosessen er IO-intensiv, så du bør overvåke ressursbruken mens skriptet kjører.
- Med høy samtidighet i behandlingen kan hendelsesløkken i
filestore-tjenesten bli noe blokkert, noe som vil gi en forringet brukeropplevelse. Vi anbefaler å starte med standardverdiene--concurrency=10og--concurrent-batches=1. - Du kan stoppe skriptet når som helst. Når det startes igjen, validerer det de tidligere prosjektene og hopper over filer som allerede er behandlet. Dette er nyttig hvis du foretrekker å kjøre migreringen i rolige perioder (f.eks. om natten).
--report). Hvis antallet prosjekter er stort, kan du kjøre skriptet og overvåke fremdriften, og deretter avgjøre om du vil fortsette å kjøre det under drift eller frakoblet ut fra ditt konkrete tilfelle.
Rydd opp i eldre binærfildata
Når du er ferdig med migreringen og har bekreftet at prosjektene fortsatt har tilgang til alle filene sine, kan du fjerne den gamle fillagringen i/var/lib/overleaf/data/user_files. Vi anbefaler sterkt å beholde disse filene en stund - du kan gjøre dem utilgjengelige for applikasjonen ved å gi mappen nytt navn først.
Feilsøking
Vi vil legge til feilsøkingsråd her. Merk at selv om vi normalt bare tilbyr støtte til Server Pro-kunder, vil vi på grunn av denne migreringens art også gjøre vårt beste for å hjelpe CE-kunder som opplever problemer som er spesifikke for migreringen av binærfiler. Hvis skriptet for migrering av binærfiler feiler (dvs. avslutter med en feil eller skriver ut et antall mislykkede prosjekter som ikke er null), sender du følgende detaljer til supportteamet vårt på e-post support+filestoremigration@overleaf.com, med følgende: Emne: Binary file migration problem Innhold:- Instanstype: CE eller Server Pro (stryk det som ikke passer)
- Installasjonstype: Overleaf toolkit eller
docker-compose.ymleller annet (stryk det som ikke passer) - Versjon: 5.5.x (toolkit:
$ cat config/version) - Utdata fra migreringsskriptet (som skal ligge i containeren under
/var/log/overleaf) - Rapport: (kjør migreringsskriptet med
--report) - Behandlede prosjekter: (fra siste kjøring av skriptet)
- Varighet av migreringen:
- Utdata fra
bin/doctor(ved bruk av toolkit) - Toolkit-versjon:
$ git rev-parse HEAD(ved bruk av Toolkit)
filestore-tjenesten i e-posten. Du finner dem på /var/log/overleaf/filestore.log i sharelatex-containeren og kan eksportere dem slik:
Manglende filer
Eldre versjoner av Server Pro/CE opprettet oppføringer i filtreet før brukeropplastinger var fullført, noe som kunne føre til at filer så ut til å mangle når en opplasting feilet. Du kan finne noen slike tilfeller rapportert som feil når alle filtrærne behandles. Hvis antallet manglende filer er lavt, kan du vurdere å gå gjennom disse tilfellene manuelt og slette dem fra editoren i nettleseren. Hvis antallet manglende filer er høyt, kan du vurdere å kontakte support, se e-postmalen ovenfor.Finne ødelagte filtrær
Migreringen kan feile for prosjekter som har et feilformet filtre (for eksempel der filnavn er tomme). Du kan finne en liste over disse problemene med skriptetfind_malformed_filetrees, som sjekker alle prosjekter i databasen:
fix_malformed_filetree og kjører kommandoen én gang for hver ugyldig sti:

