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.

Arka plan

Blob dosyalarını iki depolama hesabı arasında kopyalamak, birçok Azure kullanıcısı için yaygın bir gereksinimdir. Azure Depolama, blobları bir depolama hesabından diğerine doğrudan kopyalamayı destekler. Bu, AzCopy komut satırı yardımcı programı kullanılarak uygulanabilir. Kullanıcıların dosyaları yerel disklere veya arabelleklere indirmeleri ve sonra 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 yoktur.

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

  • yetkilendirme kimlik bilgilerini Microsoft Entra ID kullanarak 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 blob kopyalama.

Erişim kısıtlaması olan depolama hesapları arasında blobları 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 listesi gerekli değildir.

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 depolamaya 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 blobları 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 - CannotVerfiyCopySource" 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 bir 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ında blobları başarıyla kopyalamasını sağlar. Aşağıdaki mimari diyagramında, Geçici Çözüm 1'deki 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 sanal ağı hedef sanal ağ ile eşleyin

Bir diğer seçenek de VM'yi kaynak depolama hesabıyla aynı sanal ağa yerleştirmektir. Ardından bu sanal ağ ile hedef sanal ağ arasında eşleme oluşturun. 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.

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ştirmekle kısıtlandıysanız, 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. Verileri geçici depolama hesabından 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. Kaynak depolama hesabından verileri indirmek ve ardından hedef depolama hesabına yüklemek için bir VM kullanın. 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 veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.