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:
Paylaşımı çıkarın.
Aşağıdakilerle kimlik eşlemeyi devre dışı bırak:
sudo echo Y > /sys/module/nfs/parameters/nfs4_disable_idmapping
Paylaşımı geri bağlayın.
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:
- 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 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:
-
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:
-
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.
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.
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. Daha fazla bilgi için bkz. Azure Dosyalar için kök sıkıştırmayı yapılandırma.
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.
- Azure Dosyalarının Sorunlarını Giderme
- Azure Dosyalar performansı sorunlarını giderme
- Azure Dosyalar bağlantı (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.