Migrasi S3
Instruksi ini ditujukan untuk v5.x dan versi yang lebih baru. Jika Anda mengikuti panduan ini untuk versi yang lebih lama, gunakan
sharelatex alih-alih overleaf pada nama path dan awalan SHARELATEX_ alih-alih OVERLEAF_ untuk variabel lingkungan. Untuk v6 dan versi yang lebih baru, lewati perintah user_files lama.Kami ingin mendengar dari Anda! Jika Anda ingin berbagi dengan kami berapa banyak file yang Anda migrasikan, total volumenya, dan berapa lama migrasi berlangsung, kirim email ke
ayaka-notes@outlook.com .Persyaratan
- Object storage kompatibel S3 yang dapat dihubungi, lihat #s3-setup untuk pilihannya
- Ruang disk kosong untuk memigrasikan data yang ada, kira-kira sebesar ukuran data di disk saat ini
- Jendela pemeliharaan untuk melakukan migrasi yang sebenarnya
- Cadangan lengkap, termasuk konfigurasi, agar dapat dipulihkan darinya
Memperkirakan ukuran disk yang diperlukan untuk migrasi
Kita dapat menggunakandu untuk menghitung penggunaan disk saat ini:
Direktori history sudah memiliki tata letak yang benar. Anda dapat mengunggah langsung dari folder sumber yang di-bind-mount, yang tidak memerlukan ruang disk tambahan.
Langkah-langkah migrasi
Langkah 0: matikan instance
Kita perlu memastikan bahwa semua file pengguna/templat akan dimigrasikan. Sebaiknya matikan instance untuk menghindari terlewatnya file yang baru diunggah. Silakan lihat panduan kami tentang melakukan pencadangan yang konsisten untuk prosedur mematikan instance.Langkah 1: tulis ulang tata letak direktori
Kita perlu menulis ulang tata letak direktori file proyek untuk mengunggahnya ke S3. Tata letak direktori untuk penyimpanan lokal di filestore adalah<project-id>_<file-id> dan tata letak direktori di S3 adalah <project-id>/<file-id>.
Berikut ini, /srv/overleaf-s3-migration digunakan untuk menyimpan file dalam tata letak direktori yang baru. Ganti /srv/overleaf-bind-mount dengan direktori host yang di-mount ke /var/lib/overleaf. Jalankan perintah penyalinan di host dengan izin untuk membaca dan menulis direktori-direktori ini; container tetap dalam keadaan berhenti.
Kita dapat memanfaatkan tar untuk menulis ulang tata letak:
Langkah 2: unggah file
Sesuai preferensi Anda, Anda dapat menggunakan klien S3 minio mc atau aws cli untuk mengunggah file ke object storage kompatibel S3 Anda. aws cli- Di sini Anda harus mengganti
overleaf-user-files,overleaf-template-files,overleaf-project-blobs, danoverleaf-chunksdengan nama bucket S3 Anda. - Ganti juga
/srv/overleaf-bind-mountdengan path lokal dari bind-mount/var/lib/overleaf. Secara default, path ini adalah~/overleaf_datapada deployment docker-compose.yml dan<toolkit-checkout>/data/overleafsaat menggunakan Toolkit.
Langkah 3: jalankan instance yang mengarah ke S3
Tambahkan semua variabel terkait S3 ke konfigurasi Anda, sebagaimana dijelaskan di bagian Ikhtisar variabel dalam panduan penyiapan S3. Pertahankan bind-mount direktori data: direktori ini mungkin juga berisi kunci enkripsi Zotero atau Mendeley yang tidak dimigrasikan ke S3.Harap tetap pertahankan bind-mount disk sementara untuk file ephemeral.
- dapat melihat pratinjau file biner di editor
- dapat mengompilasi PDF dengan gambar
- dapat mengunggah file baru
Rollback
Anda dapat melakukan rollback migrasi dengan mulus dengan membalik langkah-langkahnya:- Matikan instance
- Salin kembali file dengan membalik urutan sumber/tujuan
- Tulis file baru kembali ke direktori lokal menggunakan
transformkebalikannya - Jalankan ulang instance dengan konfigurasi lama
Transform pertama menghapus folder tingkat atas. Transform kedua mengubah tata letak direktori menjadi datar. Wildcard memastikan bahwa hanya file yang diekstrak, bukan folder induknya (proyek).

