Aracılığıyla paylaş


Ağ kısıtlamaları olan Azure depolama hesapları arasında blobları kopyalamak için AzCopy kullanma

Bu makalede, AzCopy komut satırı yardımcı programını kullanarak depolama hesapları arasında blobların nasıl kopyalanacakları açıklanır. Ayrıca, depolama hesapları için ağ kısıtlamaları yapılandırıldığında kopyalama işleminin nasıl uygulanacakları da açıklanır.

Background

Blob dosyalarını iki depolama hesabı arasında kopyalamak, birçok Azure kullanıcısı için yaygın bir gereksinimdir. Azure Depolama, azCopy komut satırı yardımcı programı kullanılarak uygulanabilen blobları bir depolama hesabından diğerine doğrudan kopyalamayı destekler. Kullanıcıların dosyaları yerel disklere veya arabelleklere indirip yeniden yüklemeleri gerekmez.

AzCopy kullanarak blobları iki depolama hesabı arasında kopyalamak, yerel bilgisayarınızın ağ bant genişliğine güvenmez. Bu yöntem, dosyaları indirip karşıya yüklemekten daha iyi aktarım hızı elde etmek için depolama hesaplarının ve Azure Sanal Ağ performansından yararlanabilir. Her iki depolama hesabı da aynı bölgedeyse bant genişliği ücreti alınmaz.

Depolama hesapları arasında blob kopyalamaya yönelik AzCopy komutları

  • Microsoft Entra Id kullanarak yetkilendirme kimlik bilgilerini sağlarsanız aşağıdaki komutu kullanın:

    azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path>'
    

    Bu senaryoda, Microsoft Entra kimliğinizin hem kaynak hem de hedef hesaplar için uygun rol atamalarına sahip olduğundan emin olmanız gerekir.

  • Paylaşılan Erişim İmzası (SAS) belirteci kullanıyorsanız aşağıdaki komutu kullanın:

    azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>'
    

    Bu senaryoda, AzCopy komutlarınızda kullanılan kaynak ve hedef URL'ye bir SAS belirteci eklemeniz gerekir.

Daha fazla bilgi için bkz . AzCopy v10 ile Azure depolama hesapları arasında blobları kopyalama.

Erişim kısıtlaması olan depolama hesapları arasında blob kopyalama

Depolama güvenlik duvarı aracılığıyla hem kaynak hem de hedef depolama hesaplarına erişimi kısıtlamanız gerekiyorsa, AzCopy kullanarak depolama hesapları arasında blob kopyalamak için daha fazla yapılandırmaya ihtiyacınız olabilir. Bunun nedeni, iki depolama hesabı arasındaki kopyalama isteğinin özel IP adresleri kullanması ve IP adreslerinin dinamik olmasıdır.

Desteklenen iki senaryo şunlardır:

Senaryo 1: İstemci, depolama hesaplarına erişmek için genel uç nokta kullanır

Bu senaryoda, istemcinin genel IP adresini veya sanal ağını (VNet) kaynak ve hedef depolama hesaplarındaki güvenlik duvarı izin verilenler listesine eklemeniz gerekir.

Aşağıdaki görüntüde, bu senaryoda depolama hesapları arasında blob kopyalama işlemi gösterilmektedir:

Senaryo 1'de depolama hesapları arasında bloblarla başa koyma işlemini gösteren diyagram.

Bu senaryoda güvenlik duvarı izin verilenler listesine gerek yoktur.

Aşağıdaki görüntüde, bu senaryoda depolama hesapları arasında blob kopyalama işlemi gösterilmektedir:

2. senaryoda depolama hesapları arasında bloblarla başa koyma işlemini gösteren diyagram.

İki senaryo için bu mekanizmanın tam süreci aşağıdadır:

  1. İstemci hedef depolama alanına bir PutBlockfromURL isteği gönderir.
  2. Hedef depolama istekleri alır ve verilen kaynak URL'den bloklar almaya çalışır. Ancak hedef depolamaya kaynak güvenlik duvarı tarafından izin verilmediğinden "403 Yasak" hatası alır.
  3. Hedef depolama "403 Yasak" hatasını aldıktan sonra istemci adına başka bir GetBlob isteği gönderir. İstemcinin kaynak depolamaya erişimi varsa hedef, kaynaktan blokları alabilir ve istemciye bir başarı yanıt kodu döndürebilecektir.
  4. İstemci, blokları işlemek ve istekten başarılı bir yanıt kodu aldıktan sonra işlemi tamamlamak için PutBlockList'i hedef depolamaya gönderir.

Özel uç noktaları kullanarak Merkez-uç mimarisindeki depolama hesapları arasında blob kopyalama

Merkez sanal ağındaki bir VM'den farklı Uç Sanal Ağlardaki özel uç noktalara bağlı Depolama hesapları arasında blobları kopyalamak için AzCopy kullanılırken 403 Hatası oluşur. AzCopy günlüklerinde veya Azure Depolama günlüklerinde "403 Bu isteğin bu işlemi gerçekleştirme yetkisi yok - CannotVerifyCopySource" hatasını bulabilirsiniz. Aşağıdaki mimari diyagramında hatanın oluştuğu senaryo gösterilmektedir.

Özel Uç Noktaları kullanarak Hub & Spoke mimarisindeki depolama hesapları arasında blob kopyalamanın 403 hatasını gösteren diyagram.

Geçici çözüm 1: Kaynak sanal ağda hedef depolama hesabı için özel uç nokta oluşturma

Olası bir geçici çözüm, kaynak sanal ağda hedef depolama hesabı için özel bir uç nokta oluşturmaktır. Bu yapılandırma, VM'nin AzCopy kullanarak depolama hesapları arasındaki blobları başarıyla kopyalamasını sağlar. Aşağıdaki mimari diyagramında, Geçici Çözüm 1'de depolama hesapları arasında blob kopyalama işlemi gösterilmektedir.

Geçici Çözüm 1'de depolama hesapları arasında blob kopyalama işlemini gösteren diyagram.

Geçici çözüm 2: VM'yi kaynak depolama hesabıyla aynı sanal ağa yerleştirin ve kaynak ve hedef sanal ağlar arasında sanal ağ eşlemesini yapılandırın

Bir diğer seçenek de VM'yi kaynak depolama hesabıyla aynı sanal ağa yerleştirmek ve bu sanal ağ ile hedef sanal ağ arasında sanal ağ eşlemesi ayarlamaktır. Bu eşlemenin iki sanal ağ arasında doğrudan olması gerekir ve hub sanal ağı üzerinden yapılamaz. Aşağıdaki mimari diyagramında, Geçici Çözüm 2'de depolama hesapları arasında blob kopyalama işlemi gösterilmektedir.

Geçici Çözüm 2'de depolama hesapları arasında blob kopyalama işlemini gösteren diyagram.

Daha fazla bilgi için Sanal ağ eşleme ile ilgili Sıkça Sorulan Sorular bölümüne bakın.

Geçici çözüm 3: Verileri kopyalamak için geçici bir hazırlama hesabı kullanın

Daha önce bahsedilen geçici çözümleri uygulayamıyorsanız veya depolama hesabının veya sanal ağın mevcut ağ yapılandırmasını değiştirmeniz kısıtlanmışsa, verileri kopyalamak için geçici bir hazırlama hesabı kullanabilirsiniz:

  1. Kaynak depolama hesabı ve hedef depolama hesabıyla aynı bölgede geçici bir depolama hesabı oluşturun.
  2. Kaynak depolama hesabından geçici depolama hesabına veri kopyalamak için AzCopy kullanın.
  3. Geçici depolama hesabından verileri hedef depolama hesabına kopyalayın. Veri aktarımını gerçekleştirmeden önce geçici depolama hesabının hedef depolama hesabıyla aynı sanal ağda özel bir uç nokta olduğundan emin olun.

Geçici çözüm 4: VM kullanma ve verileri VM'ye indirme ve ardından verileri hedef depolama hesabına yükleme

Bu geçici çözümü yalnızca diğer yöntemler uygun değilse kullanın. Vm kullanarak kaynak depolama hesabından verileri indirin ve hedef depolama hesabına yükleyin. Bu, AzCopy ile yapılabilir. VM'nin boyutunun ve disk kapasitesinin veri aktarımı işlemi için uygun olduğundan emin olun.

Yardım için bize ulaşın

Sorularınız varsa Azure topluluk desteğine sorabilirsiniz. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.