Öncelikle mantıksal birimin bağlı olmadığından emin olun. Öyleyse ve "etkin kopya" yapmak istiyorsanız, önce bir anlık görüntü oluşturun ve bunun yerine bunu kullanın:
lvcreate --snapshot --name transfer_snap --size 1G
İki 1Gbit bağlı Sunucular arasında çok fazla veri (7 TB) aktarmak zorunda, bu yüzden bunu yapmak için mümkün olan en hızlı yolu gerekli.
SSH kullanmalı mısınız?
Ssh kullanımı, şifrelemesi nedeniyle değil (AES-NI desteğine sahip bir CPU'nuz varsa, çok fazla zarar vermez), ancak ağ arabellekleri nedeniyle söz konusu değildir. Bunlar iyi ölçeklenmiyor. Bir yoktur yamalı Ssh versiyonu adresleri bu sorun, ancak hiçbir hazır paketler olduğu gibi, onun çok uygun değil.
Sıkıştırma Kullanımı
Ham disk görüntülerini aktarırken her zaman sıkıştırma kullanılması önerilir. Ancak, sıkıştırmanın bir darboğaz olmasını istemezsiniz. Gzip gibi çoğu unix sıkıştırma aracı tek iş parçacıklıdır, bu nedenle sıkıştırma bir CPU'yu doyurursa, bir darboğaz olacaktır. Bu nedenle, her zaman sıkıştırma için tüm CPU çekirdeklerini kullanan bir gzip varyantı olan pigz kullanıyorum. Ve bu, GBit hızlarına kadar ve yukarı çıkmak istediğiniz için gereklidir.
Şifrelemeyi Kullanma
Daha önce söylendiği gibi, ssh yavaştır. AES-NI CPU'nuz varsa, bu bir darboğaz olmamalıdır. Yani ssh kullanmak yerine, doğrudan openssl kullanabiliriz.
hızları
Bileşenlerin hız etkisi hakkında bir fikir vermek için, işte benim sonuçlarım. Bunlar iki üretim sistemi arasındaki okuma ve yazma işlemlerinin hafızaya aktarım hızlarıdır. Gerçek sonuçlar ağ hızına, HDD hızına ve kaynak CPU hızına bağlıdır! Bunu en azından büyük bir performans düşüşü olmadığını göstermek için yapıyorum.
Simple nc dd:
5033164800 bytes (5.0 GB, 4.7 GiB) copied, 47.3576 s, 106 MB/s
+pigz compression level 1 (speed gain depends on actual data):
network traffic: 2.52GiB
5033164800 bytes (5.0 GB, 4.7 GiB) copied, 38.8045 s, 130 MB/s
+pigz compression level 5:
network traffic: 2.43GiB
5033164800 bytes (5.0 GB, 4.7 GiB) copied, 44.4623 s, 113 MB/s
+compression level 1 + openssl encryption:
network traffic: 2.52GiB
5033164800 bytes (5.0 GB, 4.7 GiB) copied, 43.1163 s, 117 MB/s
Sonuç: sıkıştırmanın kullanılması, veri boyutunu çok azalttığı için fark edilir bir hızlanma sağlar. Daha düşük ağ hızlarına sahipseniz, bu daha da önemlidir. Sıkıştırma kullanırken, cpu kullanımınızı izleyin. kullanım maksimize edilirse, onsuz deneyebilirsiniz. Sıkıştırmayı AES-NI sistemleri üzerinde sadece küçük bir etki olarak kullanmak, sadece sıkıştırmadan% 30-40 cpu çaldığı için imho.
Ekranı Kullanma
Benim gibi çok fazla veri aktarıyorsanız, ssh istemcinizin ağ bağlantısının kesilmesi tarafından kesilmesini istemezsiniz, bu nedenle her iki taraftaki ekranla başlatmanız daha iyi olur. Bu sadece bir not, burada bir ekran öğretici yazmayacağım.
Kopyalayalım
Bazı bağımlılıklar yükleyin (kaynak ve hedefe):
apt install pigz pv netcat-openbsd
sonra hedefte kaynakla aynı boyutta bir birim oluşturun. Emin değilseniz, boyutu almak ve hedef oluşturmak için kaynakta lvdisplay kullanın yani:
lvcreate -n lvname vgname -L 50G
sonra, verileri almak için hedefi hazırlayın:
nc -l -p 444 | openssl aes-256-cbc -d -salt -pass pass:asdkjn2hb | pigz -d | dd bs=16M of=/dev/vgname/lvname
ve hazır olduğunda, Kaynak üzerinde aktarımı başlatın:
pv -r -t -b -p -e /dev/vgname/lvname | pigz -1 | openssl aes-256-cbc -salt -pass pass:asdkjn2hb | nc <destip/host> 444 -q 1
Not: Verileri yerel olarak aktarıyorsanız veya şifreleme ile ilgilenmiyorsanız, Açar parçasını her iki taraftan da çıkarmanız yeterlidir. Eğer ilgileniyorsanız, asdkjn2hb Şifreleme anahtarıdır, değiştirmeniz gerekir.