Share via


NFS Azure dosya paylaşımları sorunlarını giderme

Not

Bu makalede başvuruda bulunan CentOS bir Linux dağıtımıdır ve Kullanım Ömrünün Sonuna (EOL) ulaşacaktır. Kullanımınızı göz önünde bulundurun ve buna göre planlayın. Daha fazla bilgi için bkz. CentOS Kullanım Süresi Sonu kılavuzu.

Bu makalede NFS Azure dosya paylaşımlarıyla ilgili yaygın sorunlar listelenir ve olası nedenler ile geçici çözümler sağlanır.

Önemli

Bu makalenin içeriği yalnızca NFS paylaşımları için geçerlidir. Linux'ta SMB sorunlarını gidermek için bkz. Linux'ta (SMB) Azure Dosyalar sorunlarını giderme. NFS Azure dosya paylaşımları Windows için desteklenmez.

Uygulandığı öğe

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

chgrp "dosya adı" başarısız oldu: Geçersiz bağımsız değişken (22)

Neden 1: idmapping devre dışı değil

Azure Dosyalar alfasayısal UID/GID'ye izin vermediğinden, idmapping özelliğini devre dışı bırakmanız gerekir.

Neden 2: idmapping devre dışı bırakıldı, ancak hatalı dosya/dir adıyla karşılaşıldıktan sonra yeniden etkinleştirildi

Kimlik eşlemeyi doğru bir şekilde devre dışı bıraksanız bile, bazı durumlarda otomatik olarak yeniden etkinleştirilebilir. Örneğin, Azure Dosyalar hatalı bir dosya adıyla karşılaştığında bir hata geri gönderir. Bu hata kodunu gördükten sonra NFS 4.1 Linux istemcisi kimlik eşlemeyi yeniden etkinleştirmeye karar verir ve alfasayısal UID/GID ile gelecekteki istekleri gönderir. Azure Dosyalar'da desteklenmeyen karakterlerin listesi için bu makaleye bakın. İki nokta üst üste, desteklenmeyen karakterlerden biridir.

Geçici Çözüm

Kimlik eşlemeyi devre dışı bırakmış olduğunuzdan ve hiçbir şeyin yeniden etkinleştirmediğinden emin olun. Ardından aşağıdaki adımları gerçekleştirin:

  1. Paylaşımı çıkarın.

  2. Aşağıdakilerle idmapping özelliğini devre dışı bırakın:

    sudo echo Y > /sys/module/nfs/parameters/nfs4_disable_idmapping
    
  3. Paylaşımı geri bağlayın.

  4. rsync çalıştırılıyorsa, rsync'i hatalı dizin veya dosya adı olmayan bir dizinden bağımsız değişkeniyle —numeric-ids çalıştırın.

NFS paylaşımı oluşturulamıyor

Neden: Desteklenmeyen depolama hesabı ayarları

NFS yalnızca aşağıdaki yapılandırmaya sahip depolama hesaplarında kullanılabilir:

Çözüm

NFS paylaşımı oluşturma başlığındaki yönergeleri izleyin.

NFS Azure dosya paylaşımına bağlanılamıyor veya bağlanılamıyor

Neden 1: İstek, güvenilmeyen bir ağdaki/güvenilmeyen IP'deki bir istemciden kaynaklanır

SMB'den farklı olarak, NFS'nin kullanıcı tabanlı kimlik doğrulaması yoktur. Bir paylaşımın kimlik doğrulaması, ağ güvenlik kuralı yapılandırmanızı temel alır. İstemcilerin yalnızca NFS paylaşımınıza güvenli bağlantılar kurmasını sağlamak için hizmet uç noktasını veya özel uç noktaları kullanmanız gerekir. Şirket içi paylaşımlara ve özel uç noktalara erişmek için bir VPN veya ExpressRoute bağlantısı ayarlamanız gerekir. Güvenlik duvarı için depolama hesabının izin verilenler listesine eklenen IP'ler yoksayılır. NFS paylaşımına erişimi ayarlamak için aşağıdaki yöntemlerden birini kullanmanız gerekir:

  • Hizmet uç noktası

    • Genel uç nokta tarafından erişilir.

    • Yalnızca aynı bölgede kullanılabilir.

    • Paylaşım erişimi için sanal ağ eşlemesini kullanamazsınız.

    • Her sanal ağı veya alt ağı tek tek izin verilenler listesine eklemeniz gerekir.

    • Şirket içi erişim için ExpressRoute, noktadan siteye ve siteden siteye VPN'ler ile hizmet uç noktalarını kullanabilirsiniz. Daha güvenli olduğundan özel uç nokta kullanmanızı öneririz.

      Aşağıdaki diyagramda genel uç noktaları kullanan bağlantı gösterilmiştir:

      Genel uç nokta bağlantısı diyagramı.

  • Özel uç nokta

    • Erişim, hizmet uç noktasından daha güvenlidir.

    • Özel bağlantı aracılığıyla NFS paylaşımına erişim, depolama hesabının Azure bölgesinden (bölgeler arası, şirket içi) ve dışından kullanılabilir.

    • Özel uç noktada barındırılan sanal ağlarla sanal ağ eşlemesi, NFS paylaşımının eşlenmiş sanal ağlardaki istemcilere erişmesini sağlar.

    • ExpressRoute, noktadan siteye VPN'ler ve siteler arası VPN'ler ile özel uç noktaları kullanabilirsiniz.

      Özel uç nokta bağlantısı diyagramı.

Neden 2: Güvenli aktarım gerekli etkinleştirildi

NFS Azure dosya paylaşımları şu anda çift şifrelemeyi desteklemez. Azure, MACSec kullanılarak Azure veri merkezleri arasında aktarımda olan tüm veriler için bir şifreleme katmanı sağlar. NFS paylaşımlarına yalnızca güvenilen sanal ağlardan ve VPN tünelleri üzerinden erişebilirsiniz. NFS paylaşımlarında ek aktarım katmanı şifrelemesi yoktur.

Çözüm

Depolama hesabınızın yapılandırma dikey penceresinde Güvenli aktarım gerekli seçeneğini devre dışı bırakın.

Güvenli aktarımı devre dışı bırakarak depolama hesabı yapılandırma dikey penceresini gösteren ekran görüntüsü.

Neden 3: nfs-utils, nfs-client veya nfs-common paketi yüklü değil

Komutu çalıştırmadan mount önce nfs-utils, nfs-client veya nfs-common paketini yükleyin.

NFS paketinin yüklü olup olmadığını denetlemek için şunu çalıştırın:

Bu bölümdeki komutlar CentOS ve Oracle Linux için de geçerlidir.

sudo rpm -qa | grep nfs-utils

Çözüm

Paket yüklü değilse, dağıtıma özgü komutunu kullanarak paketi yükleyin.

Bu bölümdeki komutlar CentOS ve Oracle Linux için de geçerlidir.

İşletim Sistemi Sürüm 7.X

sudo yum install nfs-utils

İşletim Sistemi Sürüm 8.X veya 9.X

sudo dnf install nfs-utils

Neden 4: Güvenlik duvarı 2049 numaralı bağlantı noktasını engelliyor

NFS protokolü 2049 numaralı bağlantı noktası üzerinden sunucusuyla iletişim kurar. Bu bağlantı noktasının depolama hesabına (NFS sunucusu) açık olduğundan emin olun.

Çözüm

Aşağıdaki komutu çalıştırarak istemcinizde 2049 numaralı bağlantı noktasının açık olduğunu doğrulayın. Bağlantı noktası açık değilse açın.

sudo nc -zv <storageaccountnamehere>.file.core.windows.net 2049

Neden 5: Depolama hesabı silindi

Bağlantı zaman aşımına uğradı hatası nedeniyle dosya paylaşımını bağlayamıyorsanız, dosya paylaşımını içeren depolama hesabı yanlışlıkla silinebilir.

Çözüm

Depolama hesabını kurtarın. Ardından, yeni depolama hesabı kaynak kimliğiyle ilişkilendirilmesi için özel uç noktayı silin ve yeniden oluşturun.

Bazı çekirdeklerde büyük dizin numaralandırması için ls kilitleniyor

Neden: Linux çekirdeği v5.11'de bir hata oluştu ve v5.12.5'te düzeltildi

Bazı çekirdek sürümlerinde dizin listelerinin sonsuz BIR READDIR dizisine neden olan bir hata vardır. Tüm girişlerin tek bir çağrıda gönderilebildiği küçük dizinlerde bu sorun yoktur. Hata Linux çekirdeği v5.11'de kullanıma sunulmuştur ve v5.12.5 ile düzeltildi. Yani aradaki her şeyde hata var. RHEL 8.4 bu çekirdek sürümüne sahiptir.

Geçici çözüm: Çekirdeği düşürme veya yükseltme

Çekirdeğin etkilenen çekirdeğin dışındaki herhangi bir şeye düşürülmesi veya yükseltilmesi sorunu çözecektir.

Sistem komutları "Dosya bulunamadı" hatasıyla başarısız oluyor

Neden

Inode numaralarını kullanan Linux 32 bit uygulamalar, NFS hizmeti tarafından oluşturulan 64 bit inode numaralarının biçimlendirmesi nedeniyle Azure Dosyalar beklendiği gibi çalışmayabilir.

Çözüm

Bu sorunu gidermek için aşağıdaki yöntemlerden birini kullanın:

  • Çekirdek önyükleme seçeneğini kullanarak 64 bit inode numaralarını 32 bit olarak sıkıştırın nfs.enable_ino64=0 .

  • /etc/modprobe.d/nfs.conf dosyasına ekleyerek options nfs enable_ino64=0 ve VM'yi yeniden başlatarak modül parametresini ayarlayın.

Bu çekirdek önyükleme seçeneğini grub.conf dosyasında da kalıcı hale ekleyebilirsiniz. Daha fazla bilgi için Linux dağıtımınızın belgelerine bakın.

Yardıma mı ihtiyacınız var?

Hala yardıma ihtiyacınız varsa sorununuzun hızla çözülmesi için desteğe başvurun .

Ayrıca bkz.

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.