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:
Paylaşımı çıkarın.
Aşağıdakilerle idmapping özelliğini devre dışı bırakın:
sudo echo Y > /sys/module/nfs/parameters/nfs4_disable_idmapping
Paylaşımı geri bağlayın.
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:
- Katman - Premium
- Hesap Türü - FileStorage
- Bölgeler - Desteklenen bölgelerin listesi
Çö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:
-
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:
-
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.
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.
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.
- Azure Dosyalar sorunlarını giderme
- Azure Dosyalar performansı sorunlarını giderme
- Azure Dosyalar bağlantısı (SMB) sorunlarını giderme
- Azure Dosyalar kimlik doğrulaması ve yetkilendirme (SMB) sorunlarını giderme
- Linux'ta Azure Dosyalar genel SMB sorunlarını giderme
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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin