NFS Azure dosya paylaşımlarına geçiş
Bu makale, Yalnızca Premium dosya paylaşımları (Dosya Depolama hesap türü olarak kullanılabilen Linux dosya sunucularından NFS Azure dosya paylaşımlarına geçişin temel yönlerini kapsar. Ayrıca verileri Azure dosya paylaşımlarına kopyalarken nasıl performans gösterdiklerini anlamak için fpsync ve rsync açık kaynak dosya kopyalama araçlarını karşılaştıracağız.
Dekont
Azure Dosyalar NFS erişim denetim listelerini (ACL) desteklemez.
Şunlara uygulanır
Dosya paylaşımı türü | SMB | NFS |
---|---|---|
Standart dosya paylaşımları (GPv2), LRS/ZRS | ||
Standart dosya paylaşımları (GPv2), GRS/GZRS | ||
Premium dosya paylaşımları (filestorage), LRS/ZRS |
Önkoşullar
Linux sanal makinesine (VM) bağlı en az bir NFS Azure dosya paylaşımına ihtiyacınız vardır. Bir dosya oluşturmak için bkz . NFS Azure dosya paylaşımı oluşturma ve linux VM'sine bağlama. Birden çok TCP bağlantısı kullanmak için paylaşımı nconnect ile bağlamanızı öneririz. Daha fazla bilgi için bkz . NFS Azure dosya paylaşımı performansını geliştirme.
Geçiş araçları
NFS dosya paylaşımlarına veri aktarmak için birçok açık kaynak aracı mevcuttur. Ancak, şirket içi kurulumlarla karşılaştırıldığında performans açısından dikkat edilmesi gereken belirgin noktalara sahip dağıtılmış bir dosya sistemiyle ilgilenirken bunların tümü verimli değildir. Dağıtılmış dosya sisteminde, her ağ çağrısı yerel olmayabilecek bir sunucuya gidiş dönüş içerir. Bu nedenle, ağ çağrılarında harcanan süreyi iyileştirmek, ağ üzerinden en iyi performansı ve verimli veri aktarımını elde etmek için çok önemlidir.
fpsync ile rsync karşılaştırması kullanma
Tek iş parçacıklı olmasına rağmen, rsync çok yönlü, açık kaynak bir dosya kopyalama aracıdır. Herhangi bir uzak kabuk üzerinden yerel olarak, başka bir konaktan/konaktan veya uzak rsync daemon'larından kopyalayabilir. Birçok seçenek sunar ve kopyalanacak dosya kümesinin esnek belirtimini sağlar. Ancak, fpsync çok iş parçacıklı bir uygulamadır ve bu nedenle rsync işlerini paralel olarak çalıştırma gibi bazı avantajlar sunar.
Bu makalede, linux dosya sunucusundan NFS Azure dosya paylaşımlarına veri taşımak için fpsync kullanacağız.
Fpsync, verileri kopyalamak için rsync (varsayılan), cpio veya tar araçlarını kullanır. Kaynak dizinin src_dir/
alt kümelerini hesaplar ve eşitleme işlerini hedef dizine dst_dir/
eşitlemek için oluşturur. Eşitleme işlerini anında yürütür ve aynı anda dosya sisteminde gezinerek büyük dosya sistemlerini verimli bir şekilde geçirmek ve büyük veri kümelerini birden çok dosyayla kopyalamak için kullanışlı bir araçtır.
Dekont
Fpsync, kaynak dizinin kendisini değil yalnızca dizin içeriğini eşitler. Rsync'in aksine, fpsync kaynak dizinde son '/' öğesini zorlar, bu da eşitlemeden sonra hedef dizinde kaynak dizinin adına sahip bir alt dizin almayacağınız anlamına gelir.
fpart yükleme
fpsync kullanmak için fpart dosya sistemi bölümleyicisini yüklemeniz gerekir. fpart'ı istediğiniz Linux dağıtımına yükleyin. Yüklendikten sonra altında fpsync'i /usr/bin/
görmeniz gerekir.
Ubuntu'da fpart yüklemek için apt paket yöneticisini kullanın.
sudo apt-get install fpart
Kaynaktan hedefe veri kopyalama
Hedef (hedef) Azure dosya paylaşımınızın bir Linux VM'sine bağlı olduğundan emin olun. Ön koşullara bakın.
Tam geçiş yapıyorsanız verilerinizi üç aşamada kopyalayacaksınız:
- Temel kopya: Hedefte veri olmadığında kaynaktan hedefe kopyalayın. Temel kopyalama için kopyalama aracı olarak cpio ile fpsync kullanmanızı öneririz.
- Artımlı kopyalama: Kaynaktan hedefe yalnızca artımlı değişiklikleri kopyalayın. Artımlı eşitleme için kopyalama aracı olarak rsync ile fpsync kullanmanızı öneririz. Tüm değişiklikleri yakalamak için bu işlem birden çok kez yapılmalıdır.
- Son geçiş: Hedefte kaynakta var olmayan dosyaları silmek için son bir geçiş gereklidir.
Fpsync ile veri kopyalama işlemi her zaman şu komutun bazı sürümlerini içerir:
fpsync -m <specify copy tool - rsync/cpio/tar> -n <parallel transfers> <absolute source path> <absolute destination path>
Temel kopyalama
Temel kopyalama için cpio ile fpsync kullanın.
fpsync -m cpio -n <parallel transfers> <absolute source path> <absolute destination path>
Daha fazla bilgi için bkz . Cpio ve Tar desteği.
Artımlı kopyalama
Artımlı eşitleme için fpsync'i varsayılan kopyalama aracıyla (rsync) kullanın. Tüm değişiklikleri yakalamak için bunu birkaç kez çalıştırmanızı öneririz.
fpsync -n <parallel transfers> <absolute source path> <absolute destination path>
Varsayılan olarak, fpsync aşağıdaki rsync seçeneklerini belirtir: -lptgoD -v --numeric-ids
. fpsync komutuna ekleyerek -o option
ek rsync seçenekleri belirtebilirsiniz.
Son pas
Birkaç artımlı eşitlemeden sonra, bu hedefte kaynakta var olmayan dosyaları silmek için son geçişi yapmanız gerekir. Dizinden /data/dst/
ek dosyaları silmek için bunu ile el ile rsync --delete
yapabilir veya -E seçeneğiyle fpsync kullanabilirsiniz. Ayrıntılar için bkz . Son Geçiş.
rsync ve fpsync'i farklı veri kümeleriyle karşılaştırma
Bu bölüm, rsync ve fpsync'in performansını farklı veri kümeleriyle karşılaştırır.
Veri kümeleri ve yapılandırma
Aşağıdaki tabloda, farklı iş yükleri altında kopyalama aracı performansını karşılaştırmak için kullandığımız farklı veri kümeleri listelenir.
Config # | Kopyalama türü | Dosya sayısı | Dizin sayısı | Dosya boyutu | Toplam boyut |
---|---|---|---|---|---|
1.1 | Temel kopyalama | 1 milyon | 1 | 0-32 KiB | 18 GiB |
1.2 | Artımlı (delta değişikliği) | 1 milyon | 1 | 0-32 KiB | 18 GiB |
2 | Temel kopyalama | 191,345 | 3,906 | 0-32 KiB | 3 GiB |
3 | Temel kopyalama | 5.000 | 1 | 10 MiB | 50 GiB |
Testler 8 vCPU, 32 GiB bellek ve büyük veri kümeleri için 1 TiB'den fazla disk alanına sahip Azure Standard_D8s_v3 VM'lerinde gerçekleştirildi. Hedef için 1 TiB'den fazla sağlanan boyuta sahip NFS Azure Dosya paylaşımlarını yapılandırdık.
Denemeler ve sonuçlar: rsync ve fpsync karşılaştırması
Yukarıdaki yapılandırmalarla yaptığımız denemelere dayanarak, fpsync'in en iyi performansı rsync içeren 64 iş parçacığı ve ile bağlanan bir Azure NFS dosya paylaşımı için cpio ile 16 iş parçacığıyla nconnect=8
birlikte kullandığını gözlemledik. Gerçek sonuçlar yapılandırmanıza ve veri kümelerinize göre değişir.
Dekont
Azure Dosyalar aktarım hızı aşağıdaki grafiklerde gösterilenden çok daha yüksek olabilir. Denemelerin bazıları basitlik için kasıtlı olarak küçük veri kümeleriyle gerçekleştirilen denemeler.
Yapılandırma 1
Toplam 18 GiB'lik 1 milyon küçük dosya içeren tek bir dizin için bu testi hem temel kopya hem de artımlı kopya olarak çalıştırdık.
Aşağıdaki sonuçların kaynaktan hedefe bir taban çizgisi kopyası yaptığını gözlemledik.
Aşağıdaki sonuçların artımlı kopya (delta değişikliği) yaptığını gözlemledik.
Yapılandırma 2
Toplam boyutu 3 GiB olan 3.906 dizinde 191.345 küçük dosya temel kopyası yapılan aşağıdaki sonuçları gözlemledik.
Yapılandırma 3
Toplam boyutu 50 GiB olan tek bir dizinde 5.000 büyük dosya (10 MiB) temel kopyası yapılan aşağıdaki sonuçları gözlemledik.
Sonuçların özeti
fpsync gibi çok iş parçacıklı uygulamaların kullanılması, rsync gibi tek iş parçacıklı kopyalama araçlarıyla karşılaştırıldığında NFS Azure dosya paylaşımlarına geçiş yaparken aktarım hızını ve IOPS'yi geliştirebilir. Testlerimiz şu sonuçları gösteriyor:
- Verilerin dizin genelinde dağıtılması, geçiş işlemini paralelleştirmeye yardımcı olur ve böylece daha iyi performans elde eder.
- Daha büyük dosya boyutlarından veri kopyalama, daha küçük dosya boyutlarından veri kopyalamaya kıyasla daha iyi performans sağlar.
Aşağıdaki tabloda sonuçlar özetlemektedir:
Config # | Dosya sayısı | Dizin sayısı | Dosya boyutu | Toplam boyut | rsync süresi | rsync aktarım hızı | fpsync süresi | fpsync aktarım hızı | Aktarım hızı kazancı |
---|---|---|---|---|---|---|---|---|---|
1.1 (temel) | 1 milyon | 1 | 0-32 KiB | 18 GiB | 837,06 dakika | 0,33 MiB/sn | 228,16 dakika | 1,20 MiB/sn | 267% |
1.2 (artımlı) | 1 milyon | 1 | 0-32 KiB | 18 GiB | 84,02 dakika | 3,25 MiB/sn | 7,5 dakika | 36,41 MiB/sn | 1,020% |
2 (temel) | 191,345 | 3,906 | 0-32 KiB | 3 GiB | 191,86 dakika | 0,27 MiB/sn | 8,47 dakika | 6,04 MiB/sn | 2,164% |
3 (temel) | 5.000 | 1 | 10 MiB | 50 GiB | 8,12 dakika | 105,04 MiB/sn | 2,76 dakika | 308,90 MiB/sn | 194% |
Üçüncü taraf bilgileri hakkında yasal uyarı
Bu makalede bahsedilen açık kaynak araçları, iyi bilinen üçüncü taraf çözümleridir. Bunlar microsoft tarafından doğrudan veya dolaylı olarak geliştirilmeyen, sahip olunan veya desteklenmeyen bir uygulamadır. Üçüncü tarafın belgelerinde sağlanan yazılım lisansını ve destek bildirimini incelemek müşterinin sorumluluğundadır.