İkili dosya taşıması
Server Pro ve Community Edition’ın yaklaşan6.0 ana sürümü, ikili (binary) dosyaların depolama kullanımını yarıya indirecektir. 5.5.7 sürümüne, yükseltmenin bir parçası olarak kesinti süresini en aza indiren çevrimiçi bir taşıma dahil edilmiştir.
Server Pro 4.x’ten bu yana ikili dosyalar iki kez depolanmaktadır: “filestore” içindeki etkin dosya deposunda ve tam proje geçmişi sisteminde. Bundan sonra her dosyanın tek bir kopyası tam proje geçmişi sisteminde depolanacaktır.
Birleştirilmiş depolama sistemine taşıma iki bölümden oluşur: Taşımanın aşamasını denetlemek için yeni bir bayrak ve tüm etkin ve geçici olarak silinmiş (soft-deleted) projeleri işleyen bir betik.
Aşamalar:
OVERLEAF_FILESTORE_MIGRATION_LEVEL=0(varsayılan): dosyalar filestore’dan okunur ve filestore’a yazılır. Dosyalar geçmişe eşzamansız olarak yazılır.OVERLEAF_FILESTORE_MIGRATION_LEVEL=1: dosyalar filestore’a geri dönüş (fallback) ile geçmişten okunur ve hem filestore’a hem de geçmişe yazılır.OVERLEAF_FILESTORE_MIGRATION_LEVEL=0seviyesine geri dönmek mümkündür.OVERLEAF_FILESTORE_MIGRATION_LEVEL=2: dosyalar yalnızca geçmişten okunur ve yalnızca geçmişe yazılır. Taşıma “çevrimdışı” yapılmadıysaOVERLEAF_FILESTORE_MIGRATION_LEVEL=1seviyesine geri dönmek mümkün değildir.
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID) ile geçmiş (OVERLEAF_HISTORY_S3_ACCESS_KEY_ID) için ayrı servis hesapları kullanıyorsanız: Lütfen filestore kullanıcısına blob’lar için geçmiş bucket’ı olan OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET üzerinde okuma erişimi verin. Bundan sonra derleyici servisinden gelen okumaları filestore servisi karşılayacaktır.
Standart Server Pro lisansı, uygulamayı hem bir üretim ortamında hem de bir üretim dışı/sandbox ortamında çalıştırmanıza izin verir; test için bir üretim dışı ortam hazırlamanız önemle tavsiye edilir.
Server Pro/CE
6.0 sürümüne yükseltir ve daha sonra önceki bir sürüme geri dönmeye karar verirseniz, tam bir sistem yedeğinden geri yükleme yapmalısınız.Taşıma prosedürü
1
Yedek oluşturun
Örneğinizin mongo, redis ve sharelatex dizinlerinin tutarlı bir anlık görüntüsünü içeren tam bir yedeğini oluşturun.
2
Güncelleyin
Toolkit: toolkit’i en son sürüme yükseltmek için
$ bin/upgrade betiğini kullanın. Sorulduğunda Upgrade image? istemini onaylamayın — bunun yerine config/version dosyasını manuel olarak düzenleyin ve değeri 5.5.7 olarak ayarlayın.Eski docker-compose.yml: sharelatex servisinin sürümünü 5.5.7 olarak güncelleyin.3
Etkilenen projelerin sayısını tahmin edin
4
Proje geçmişi kuyruklarını boşaltın
"project_ids":0) boşaltma işlemini tekrarlayın.“failedProjects” sıfır değilse, lütfen destek ekibine ulaşın ve ikili dosya taşımasına devam etmeyin.
5
Taşıma aşamasını 1'e ilerletin
Toolkit:
config/variables.env içinde OVERLEAF_FILESTORE_MIGRATION_LEVEL=1 ayarlayın.Eski docker-compose.yml: sharelatex servisinin environment bölümünde OVERLEAF_FILESTORE_MIGRATION_LEVEL: '1' ayarlayın.6
Yapılandırma değişikliğini uygulayın ve örneği başlatın
Toolkit:
bin/up -dEski docker-compose.yml: docker compose up -d7
İkili dosyalara erişimi doğrulayın
Tarayıcıda Overleaf düzenleyicisinde bir proje açın ve görsel gibi bir ikili dosya seçin.
8
Taşıma betiğini çalıştırın
Günlük dosyalarını sharelatex konteynerinin dışında kalıcı olarak saklıyorsanız, çıktı günlük dosyasının yazılabilmesi için günlük dizininin sahibinin
www-data kullanıcısı (uid=33) olarak ayarlandığından emin olun.0 çıkış kodu ve hata olmadığını belirten son satırları alırsınız:9
Örneği durdurun
Toolkit:
bin/stop sharelatexEski docker-compose.yml: docker compose stop sharelatex10
Eski dosyaları uygulama için erişilemez hâle getirin
Artık eski dosyaları ikincil depolamaya taşıyabilirsiniz. Daha sonra sorun çıkma ihtimaline karşı dosyaları bir süre saklamanızı öneririz.
11
Taşıma aşamasını 2'ye ilerletin
Toolkit:
config/variables.env içinde OVERLEAF_FILESTORE_MIGRATION_LEVEL=2 ayarlayın.Eski docker-compose.yml: sharelatex servisinin environment bölümünde OVERLEAF_FILESTORE_MIGRATION_LEVEL: '2' ayarlayın.12
Yapılandırma değişikliğini uygulayın ve örneği başlatın
Toolkit:
bin/up -dEski docker-compose.yml: docker compose up -d13
İkili dosyalara erişimi doğrulayın
Tarayıcıda Overleaf düzenleyicisinde bir proje açın ve görsel gibi bir ikili dosya seçin.
Çevrimdışı taşıma
İkili dosya taşıma betiği çalışırken kullanıcıların oturum açabilmesini engellemek istiyorsanız lütfen şu adımları izleyin:- Overleaf örneğinize bir yönetici hesabıyla giriş yapın
- Admin düğmesine tıklayın ve Manage Site seçeneğini seçin
- Open/Close Editor sekmesine tıklayın
- Close Editor düğmesine tıklayın
- Disconnect all users düğmesine tıklayın
Çevrimiçi taşıma
Uygulama çalışmaya devam ederken taşıma betiklerini çalıştırmak mümkündür. Göz önünde bulundurulması gereken birkaç husus vardır:- Taşıma işlemi yoğun G/Ç (IO) gerektirir; betik çalışırken kaynak kullanımını izlemelisiniz.
- Yüksek işlem eşzamanlılığında
filestoreservisindeki olay döngüsü (event loop) bir miktar bloklanabilir ve bu da kullanıcı deneyiminin kötüleşmesine yol açar. Varsayılan--concurrency=10ve--concurrent-batches=1değerleriyle başlamanızı öneririz. - Betiği istediğiniz zaman durdurabilirsiniz. Yeniden başlatmak önceki projeleri doğrular ve zaten işlenmiş dosyaları atlar. Bu, taşımayı daha az yoğun saatlerde (ör. gece) çalıştırmayı tercih ettiğiniz durumlarda kullanışlıdır.
--report ile çalıştırdığınızdaki çıktıya bakın) siteyi kapatıp taşımayı bir bakım penceresinde çevrimdışı çalıştırmanızdır. Proje sayısı fazlaysa, betiği çalıştırıp ilerlemesini izleyebilir, ardından kendi durumunuza göre çevrimiçi mi yoksa çevrimdışı mı devam edeceğinize karar verebilirsiniz.
Eski ikili dosya verilerini temizleme
Taşımayı tamamlayıp projelerin tüm dosyalarına hâlâ erişebildiğini doğruladıktan sonra,/var/lib/overleaf/data/user_files içindeki eski dosya depolamasını kaldırabilirsiniz. Bu dosyaları bir süre saklamanızı önemle tavsiye ederiz — önce klasörü yeniden adlandırarak uygulama için erişilemez hâle getirebilirsiniz.
Sorun giderme
Sorun giderme önerilerini buraya ekleyeceğiz. Normalde yalnızca Server Pro müşterilerine destek sunsak da, bu taşımanın niteliği gereği ikili dosya taşımasına özgü sorunlar yaşayan CE müşterilerine de destek olmak için elimizden geleni yapacağımızı lütfen unutmayın. İkili dosya taşıma betiği başarısız olursa (yani bir hatayla çıkarsa veya sıfırdan farklı sayıda başarısız proje yazdırırsa), lütfen aşağıdaki ayrıntıları destek ekibimize support+filestoremigration@overleaf.com adresine e-postayla gönderin: Konu: Binary file migration problem Gövde:- Örnek Türü: CE veya Server Pro (uygun olmayanı silin)
- Kurulum Türü: Overleaf toolkit veya
docker-compose.ymlya da diğer (uygun olmayanı silin) - Sürüm: 5.5.x (toolkit:
$ cat config/version) - Taşıma betiği çıktısı (konteynerde
/var/log/overleafaltında bulunmalıdır) - Rapor: (taşıma betiğini
--reportile çalıştırın) - İşlenen projeler: (betiğin son çalıştırmasına göre)
- Taşımanın süresi:
bin/doctorçıktısı (toolkit kullanırken)- Toolkit sürümü:
$ git rev-parse HEAD(Toolkit kullanırken)
filestore servisinin günlük dosyalarını e-postaya eklemeyi düşünün. Bunları sharelatex konteyneri içinde /var/log/overleaf/filestore.log konumunda bulabilir ve şu şekilde dışa aktarabilirsiniz:
Eksik dosyalar
Server Pro/CE’nin eski sürümleri, kullanıcı yüklemeleri tamamlanmadan dosya ağacı girdileri oluşturuyordu; bu da bir yükleme başarısız olduğunda dosyaların eksik görünmesine neden olabiliyordu. Tüm dosya ağaçları işlenirken bu durumlardan birkaçının hata olarak raporlandığını görebilirsiniz. Eksik dosya sayısı azsa, bu durumları manuel olarak gözden geçirip tarayıcıdaki düzenleyiciden silmeyi düşünün. Eksik dosya sayısı fazlaysa destek ekibine ulaşmayı düşünün; yukarıdaki e-posta şablonuna bakın.Bozuk dosya ağaçlarını bulma
Taşıma, hatalı biçimlendirilmiş bir dosya ağacına sahip projelerde (örneğin dosya adlarının boş olduğu durumlarda) başarısız olabilir. Veritabanındaki tüm projeleri denetleyenfind_malformed_filetrees betiğini kullanarak bu sorunların bir listesini bulabilirsiniz:
fix_malformed_filetree betiğini kullanın ve komutu her hatalı yol için bir kez çalıştırın:

