Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:Rastgele yazmayı desteklemek için yerel geçici dizin yapılandırma

Son Güncelleme:Oct 02, 2026

ossfs 2,0.9 ve sonraki sürümler, yerel geçici dizine dayalı rastgele yazmayı destekler. --temp_dir bağlama seçeneğini yapılandırarak ossfs 2,0, yazılan verileri yerel diskte aşamalandırır ve bağlantı noktasına POSIX uyumlu tam rastgele yazma semantiği (isteğe bağlı ofsetlerde yazma, herhangi bir boyuta kısaltma ve yazarken okuma gibi) kazandırır. Bu konu, rastgele yazmanın çalışma prensiplerini, yapılandırma yöntemlerini, kullanım kısıtlamalarını ve önerilerini açıklar.

Arka plan bilgileri

OSS'te bir nesne oluşturulduktan sonra kısmen değiştirilemez. İçerik değişikliği, nesnenin tamamının üzerine yazılmasını gerektirir. ossfs 2,0'ın varsayılan modunda yazma yolu akışlı yüklemeyi kullanır: Veriler yazıldıkça sıralı parçalar halinde OSS'e yüklenir. Bu yaklaşımın aşağıdaki sınırlamaları vardır:

  • Yalnızca sıralı yazmalar desteklenir. Dosya sonunun ötesindeki konumlara yapılan pwrite çağrıları desteklenmez.

  • truncate işlemi yalnızca boyutu 0'a kısaltmayı destekler. Boyutun sıfır dışı başka bir değere kısaltılması ENOTSUP hatası döndürür.

  • Bir dosya yazılırken (kapatılmadan önce) okunamaz. Bu işlem EBUSY hatası döndürür.

AI ajanı kod çalıştırma, satır içi betik düzenleme ve bilimsel hesaplamanın ara sonuçları gibi senaryolar genellikle rastgele yazma semantiğine dayanır. ossfs 2,0'ın rastgele yazma özelliği, yazılan verileri yerel geçici dizinde aşamalandırır; parça yönetimi ve artımlı yükleme ile birlikte nesne depolama üzerinde rastgele yazmayı uygular.

ossfs 2,0'ın rastgele yazma modu şu özelliklere sahiptir:

  • Tam POSIX rastgele yazma semantiği: İsteğe bağlı ofsetlerde pwrite, O_APPEND ve herhangi bir boyuta (büyütme veya küçültme) truncate işlemini destekler.

  • Yazarken okuma: Bir dosya yazılırken aynı anda okunabilir. Değiştirilen kısımlar yerel aşamalandırma alanından, değiştirilmeyen kısımlar doğrudan OSS'ten okunur.

  • Artımlı yükleme: Flush veya close işleminde yalnızca değiştirilen veri blokları yerel diskten yüklenir. Değiştirilmeyen kısımlar OSS üzerinde sunucu tarafı kopyalama ile işlenir; bu sayede yerel G/Ç ve yükleme bant genişliği tüketilmez.

  • Disk alanı koruması: Yerleşik genel disk bütçesi, aşamalandırma diskinde alan azaldığında yazmalar için ENOSPC döndürür. Sistem diskinin dolmasını önlemek amacıyla bağlama sırasında boş alan eşiği ayarlayabilirsiniz.

Not

Yerel geçici dizin yalnızca yazma yoluna hizmet eder. Yerel veri önbelleğinden (--disk_data_cache_dir, bir okuma önbelleği) bağımsızdır. Her ikisini de aynı anda (farklı dizinler kullanarak) etkinleştirebilirsiniz; aralarında herhangi bir etkileşim olmaz.

Varsayılan olarak ossfs 1,0, yerel geçici dizin olarak /tmp dizinini kullanır. Yolu ossfs 1,0'ın varsayılan yoluyla tutarlı hale getirmek için --temp_dir=/tmp yapılandırın.

Önemli

Rastgele yazma etkinleştirildikten sonra yazma performansı, yerel geçici dizinin bulunduğu diskin okuma/yazma performansı ile sınırlıdır. Büyük dosyaların kopyalanması gibi toplu sıralı yazma içeren senaryolarda performans, varsayılan moda göre çok daha düşüktür. Bu özelliği yalnızca iş yükünüz gerçekten rastgele yazma semantiği gerektirdiğinde etkinleştirin.

Çalışma prensipleri

Yerel aşamalandırma ve birleştirilmiş yükleme

Rastgele yazma etkinleştirildikten sonra ossfs 2,0, rastgele yazılan her dosya için yerel geçici dizinde bir aşamalandırma dosyası oluşturur ve en son değişiklikleri sabit veri bloğu (chunk) granüleritesinde yerel olarak kaydeder:

  • Yazılan veriler doğrudan yerel aşamalandırma dosyasına aktarılır. Bir yazma işlemi bulutta zaten mevcut olan bir veri bloğuyla yalnızca kısmen örtüşüyorsa ossfs, yerel olarak aşamalandırılan verilerin eksiksiz olmasını sağlamak için önce o bloğu OSS'ten getirir.

  • fsync veya close işleminde, yerel olarak aşamalandırılan değişiklikler buluttaki verilerle otomatik olarak birleştirilir ve yüklenir: Değiştirilen kısımlar yerel diskten yüklenir, değiştirilmeyen kısımlar ise OSS üzerinde sunucu tarafı kopyalama ile işlenir. Bu sayede dosyanın tamamı yeniden iletilmez ve yerel disk okuma bant genişliği tüketilmez.

  • Başarılı bir yüklemenin ardından aşamalandırma disk alanı otomatik olarak serbest bırakılır.

Yazarken okuma

Bir dosya yazılırken aynı zamanda okunabilir: Değiştirilen kısımlar yerel aşamalandırma alanından, değiştirilmeyen kısımlar ise doğrudan OSS'ten okunur.

Disk alanı koruması

Bağlama sırasında ossfs, geçici dizinin bulunduğu diskteki boş alanın ayrılmış gereksinimi karşılayıp karşılamadığını kontrol eder ve karşılamazsa bağlamayı reddeder. Ayrılan disk alanı yetersiz kalırsa, disk dolması nedeniyle işlem çökmesi yerine yazmalar ENOSPC döndürür.

Yapılandırma yöntemleri


Yapılandırma öğesi


Zorunlu


Açıklama


Varsayılan değer


temp_dir


Hayır


Yerel geçici dizinin yolu. Mutlak bir yol olmalıdır. Boş olmayan bir değer ayarlamak rastgele yazmayı etkinleştirir. Bu özelliği devre dışı bırakmak için boş bırakın.


Boş


temp_dir_free_bytes


Hayır


Geçici dizinin bulunduğu diskte ayrılan minimum boş disk alanı (bayt cinsinden; K, M ve G gibi birimleri destekler). ossfs2 bu ayrılan alanı aşamalandırma verileri için kullanmaz: Boş disk alanı bu eşiğin altına düştüğünde yeni yazmalar ENOSPC döndürür ve aynı diskteki diğer iş yükleri için bir güvenlik marjı bırakır. Bağlama sırasında boş disk alanı zaten bu değerin altındaysa bağlama başarısız olur. Minimum değer: 64 MiB.


1 GiB


random_write_max_file_size


Hayır


Rastgele yazma modunda tek bir dosyanın maksimum mantıksal boyutu (bayt cinsinden; K, M ve G gibi birimleri destekler). Bu sınırı aşan yazma veya kısaltma işlemleri EFBIG döndürür. Fiziksel üst sınır, OSS çok parçalı yükleme kapasitesidir (10.000 parça × 5 GiB, yaklaşık 48,8 TiB).


100 GiB

Kısıtlamalar:

  • --temp_dir parametresinin işaret ettiği dizin yoksa otomatik olarak oluşturulur. Sistem diski veya diğer iş yükleriyle alan rekabetini önlemek için bağımsız bir bölüm veya disk kullanmanızı öneririz.

  • Yazılmakta olan dosyaların verileri yerel geçici dizinde saklanır. Diskte yeterli kapasite yoksa yazmalar ENOSPC döndürür. temp_dir_free_bytes tarafından ayrılan alan çıkarıldıktan sonra kalan boş disk alanına yazılabilir disk alanı denir. ossfs2 yalnızca yazılmakta olan verileri depolamak için bu alanı kullanır. Yazılabilir disk alanı, eşzamanlı olarak yazılan tüm dosyaların toplam boyutundan büyük olmalıdır (en kötü durumda, bir dosyanın tamamı yerel olarak yazılabilir).

  • Aynı makinede birden fazla ossfs2 örneği bağlandığında, aşamalandırma dosya adları çakışmadığı için aynı geçici dizini paylaşmalarına izin verilir. Ancak birden fazla örnek diskin alanı ve G/Ç kaynakları için rekabet edeceğinden bağımsız dizinler kullanmanızı öneririz.

  • --temp_dir ve --enable_appendable_object birbirini dışlar ve aynı anda etkinleştirilemez.

Örnek bağlama komutu:

ossfs2 mount /mnt/oss/ \
  --oss_bucket <your-bucket> \
  --oss_endpoint <your-endpoint> \
  --oss_access_key_id <ak> \
  --oss_access_key_secret <sk> \
  --temp_dir /mnt/disk/ossfs2/temp \
  --temp_dir_free_bytes 1G

Ortam gereksinimleri


Parametre


Gereksinim


Geçici dizinin disk türü


Elastik geçici disk, yerel NVMe veya ESSD önerilir. Disk yazma aktarım hızı, rastgele yazma gecikme süresini ve yükleme hızını doğrudan etkiler.


Kullanılabilir disk alanı


temp_dir_free_bytes değerinden az olmamalıdır. Ayrıca, yazılabilir disk alanının (yukarıdaki kısıtlamalara bakın) eşzamanlı olarak yazılan dosyaların verilerini barındırabilecek kadar büyük olması gerekir.

Özelliğin etkileri

--temp_dir etkinleştirilmeden önceki ve sonraki yazma yeteneklerinin karşılaştırması:


İşlem


Varsayılan mod


Rastgele yazma modu


Sıralı ekleme yazma


Desteklenir


Desteklenir


İsteğe bağlı bir ofsette pwrite (dosya sonunun ötesinde)


Desteklenmez


Desteklenir


Boyutu 0'a kısaltma (truncate)


Desteklenir


Desteklenir


Herhangi bir boyuta kısaltma (büyütme veya küçültme)


Desteklenmez (ENOTSUP)


Desteklenir


Mevcut bir dosyaya O_APPEND yazma


Desteklenir


Desteklenir


Yazılırken bir dosyayı okuma


Desteklenmez (EBUSY)


Desteklenir


Aynı dosyaya eşzamanlı olarak birden fazla tanıtıcıyla yazma


Desteklenmez


Desteklenir

Dayanıklılık semantiği:

  • Varsayılan olarak rastgele yazma modu fsync semantiğini izler: fsync işlemi, yerel değişikliklerin buluttaki verilerle birleştirilerek yüklenmesini tetikler. Başarılı dönüş, verilerin OSS'e kalıcı olarak kaydedildiği anlamına gelir. Kalan veriler dosya kapatıldığında da yüklenir.

  • Yükleme hatası uygulamaya hata olarak döndürülür ve uygulama fsync aracılığıyla yeniden deneyebilir. Yükleme sonunda başarısız olursa ve dosya kapatılırsa kalıcı hale getirilmemiş veriler kaybolur ve dosya içeriği uzak taraftaki son başarılı yüklenen sürüme geri döner.

  • İşlem anormal şekilde sonlanırsa yüklenmemiş aşamalandırma verileri kaybolur ancak OSS'teki nesne son başarılı yüklemenin durumunu korur. Bozuk bir nesne oluşmaz.

Kullanım önerileri

Yerel geçici dizine dayalı rastgele yazma, OSS bağlantı noktasında yerel dosya sistemi benzeri yazma semantiği gerektiren senaryolar için uygundur.

Rastgele yazmanın etkinleştirilmesi için uygun senaryolar:


Senaryo


Kullanım önerisi


AI ajanı kod çalıştırma / sandbox ortamları (ajanlar ve kod yorumlayıcılar dosyalarda keyfi okuma/yazma ve satır içi düzenleme gerçekleştirir)


Rastgele yazmayı etkinleştirin. Geçici dizin için bağımsız, yüksek performanslı bir disk kullanmanızı ve eşzamanlı olarak yazılan dosyaların toplam boyutuna göre yazılabilir disk alanı ayırmanızı öneririz.


Bilimsel hesaplama veya simülasyon uygulamalarının ara sonuç dosyaları


Rastgele yazmayı etkinleştirin. Eşzamanlı olarak yazılan dosyaların toplam boyutuna göre yazılabilir disk alanını planlayın.

Rastgele yazmanın etkinleştirilmesinin önerilmediği senaryolar:


Senaryo


Kullanım önerisi


Büyük dosyaların kopyalanması (cp, rsync ve benzeri araçlar kullanılarak bağlantı noktasına toplu yazma)


Bu senaryoda yazma performansı yerel diskle sınırlıdır ve varsayılan moda göre çok daha düşüktür. Bunun yerine varsayılan akışlı yükleme modunu kullanın.


Saf sıralı ekleme yazmaları (akışlı günlük yazma)


Varsayılan akışlı yükleme yolu daha düşük ek yüke sahiptir, bu nedenle rastgele yazmayı etkinleştirmek gerekli değildir. Yazarken okuma gerekiyorsa bunun yerine --enable_appendable_object seçeneğini düşünün.

Disk bütçesi önerileri:

  • Aşamalandırma verilerinin sistem diskini doldurup ana bilgisayar kararlılığını etkilemesini önlemek için geçici dizini sistem diskinden ayrı tutun. Makinede yalnızca bir disk varsa, sistem için yeterli boş alan ayırmak amacıyla temp_dir_free_bytes değerini daha büyük bir değere (örneğin 10G) ayarlamanızı öneririz.

  • Yazılabilir disk alanı (yukarıdaki kısıtlamalara bakın), eşzamanlı olarak yazılan dosyaların toplam boyutundan büyük olmalıdır.

  • 100 GiB'den büyük tek bir dosya için --random_write_max_file_size değerini açıkça artırmanın yanı sıra (örneğin --random_write_max_file_size=500G), yazılabilir disk alanının da o dosyanın boyutunu aşmasını sağlamanız gerekir.