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 Süresi 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 ve 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.

Ş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

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

Neden 1: kimlik eşleme devre dışı değil

Azure Dosyalar alfasayısal UID/GID'ye izin vermediğinden, kimlik eşlemeyi devre dışı bırakmanız gerekir.

Neden 2: kimlik eşleme 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 kimlik eşlemeyi devre dışı bırak:

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

  4. rsync çalıştırıyorsanız, 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 geliyor

SMB'nin aksine NFS'de 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şilebilir.

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

    • Sanal ağ eşlemeyi paylaşım erişimi için kullanamazsınız.

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

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

      Aşağıdaki diyagramda genel uç noktaların kullanıldığı 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ı üzerinden NFS paylaşımına erişim, depolama hesabının Azure bölgesi içinden ve dışından (bölgeler arası, şirket içi) mümkündür.

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

    • 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 kullanarak 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ünellerinden 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 ayarını 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 package 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 şu komutu ç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ü, sunucusuyla bağlantı noktası 2049 üzerinden 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ümleri, dizin listelerinin sonsuz BIR READDIR dizisine neden olan bir hataya sahiptir. 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 sunuldu ve v5.12.5'te 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 düşürülmesi veya etkilenen çekirdeğin dışındaki herhangi bir şeye 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 çözmek 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 getirirsiniz. Daha fazla bilgi için Linux dağıtımınızın belgelerine bakın.

Dosya ve dizinlerin sahipliği değiştirilemiyor

Neden

NFS dosya paylaşımları üzerindeki izinler, Azure Dosyalar hizmeti yerine istemci işletim sistemi tarafından zorlanır. NFS dosya paylaşımında Kök Sıkıştırma ayarı etkinleştirilirse, istemci sistemindeki kök kullanıcı erişim denetimi amacıyla anonim (ayrıcalıklı olmayan) kullanıcı olarak değerlendirilir. Başka bir deyişle, istemci sisteminde kök olarak oturum açmış olsanız bile, sahip olmadığınız dosyaların ve dizinlerin sahipliğini değiştirmek için komutunu kullanamazsınız chown .

Çözüm

Azure portalında dosya paylaşımına gidin ve Özellikler'i seçin. Kök Squash ayarını Kök Sıkıştırma Yok olarak değiştirin.

Kök Sıkıştırma Yok etkinken, istemci sistemindeki kök kullanıcı, sunucu sistemindeki kök kullanıcıyla aynı ayrıcalıklara sahiptir. Artık, geçerli sahip ne olursa olsun, paylaşımdaki herhangi bir dosyanın veya dizinin sahipliğini değiştirmek için kullanabilirsiniz chown . Değişiklikleri yaptıktan sonra, gerekirse Kök Squash'i yeniden etkinleştirebilirsiniz.

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 bizimle iletişim kurun

Sorularınız varsa veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteğine sorun. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.