Sabit sürücüye ardışık fiziksel olarak yerleştirilecek dosya dizisinin kopyalanması


1

Gerçekten karelere bölünmüş bir video oldukları sürece okunmaları gereken bir görüntü dosyaları dizisine sahibim. Bu nedenle, görüntü sırası art arda sabit sürücüye yazılmadığında, performans düşüktür, çünkü disk kolu sürekli olarak her bir dosya için arama yapan kafayı hareket ettirir. Dosyaları kopyalarken fiziksel olarak sabit diskte doğru sırayla yazmaya zorladığımı bilmem gerekiyor. OSX, Linux ve Windows prosedürleri gereklidir. Teşekkürler.


Yazılımınız ayrı dosyalar mı gerektiriyor veya tek bir "arşiv" dosyasıyla (ör. Tar veya sıkıştırılmamış bir zip) başa çıkabilir mi?
grawity

her dosyayı başlangıçta olduğu gibi daha yeni bir konuma kopyalaması gerekir. Dosyaları sıkıştırmak için sürücüden sipariş etmem gerekiyor.
Abraham

Sorunu yandan adımlamak için bir SSD / flash bellek kartı kullanın. Ayrıca, AFAIK Linux dosya sistemleri saklamak için iyi bir girişimde bulunuyor tek bir dosya bitişik, böylece tüm resimlerinizi bir arşiv dosyasına koyabilir ve ardından archivemount yardımcı programı .
xenoid

Seçim değil. Donanımımı veya dosya sistemimi değiştiremiyorum. Yalnızca sabit sürücüdeki dosya konumlarını yeniden sıralamak için doğru araca ihtiyacınız var.
Abraham

1
@dirkt, tiff, dpx, tga dosyaları gibi birkaç resim dosyası anlamına geliyordu. Hepsi bir filmin parçası ve bir dizi haline geldiler, bu yüzden en iyi şekilde birbirlerini bir sabit diske yerleştirdiler, bu yüzden gecikmeyi ve performansı kaybedecek zamanları aramayacaklardı.
Abraham

Yanıtlar:


2

contiglere yarar ANNELER HDD depolama bulunan Windows sistemlerinde bunu bir seferde bir dosya yapmak için özel olarak tasarlanmıştır. Eşdeğeri yok contiglere MacOS veya Linux için bulundu.

Bununla birlikte, bir SSD kullanıyorsanız, verilerin belleniminin koymaya karar verdiği her yerde SSD hücrelerinin içinde saklandığını lütfen unutmayın, bu nedenle NTFS'ye göre bitişik olarak yazılan dosyanın yararı ihmal edilebilir.


Sisinternals gelen contig faydası bu amaç için değil. Yalnızca tek dosyaları birleştirir. Sabit sürücüdeki sırayla bir dosya dizisini sıralamaz. Bu arada, açıkça belirttiğim gibi SSD olmadığını düşünüyorum. Dediğim gibi, bir sabit sürücü (katı hal sürücüsü değil) ve kolun sürekli kafa hareket ettiğini söyledim. SSD'nin kolları ve kafaları yoktur. Ve lütfen yayınlamamı, orijinal anlamını kaybettiği ve geri almak zorunda olduğum sürece düzenlemeye çalışmayın.
Abraham

0

Buna bir kerede özellikle Linux, Windows ve Mac için gerçekten cevap verebileceğinizi düşünmüyorum. Çünkü:

  • Her farklı dosya sistemi, dosyaları diskte farklı bir yere koyabilir. Bir ext3 / 4 dosya sistemi oluşturmayı deneyin ve kolayca tanımlanabilen bir dosyanın (örneğin tümü içeren) a 's) sona erer - muhtemelen cihaz boyunca "çizgili" olarak yazılacaktır.
  • Her bir farklı sabit sürücü, bilinmeyen sayıda tablaya sahip olabilir. başkanları ve sektörlerle eşleştirdikleri bilinmeyen bir yol
  • İşletim sistemi veya sabit disk sürücüsü, sektörleri sessizce farklı bir disk üstü konuma "yeniden eşleyebilir"

Genel olarak, dosya parçalanmasından kaçınmak istediğiniz gibi görünür ve dosyaları yazarken dosya sistemini boş (veya neredeyse boş) yaparak bunu yapabilirsiniz.


İstediğiniz sırayla belirli bir dosyayı birbiri ardına yazmak istiyorsanız (ancak işletim sistemi nihayetinde diskleri nereye yerleştireceğine karar verecek), gibi bir döngü kullanabilirsiniz (örneğin Linux'ta)

while read filename
cp filename destination
sync
done

Ya da var dd arabellek önbelleğini atla ve bazı eşitlemeleri de yap:

dd if=filename of=destination/filename oflags=direct,sync

Şimdi bunun gerçekleşmesini sağlayan ticari çözümler bulunduğunu, Data Mover'ı Brisght Technologies'den kontrol edebilirsiniz. Tüm bilgileri yazmak için sistemlerin diskte yer ayırdığını düşünüyorum. Tüm işletim sistemleri için bir çözüm istemiyorum, her biri için bir çözüm istiyorum. Bunun dosya sistemlerine ve işletim sistemine bağlı olduğunu biliyorum. Rsync'in böyle bir şey yapabileceği bir zil çalar, ama emin değilim.
Abraham

Veri taşıyıcı, doğrudan montaj hacimleri gibi ses çıkarmıyor ve & amp; kendi sektörünü yazıyor, bu yüzden ilk önce hangi dosyaları yazacağını seçmek gerekiyor. İşletim sisteminin düzenli yazma yapmasına izin vermek. Özelliklerden bazıları şunları desteklemektedir: "dizileri tanır ve dosya tabanlı dizileri tek bir dosya gibi yönetmenizi sağlar. Bu şekilde DataMover başlangıçta parçalanmış, rastgele ve serpiştirilmiş dosya düzenini proaktif olarak önler" ve sadece bir seferde bir dosya yazmaya çalışıyorum "İstediğiniz gibi kopya dizilerinin ve kopya tamponlarının sayısını ayarlayın. Sıralama yönetimi tüm dosyaların en uygun şekilde hizalanmasını sağlar"
Xen2050

Bence yanlış anladın. Bu yazılım, dosya dizisi parçalanmasından (ve elbette dosya parçalanmasından) kaçınmak için tasarlanmıştır.
Abraham

Ancak işletim sistemi dosya yazar, bir program işletim sistemine tam olarak nereye yazılacağını söyleyemez, sadece hangi dosyayı yazacak. Bright Technologies pazarlamalarında biraz yaratıcı yazılar yazıyor olabilir ;-)
Xen2050

Direct IO kavramlarını kontrol et, dostum. Şaşırmış olacaksınız: "Doğrudan G / Ç, işletim sisteminin okuma ve yazma önbelleklerini atlayarak, doğrudan uygulamalardan depolama aygıtına giden ve okunan ve yazılan dosya sisteminin bir özelliğidir. (kendi veritabanları gibi) kendi önbelleklerini yönetir. "
Abraham
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.