Migrering af binære filer
Den kommende større version6.0 af Server Pro og Community Edition vil halvere lagerforbruget for binære filer. En online-migrering er inkluderet i version 5.5.7 , hvilket giver minimal nedetid som en del af opgraderingen.
Siden Server Pro 4.x er binære filer gemt to gange: i lageret for aktive filer i “filestore” og i systemet for fuld projekthistorik. Fremover gemmes én enkelt kopi af hver fil i systemet for fuld projekthistorik.
Migreringen til det konsoliderede lagersystem består af to dele: et nyt flag til styring af migreringens fase og et script, der behandler alle aktive og blødt slettede projekter.
Faser:
OVERLEAF_FILESTORE_MIGRATION_LEVEL=0(standard): filer læses fra og skrives til filestore. Filer skrives asynkront til historikken.OVERLEAF_FILESTORE_MIGRATION_LEVEL=1: filer læses fra historikken med filestore som fallback og skrives til både filestore og historikken. Nedgradering tilOVERLEAF_FILESTORE_MIGRATION_LEVEL=0er mulig.OVERLEAF_FILESTORE_MIGRATION_LEVEL=2: filer læses fra og skrives kun til historikken. Nedgradering tilOVERLEAF_FILESTORE_MIGRATION_LEVEL=1er ikke mulig, medmindre den blev udført “offline”.
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID) og historik (OVERLEAF_HISTORY_S3_ACCESS_KEY_ID): Giv filestore-brugeren læseadgang til historik-bucketen for blobs OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET . Filestore-tjenesten vil fremover håndtere læsninger fra compiler-tjenesten.
Standardlicensen til Server Pro giver dig mulighed for at køre applikationen i et produktionsmiljø samt i et ikke-produktions-/sandbox-miljø; det anbefales kraftigt, at du opretter et ikke-produktionsmiljø til test.
Hvis du opgraderer til Server Pro/CE version
6.0 og senere beslutter, at du vil nedgradere til en tidligere version, skal du gendanne fra en fuld systemsikkerhedskopi.Migreringsprocedure
1
Opret en sikkerhedskopi
Opret en fuld sikkerhedskopi af din instans med et konsistent øjebliksbillede af mapperne mongo, redis og sharelatex.
2
Opdater
Toolkit: Brug scriptet
$ bin/upgrade til at opgradere toolkit til den nyeste version. Når du bliver spurgt, skal du ikke bekræfte prompten Upgrade image? — rediger i stedet manuelt filen config/version, og sæt værdien til 5.5.7.Ældre docker-compose.yml: Opdater versionen af tjenesten sharelatex til 5.5.7.3
Estimer antallet af berørte projekter
4
Tøm projekthistorikkens køer
"project_ids":0).Hvis “failedProjects” ikke er nul, skal du kontakte support og ikke fortsætte med migreringen af binære filer.
5
Skift migreringsfasen til 1
Toolkit: Sæt
OVERLEAF_FILESTORE_MIGRATION_LEVEL=1 i config/variables.env.Ældre docker-compose.yml: Sæt OVERLEAF_FILESTORE_MIGRATION_LEVEL: '1' i afsnittet environment for tjenesten sharelatex.6
Anvend konfigurationsændringen, og start instansen
Toolkit:
bin/up -dÆldre docker-compose.yml: docker compose up -d7
Bekræft adgangen til binære filer
Åbn et projekt i Overleaf-editoren i browseren, og vælg en binær fil, f.eks. et billede.
8
Kør migreringsscriptet
Hvis du gemmer logfiler permanent uden for containeren sharelatex, skal du sikre, at ejeren af logmappen er sat til brugeren
www-data (uid=33), så den genererede logfil kan skrives.0, og de sidste linjer viser, at der ikke var nogen fejl:9
Stop instansen
Toolkit:
bin/stop sharelatexÆldre docker-compose.yml: docker compose stop sharelatex10
Gør gamle filer utilgængelige for applikationen
Du kan nu flytte de gamle filer til sekundært lager. Vi anbefaler, at du beholder filerne et stykke tid, hvis der skulle opstå problemer senere.
11
Skift migreringsfasen til 2
Toolkit: Sæt
OVERLEAF_FILESTORE_MIGRATION_LEVEL=2 i config/variables.env.Ældre docker-compose.yml: Sæt OVERLEAF_FILESTORE_MIGRATION_LEVEL: '2' i afsnittet environment for tjenesten sharelatex.12
Anvend konfigurationsændringen, og start instansen
Toolkit:
bin/up -dÆldre docker-compose.yml: docker compose up -d13
Bekræft adgangen til binære filer
Åbn et projekt i Overleaf-editoren i browseren, og vælg en binær fil, f.eks. et billede.
Offline-migrering
Hvis du vil forhindre brugerne i at logge ind, mens migreringsscriptet for binære filer kører, skal du følge disse trin:- Log ind på din Overleaf-instans med en administratorkonto
- Klik på knappen Admin, og vælg Manage Site
- Klik på fanen Open/Close Editor
- Klik på knappen Close Editor
- Klik på knappen Disconnect all users
Online-migrering
Det er muligt at køre migreringsscripts, mens applikationen stadig kører. Der er et par forhold, du skal tage højde for:- Migreringsprocessen er IO-intensiv, så du bør overvåge ressourceforbruget, mens scriptet kører.
- Med høj samtidighed i behandlingen kan event-loopet i tjenesten
filestoreopleve en vis blokering, hvilket vil give en forringet brugeroplevelse. Vi anbefaler at starte med standardværdierne--concurrency=10og--concurrent-batches=1. - Du kan stoppe scriptet når som helst. Hvis du starter det igen, validerer det de tidligere projekter og springer filer over, der allerede er behandlet. Det er nyttigt, hvis du foretrækker at køre migreringen i mindre travle timer (f.eks. om natten).
--report). Hvis antallet af projekter er stort, kan du køre scriptet og overvåge dets fremskridt og derefter beslutte, om du vil fortsætte online eller offline, afhængigt af din konkrete situation.
Oprydning af gamle data for binære filer
Når du er færdig med migreringen og har bekræftet, at projekterne stadig har adgang til alle deres filer, kan du fjerne det gamle fillager i/var/lib/overleaf/data/user_files. Vi anbefaler kraftigt, at du beholder disse filer et stykke tid – du kan gøre dem utilgængelige for applikationen ved først at omdøbe mappen.
Fejlfinding
Vi vil tilføje råd om fejlfinding her. Bemærk, at selvom vi normalt kun tilbyder support til Server Pro-kunder, vil vi i betragtning af denne migrerings karakter også gøre vores bedste for at hjælpe CE-kunder, der oplever problemer, som er specifikke for migreringen af binære filer. Hvis migreringsscriptet for binære filer mislykkes (dvs. afslutter med en fejl eller udskriver et antal mislykkede projekter, der ikke er nul), skal du sende følgende oplysninger til vores supportteam via e-mail support+filestoremigration@overleaf.com med angivelse af: Emne: Binary file migration problem Brødtekst:- Instanstype: CE eller Server Pro (slet det, der ikke passer)
- Installationstype: Overleaf toolkit eller
docker-compose.ymleller andet (slet det, der ikke passer) - Version: 5.5.x (toolkit:
$ cat config/version) - Output fra migreringsscriptet (som bør ligge i containeren under
/var/log/overleaf) - Rapport: (kør migreringsscriptet med
--report) - Behandlede projekter: (ifølge den seneste kørsel af scriptet)
- Migreringens varighed:
- Output fra
bin/doctor(når du bruger toolkit) - Toolkit-version:
$ git rev-parse HEAD(når du bruger Toolkit)
filestore til e-mailen. Du kan finde dem i /var/log/overleaf/filestore.log i containeren sharelatex og eksportere dem sådan her:
Manglende filer
Ældre versioner af Server Pro/CE oprettede poster i filtræet, før brugernes uploads var færdige, hvilket kunne få filer til at fremstå som manglende, hvis en upload mislykkedes. Du kan finde nogle få af disse tilfælde rapporteret som fejl, når alle filtræer behandles. Hvis antallet af manglende filer er lavt, kan du overveje at gennemgå disse tilfælde manuelt og slette dem fra editoren i browseren. Hvis antallet af manglende filer er højt, kan du overveje at kontakte support, se e-mailskabelonen ovenfor.Find ødelagte filtræer
Migreringen kan mislykkes for projekter, der har et fejlformateret filtræ (for eksempel hvor filnavne er tomme). Du kan finde en liste over disse problemer med scriptetfind_malformed_filetrees, som kontrollerer alle projekter i databasen:
fix_malformed_filetree og køre kommandoen én gang for hver forkert sti:

