Linux için dosya aktarma araçları, sıfır kopya aktarımını destekliyor


2

Linux için HDD’den (SSD) dosyalara tcp soketine transfer etmek için “sıfır kopya” tarzını kullanabilen küçük ve basit bir dosya aktarım aracı var mı?

İki bilgisayar arasında Ethernet, 1 Gbit veya 10 Gbit olabilen büyük miktarda sıkıştırılamayan benzersiz veri (onlarca yüz GB) göndermek istiyorum. Şifrelemeye veya sıkıştırmaya, veri tekilleştirme / delta aktarmalarına ve araçtan fazladan herhangi bir sağlama toplamasına ihtiyacım yok (yani, hayır scpve varsayılan değil rsync); sadece lineer disk okur yüksek bant genişliği ve yüksek ağ kullanımı.

Syscalls: Ve ayrıca ben aracı hafıza kopya sürü yapmamaya istiyorum ama modern Linux çekirdeğinin "Sıfır kopyalı" altyapısını kullanmak splice, vmsplice, sendfilebazı okumak için çekirdek talimat, çoğu veri prosedürleri kopyalama atlayabilirsiniz vb Sıfır kopyalı aracıyla HDD / SSD / RAID’den (DMA, pagecache’e okunur) veri paketlerine yeniden paketler ve ağ kartını doğrudan pagecache’den DMA yapmaya programlamak için. Bu "sıfır kopya" yaklaşımı transferden sistem yükünü azaltacaktır, çünkü CPU dosya verilerinin her baytını parçalamak zorunda kalmayacaktır. Transferin bir tarafı yavaş işlemciye sahip olabilir ...


Apache sendfile desteğine sahiptir.
Cristian Ciupitu

Bu soru Yazılım Önerileri için daha uygun olabilir .
Cristian Ciupitu

Cristian Ciupitu, Apache kocaman bir servistir. Rsync + rsyncd / scp + ssd / netcat gibi, küçük ve basit bir şey arıyorum ...
osgx

1
Fa.linux.kernel'den ilginç konu: groups.google.com/forum/#!topic/fa.linux.kernel/0Gw6MIvix_k "splice / vmsplice performans testi sonuçları", Jim Schutt, 2006-11-16 kaynak kodlu dnd "tek dosyalık disk-ağ-disk transfer aracı. Birkaç veri okuma / yazma / yapıştırma yöntemine sahiptir.
osgx

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.