Ağ Dosya Sistemi (NFS) 3.0 protokolunu kullanarak Blob Depolama bağlama

Dikkat

Bu makalede, Kullanım Süresi Sonu (EOL) durumuna yakın bir Linux dağıtımı olan CentOS'a başvuruda bulunur. Lütfen kullanımınızı göz önünde bulundurun ve uygun şekilde planlayın. Daha fazla bilgi için bkz . CentOS Kullanım Süresi Sonu kılavuzu.

Bu makalede, Ağ Dosya Sistemi (NFS) 3.0 protokolunu kullanarak şirket içinde çalışan bir Linux tabanlı Azure sanal makinesinden (VM) veya Linux sisteminden Azure Blob Depolama kapsayıcı bağlama hakkında yönergeler sağlanmaktadır. Blob Depolama'da NFS 3.0 protokol desteği hakkında daha fazla bilgi edinmek için bkz. Azure Blob Depolama için Ağ Dosya Sistemi (NFS) 3.0 protokol desteği.

1. Adım: Azure sanal ağı oluşturma

Depolama hesabınızın bir sanal ağ içinde yer alması gerekir. Sanal ağ, istemcilerin depolama hesabınıza güvenli bir şekilde bağlanmasını sağlar. Azure Sanal Ağ ve sanal ağ oluşturma hakkında daha fazla bilgi edinmek için Sanal Ağ belgelerine bakın.

Not

Aynı sanal ağdaki istemciler hesabınıza kapsayıcı bağlayabilir. Şirket içi ağda çalışan bir istemciden kapsayıcı da bağlayabilirsiniz, ancak önce şirket içi ağınızı sanal ağınıza bağlamanız gerekir. Bkz . Desteklenen ağ bağlantıları.

2. Adım: Ağ güvenliğini yapılandırma

Şu anda, depolama hesabınızdaki verilerin güvenliğini sağlamanın tek yolu bir sanal ağ ve diğer ağ güvenlik ayarlarını kullanmaktır. Bkz. Blob depolama için ağ güvenliği önerileri.

Hesap anahtarı yetkilendirmesi, Microsoft Entra güvenliği ve erişim denetimi listeleri (ACL'ler) gibi verilerin güvenliğini sağlamak için kullanılan diğer araçlar NFS 3.0 isteğini yetkilendirmek için kullanılamaz. Aslında, adlandırılmış bir kullanıcı veya grup için bir blob veya dizinin ACL'sine bir girdi eklerseniz, bu dosya kök olmayan kullanıcılar için istemcide erişilemez hale gelir. İstemcideki kök olmayan kullanıcılara erişimi geri yüklemek için bu girdiyi kaldırmanız gerekir.

Önemli

NFS 3.0 protokolü 111 ve 2048 bağlantı noktalarını kullanır. Şirket içi bir ağdan bağlanıyorsanız, istemcinizin bu bağlantı noktaları üzerinden giden iletişime izin verdiğinden emin olun. Belirli sanal ağlara erişim izni verdiyseniz, bu sanal ağlarla ilişkili ağ güvenlik gruplarının bu bağlantı noktaları üzerinden gelen iletişimi engelleyen güvenlik kuralları içermediğinden emin olun.

3. Adım: Depolama hesabı oluşturma ve yapılandırma

NFS 3.0 kullanarak kapsayıcıyı bağlamak için bir depolama hesabı oluşturmanız gerekir. Mevcut hesapları etkinleştiremezsiniz.

NFS 3.0 protokolü standart genel amaçlı v2 depolama hesapları ve premium blok blob depolama hesapları için desteklenir. Bu tür depolama hesapları hakkında daha fazla bilgi için bkz. Depolama hesaba genel bakış.

Hesabı yapılandırmak için şu değerleri seçin:

Ayar Premium performans Standart performans
Konum Tüm kullanılabilir bölgeler Tüm kullanılabilir bölgeler
Performans Premium Standart
Hesap türü BlockBlobStorage Genel amaçlı v2
Çoğaltma Yerel olarak yedekli depolama (LRS), Alanlar arası yedekli depolama (ZRS) Yerel olarak yedekli depolama (LRS), Alanlar arası yedekli depolama (ZRS)
Bağlantı yöntemi Genel uç nokta (seçili ağlar) veya Özel uç nokta Genel uç nokta (seçili ağlar) veya Özel uç nokta
Hiyerarşik ad alanı Etkin Etkin
NFS V3 Etkin Etkin

Diğer tüm ayarlar için varsayılan değerleri kabul edebilirsiniz.

4. Adım: Kapsayıcı oluşturma

Şu araçlardan veya SDK'lardan herhangi birini kullanarak depolama hesabınızda bir kapsayıcı oluşturun:

Araçlar SDK
Azure portalı .NET
AzCopy Java
PowerShell Python
Azure CLI JavaScript
REST

Not

Varsayılan olarak, yeni bir kapsayıcının kök sıkıştırma seçeneği Kök Sıkıştırma Yok'dur. Ancak bunu Kök Squash veya Tüm Squash olarak değiştirebilirsiniz. Bu squash seçenekleri hakkında bilgi için işletim sistemi belgelerinize bakın.

Aşağıdaki görüntüde, Azure portalında görünen squash seçenekleri gösterilmektedir.

Azure portalında squash seçeneklerini gösteren ekran görüntüsü.

5. Adım: AZNFS Bağlama Yardımcısı paketini yükleme

AZNFS Bağlama Yardımcısı paketi, Uç noktanın IP adresi değiştiğinde bile Linux NFS istemcilerinin Azure Blob NFS paylaşımlarına güvenilir bir şekilde erişmesine yardımcı olur. Bu paket, bağlı paylaşımlar için uç nokta IP adresinde yapılan değişiklikleri izleyen adlı aznfswatchdog bir arka plan işi çalıştırır. Bir değişiklik algılanırsa, bu arka plan işi Hedef Ağ Adresi Çevirisi (DNAT) kurallarını güncelleştirir. Daha fazla bilgi edinmek için bkz . AZNFS Bağlama Yardımcısı.

  1. AZNFS Bağlama Yardımcısı paketinin istemcinizde yüklü olup olmadığını belirleyin.

    systemctl is-active --quiet aznfswatchdog && echo -e "\nAZNFS mounthelper is installed! \n"
    

    Paket yüklüyse, ileti AZNFS mounthelper is installed! görüntülenir.

  2. Paket henüz yüklü değilse, yüklemek için aşağıdaki komutu kullanın.

    wget -O - -q https://github.com/Azure/AZNFS-mount/releases/latest/download/aznfs_install.sh | bash
    

    Not

    AZNFS aşağıdaki Linux dağıtımlarında desteklenir:

    • Ubuntu (18.04 LTS, 20.04 LTS, 22.04 LTS)
    • Centos7, Centos8
    • RedHat7, RedHat8, RedHat9
    • Rocky8, Rocky9
    • SUSE (SLES 15)

6. Adım: Kapsayıcıyı bağlama

Linux sisteminizde bir dizin oluşturun ve kapsayıcıyı depolama hesabına bağlayın.

  1. Linux sisteminizde bir dizin oluşturun:

    mkdir -p /nfsdata
    
  2. Aşağıdaki yöntemlerden birini kullanarak kapsayıcıyı bağlayın. Her iki yöntemde de yer tutucuyu <storage-account-name> depolama hesabınızın adıyla, değerini de kapsayıcınızın adıyla değiştirin <container-name> .

    • Paylaşımın yeniden başlatmada otomatik olarak bağlanmasını sağlamak için:

      1. Aşağıdaki satırı ekleyerek /etc/fstab dosyasında bir girdi oluşturun:

        <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name>  /nfsdata    aznfs defaults,sec=sys,vers=3,nolock,proto=tcp,nofail,_netdev    0 0
        
      2. /etc/fstab girdilerini hemen işlemek ve önceki yolu bağlamaya çalışmak için aşağıdaki komutu çalıştırın:

        mount /nfsdata
        
    • Yeniden başlatmalar arasında kalıcı olmayan geçici bir bağlama için aşağıdaki komutu çalıştırın:

      mount -t aznfs -o sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name>  /nfsdata
      

      İpucu

      Bağlama seçeneğini kullanarak -t aznfs , bağlama sonrasında uç nokta IP'si değişse bile NFS istemcisinin her zaman depolama uç noktasına doğru şekilde bağlı kaldığından emin olursunuz. Bağlama seçeneği kullanılarak -t nfs bağlanan NFS paylaşımlarının, bu uç noktanın IP adresi değişirse depolama uç noktası bağlantısı kesebilir.

      Bağlama komutuyla diğer isteğe bağlı parametreler kullanılabilir. Bu parametreler öncelikli olarak istemci tarafı davranışını etkiler. sys seçeneği tarafından sec desteklenen tek değerdir.

      Önemli

      nconnect Bağlama seçeneği yalnızca Azure nconnect desteğine sahip istemcilerde çalışır. Desteklenmeyen nconnect bir istemcide seçeneğinin kullanılması aktarım hızını azaltır ve komutların zaman aşımına veya yanlış çalışmasına neden olur. İstemcinizin Azure nconnect desteğine sahip olduğundan emin olmak için bkz . TCP bağlantı sayısını artırma.

Sık karşılaşılan hataları giderme

Hata Neden/çözüm
Access denied by server while mounting İstemcinizin desteklenen bir alt ağ üzerinde çalıştığından emin olun. Bkz . Desteklenen ağ konumları.
No such file or directory Kopyalama ve yapıştırma yerine bağlama komutunu ve parametrelerini doğrudan terminale yazdığınızdan emin olun. Bu komutun herhangi bir bölümünü başka bir uygulamadan kopyalayıp terminale yapıştırırsanız, yapıştırdığınız bilgilerde bulunan gizli karakterler bu hatanın ortaya çıkmasına neden olabilir. Hesap NFS 3.0 için etkinleştirilmediyse de bu hata görüntülenebilir.
Permission denied Yeni oluşturulan bir NFS 3.0 kapsayıcısının varsayılan modu 0750'dir. Kök olmayan kullanıcıların birime erişimi yoktur. Kök olmayan kullanıcılardan erişim gerekiyorsa, kök kullanıcıların modu 0755 olarak değiştirmesi gerekir. Örnek komut: sudo chmod 0755 /nfsdata
EINVAL ("Invalid argument") İstemci şunu yapmaya çalıştığında bu hata görünebilir:
  • Blob uç noktasından oluşturulan bir bloba yazma.
  • Anlık görüntü içeren veya etkin WORM (bir kez yaz, çok oku) ilkesi olan bir kapsayıcıda bulunan bir blobu silin.
  • EROFS ("Read-only file system") İstemci şunu yapmaya çalıştığında bu hata görünebilir:
  • Bir bloba yazın veya etkin kirası olan bir blobu silin.
  • Etkin WORM ilkesi olan bir kapsayıcıda bloba yazma veya blobu silme.
  • NFS3ERR_IO/EIO ("Input/output error") Bu hata, bir istemci arşiv erişim katmanında depolanan bloblarda öznitelikleri okumaya, yazmaya veya ayarlamaya çalıştığında görünebilir.
    OperationNotSupportedOnSymLink hatası Bu hata, blob Depolama veya Azure Data Lake Storage 2. Nesil API'si aracılığıyla yazma işlemi sırasında döndürülebilir. NFS 3.0 kullanılarak oluşturulan sembolik bağlantıları yazmak veya silmek için bu API'lerin kullanılmasına izin verilmez. Sembolik bağlantılarla çalışmak için NFS 3.0 uç noktasını kullandığınızdan emin olun.
    mount: /nfsdata: bad option; kullanarak sudo apt install nfs-commonNFS yardımcı programını yükleyin.
    Connection Timed Out İstemcinin 111 ve 2048 bağlantı noktaları üzerinden giden iletişime izin verdiğinden emin olun. NFS 3.0 protokolü bu bağlantı noktalarını kullanır. Depolama hesabını Data Lake Depolama uç noktasını değil Blob hizmet uç noktasını kullanarak bağlamayı sağlar.

    AZNFS Bağlama Yardımcısı için sınırlamalar ve sorun giderme

    Bkz. AZNFS Bağlama Yardımcısı.

    Ayrıca bkz.