Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 |
Always-On Tanılama aracını kullanma
NFSv4 ve SMB Linux istemcilerindeki günlükleri toplamak için Always-On Tanılama (AOD) aracını kullanabilirsiniz. Daemon bir sistem hizmeti olarak arka planda çalışır ve dmesg günlükleri, hata ayıklama verileri, hata ölçümleri ve gecikme ölçümleri gibi çeşitli kaynaklarda anomalileri algılamak için yapılandırılabilir. Tcpdump, nfsstat, mountstsat ve diğer kaynaklardan, sistemin CPU ve bellek kullanımıyla birlikte verileri yakalayabilir. Araç, yeniden oluşturması zor olan alan sorunlarıyla ilgili hata ayıklama bilgilerini toplamak için kullanışlıdır.
Always-On Tanılama aracı şu anda SUSE Linux Enterprise Server 15 (SLES 15) ve Red Hat Enterprise Linux 8 (RHEL 8) çalıştıran sistemlerle uyumludur. İşletim sisteminize karşılık gelen yükleme adımlarını izleyin:
RHEL 8'de, Always-On Tanılama aracını yüklemek için şu yönergeleri izleyin:
Depo yapılandırma paketini indirin.
curl -ssl -O https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpmDepo yapılandırma paketini yükleyin.
sudo rpm -i packages-microsoft-prod.rpmPaket dizini dosyalarını yükledikten ve güncelleştirdikten sonra depo yapılandırma paketini silin.
rm packages-microsoft-prod.rpm sudo dnf updatepaketini yükleyin.
sudo dnf install aod
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_idmappingPaylaşı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
Çözüm
NFS dosya 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 için kimlik doğrulama, ağ güvenlik kuralı yapılandırmanıza bağlıdı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. Bir 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: 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 3: 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ı için (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 4: 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.
Neden 5: AzNFS bağlama yardımcısı yerine NFS istemci bağlamasını kullanarak paylaşımı bağlamaya çalışıyorsunuz ve depolama hesabında Güvenli aktarım gerekli ayarı etkinleştirildi.
Güvenli aktarım gerekli ayarı, depolama hesabındaki tüm dosya paylaşımları için aktarım sırasında şifrelemeyi zorunlu kılar. NFS dosya paylaşımları için aktarım sırasında şifreleme kullanmak, paylaşımı NFSv4.1 trafiği için güvenli tüneller oluşturmanın karmaşıklığını soyutlayan bir istemci yardımcı programı paketi olan AZNFS Bağlama Yardımcısı'nı kullanarak bağlamayı gerektirir.
Çözüm
Depolama hesabında Güvenli aktarım gerekli ayarını devre dışı bırakın veya paylaşımı bağlamak için AZNFS bağlama yardımcısını kullanın. Daha fazla bilgi için bkz . NFS Azure dosya paylaşımları için aktarım sırasında şifreleme.
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=0ve 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ı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
Üçüncü taraf bilgileri hakkında yasal uyarı
Bu makalede adı geçen üçüncü taraf ürünleri Microsoft'tan bağımsız şirketler tarafından üretilmektedir. Microsoft, bu ürünlerin performansı veya güvenilirliği ile ilgili örtük veya başka türlü hiçbir garanti vermez.
Yardım için bize ulaşın
Sorularınız varsa Azure topluluk desteğine sorabilirsiniz. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.