Ağ Dosya Sistemi (NFS) 3.0 protokolunu kullanarak Blob Depolama'yı bağlama
Bu makalede, Ağ Dosya Sistemi (NFS) 3.0 protokolunu kullanarak şirket içinde çalışan bir Linux tabanlı Azure sanal makinesinden (VM) veya Linux sisteminden Azure Blob Depolama kapsayıcı bağlama hakkında yönergeler sağlanmaktadır. Blob Depolama'da NFS 3.0 protokol desteği hakkında daha fazla bilgi edinmek için bkz. Azure Blob Depolama için Ağ Dosya Sistemi (NFS) 3.0 protokol desteği.
1. Adım: Azure sanal ağı oluşturma
Depolama hesabınızın bir sanal ağ içinde yer alması gerekir. Sanal ağ, istemcilerin depolama hesabınıza güvenli bir şekilde bağlanmasını sağlar. Azure Sanal Ağ ve sanal ağ oluşturma hakkında daha fazla bilgi edinmek için Sanal Ağ belgelerine bakın.
Not
Aynı sanal ağdaki istemciler hesabınıza kapsayıcı bağlayabilir. Şirket içi ağda çalışan bir istemciden kapsayıcı da bağlayabilirsiniz, ancak önce şirket içi ağınızı sanal ağınıza bağlamanız gerekir. Bkz . Desteklenen ağ bağlantıları.
2. Adım: Ağ güvenliğini yapılandırma
Şu anda, depolama hesabınızdaki verilerin güvenliğini sağlamanın tek yolu bir sanal ağ ve diğer ağ güvenlik ayarlarını kullanmaktır. Bkz. Blob depolama için ağ güvenliği önerileri.
Hesap anahtarı yetkilendirmesi, Microsoft Entra güvenliği ve erişim denetimi listeleri (ACL'ler) gibi verilerin güvenliğini sağlamak için kullanılan diğer araçlar NFS 3.0 isteğini yetkilendirmek için kullanılamaz. Aslında, adlandırılmış bir kullanıcı veya grup için bir blob veya dizinin ACL'sine bir girdi eklerseniz, bu dosya kök olmayan kullanıcılar için istemcide erişilemez hale gelir. İstemcideki kök olmayan kullanıcılara erişimi geri yüklemek için bu girdiyi kaldırmanız gerekir.
Önemli
NFS 3.0 protokolü 111 ve 2048 bağlantı noktalarını kullanır. Şirket içi bir ağdan bağlanıyorsanız, istemcinizin bu bağlantı noktaları üzerinden giden iletişime izin verdiğinden emin olun. Belirli sanal ağlara erişim izni verdiyseniz, bu sanal ağlarla ilişkili ağ güvenlik gruplarının bu bağlantı noktaları üzerinden gelen iletişimi engelleyen güvenlik kuralları içermediğinden emin olun.
3. Adım: Depolama hesabı oluşturma ve yapılandırma
NFS 3.0 kullanarak kapsayıcıyı bağlamak için bir depolama hesabı oluşturmanız gerekir. Mevcut hesapları etkinleştiremezsiniz.
NFS 3.0 protokolü standart genel amaçlı v2 depolama hesapları ve premium blok blob depolama hesapları için desteklenir. Bu tür depolama hesapları hakkında daha fazla bilgi için bkz . Depolama hesabına genel bakış.
Hesabı yapılandırmak için şu değerleri seçin:
Ayar | Premium performans | Standart performans |
---|---|---|
Konum | Tüm kullanılabilir bölgeler | Tüm kullanılabilir bölgeler |
Performans | Premium | Standart |
Hesap türü | BlockBlobStorage | Genel amaçlı v2 |
Çoğaltma | Yerel olarak yedekli depolama (LRS), Alanlar arası yedekli depolama (ZRS) | Yerel olarak yedekli depolama (LRS), Alanlar arası yedekli depolama (ZRS) |
Bağlantı yöntemi | Genel uç nokta (seçili ağlar) veya Özel uç nokta | Genel uç nokta (seçili ağlar) veya Özel uç nokta |
Hiyerarşik ad alanı | Etkin | Etkin |
NFS V3 | Etkin | Etkin |
Diğer tüm ayarlar için varsayılan değerleri kabul edebilirsiniz.
4. Adım: Kapsayıcı oluşturma
Şu araçlardan veya SDK'lardan herhangi birini kullanarak depolama hesabınızda bir kapsayıcı oluşturun:
Araçlar | SDK |
---|---|
Azure portalı | .NET |
AzCopy | Java |
PowerShell | Python |
Azure CLI | JavaScript |
REST |
Not
Varsayılan olarak, yeni bir kapsayıcının kök sıkıştırma seçeneği Kök Sıkıştırma Yok'dur. Ancak bunu Kök Squash veya Tüm Squash olarak değiştirebilirsiniz. Bu squash seçenekleri hakkında bilgi için işletim sistemi belgelerinize bakın.
Aşağıdaki görüntüde, Azure portalında görünen squash seçenekleri gösterilmektedir.
5. Adım: AZNFS Bağlama Yardımcısı paketini yükleme
AZNFS Bağlama Yardımcısı paketi, Uç noktanın IP adresi değiştiğinde bile Linux NFS istemcilerinin Azure Blob NFS paylaşımlarına güvenilir bir şekilde erişmesine yardımcı olur. Bu paket, bağlı paylaşımlar için uç nokta IP adresinde yapılan değişiklikleri izleyen adlı aznfswatchdog
bir arka plan işi çalıştırır. Bir değişiklik algılanırsa, bu arka plan işi Hedef Ağ Adresi Çevirisi (DNAT) kurallarını güncelleştirir. Daha fazla bilgi edinmek için bkz . AZNFS Bağlama Yardımcısı.
AZNFS Bağlama Yardımcısı paketinin istemcinizde yüklü olup olmadığını belirleyin.
systemctl is-active --quiet aznfswatchdog && echo -e "\nAZNFS mounthelper is installed! \n"
Paket yüklüyse, ileti
AZNFS mounthelper is installed!
görüntülenir.Paket henüz yüklü değilse, yüklemek için aşağıdaki komutu kullanın.
wget -O - -q https://github.com/Azure/AZNFS-mount/releases/latest/download/aznfs_install.sh | bash
Not
AZNFS aşağıdaki Linux dağıtımlarında desteklenir:
- Ubuntu (18.04 LTS, 20.04 LTS, 22.04 LTS)
- RedHat7, RedHat8, RedHat9
- Rocky8, Rocky9
- SUSE (SLES 15)
6. Adım: Kapsayıcıyı bağlama
Linux sisteminizde bir dizin oluşturun ve kapsayıcıyı depolama hesabına bağlayın.
Linux sisteminizde bir dizin oluşturun:
mkdir -p /nfsdata
Aşağıdaki yöntemlerden birini kullanarak kapsayıcıyı bağlayın. Her iki yöntemde de yer tutucuyu
<storage-account-name>
depolama hesabınızın adıyla, değerini de kapsayıcınızın adıyla değiştirin<container-name>
.Paylaşımın yeniden başlatmada otomatik olarak bağlanmasını sağlamak için:
Aşağıdaki satırı ekleyerek /etc/fstab dosyasında bir girdi oluşturun:
<storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdata aznfs defaults,sec=sys,vers=3,nolock,proto=tcp,nofail,_netdev 0 0
/etc/fstab girdilerini hemen işlemek ve önceki yolu bağlamaya çalışmak için aşağıdaki komutu çalıştırın:
mount /nfsdata
Yeniden başlatmalar arasında kalıcı olmayan geçici bir bağlama için aşağıdaki komutu çalıştırın:
mount -t aznfs -o sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdata
İpucu
Bağlama seçeneğini kullanarak
-t aznfs
, bağlama sonrasında uç nokta IP'si değişse bile NFS istemcisinin her zaman depolama uç noktasına doğru şekilde bağlı kaldığından emin olursunuz. Bağlama seçeneği kullanılarak-t nfs
bağlanan NFS paylaşımlarının, bu uç noktanın IP adresi değişirse depolama uç noktası bağlantısı kesebilir.Bağlama komutuyla diğer isteğe bağlı parametreler kullanılabilir. Bu parametreler öncelikli olarak istemci tarafı davranışını etkiler.
sys
seçeneği tarafındansec
desteklenen tek değerdir.Önemli
nconnect
Bağlama seçeneği yalnızca Azure nconnect desteğine sahip istemcilerde çalışır. Desteklenmeyennconnect
bir istemcide seçeneğinin kullanılması aktarım hızını azaltır ve komutların zaman aşımına veya yanlış çalışmasına neden olur. İstemcinizin Azure nconnect desteğine sahip olduğundan emin olmak için bkz . TCP bağlantı sayısını artırma.
Sık karşılaşılan hataları giderme
Hata | Neden/çözüm |
---|---|
Access denied by server while mounting |
İstemcinizin desteklenen bir alt ağ üzerinde çalıştığından emin olun. Bkz . Desteklenen ağ konumları. |
No such file or directory |
Kopyalama ve yapıştırma yerine bağlama komutunu ve parametrelerini doğrudan terminale yazdığınızdan emin olun. Bu komutun herhangi bir bölümünü başka bir uygulamadan kopyalayıp terminale yapıştırırsanız, yapıştırdığınız bilgilerde bulunan gizli karakterler bu hatanın ortaya çıkmasına neden olabilir. Hesap NFS 3.0 için etkinleştirilmediyse de bu hata görüntülenebilir. |
Permission denied |
Yeni oluşturulan bir NFS 3.0 kapsayıcısının varsayılan modu 0750'dir. Kök olmayan kullanıcıların birime erişimi yoktur. Kök olmayan kullanıcılardan erişim gerekiyorsa, kök kullanıcıların modu 0755 olarak değiştirmesi gerekir. Örnek komut: sudo chmod 0755 /nfsdata |
EINVAL ("Invalid argument" ) |
İstemci şunu yapmaya çalıştığında bu hata görünebilir: |
EROFS ("Read-only file system" ) |
İstemci şunu yapmaya çalıştığında bu hata görünebilir: |
NFS3ERR_IO/EIO ("Input/output error" ) |
Bu hata, bir istemci arşiv erişim katmanında depolanan bloblarda öznitelikleri okumaya, yazmaya veya ayarlamaya çalıştığında görünebilir. |
OperationNotSupportedOnSymLink hatası |
Bu hata, Blob Depolama veya Azure Data Lake Storage 2. Nesil API aracılığıyla yazma işlemi sırasında döndürülebilir. NFS 3.0 kullanılarak oluşturulan sembolik bağlantıları yazmak veya silmek için bu API'lerin kullanılmasına izin verilmez. Sembolik bağlantılarla çalışmak için NFS 3.0 uç noktasını kullandığınızdan emin olun. |
mount: /nfsdata: bad option; |
kullanarak sudo apt install nfs-common NFS yardımcı programını yükleyin. |
Connection Timed Out |
İstemcinin 111 ve 2048 bağlantı noktaları üzerinden giden iletişime izin verdiğinden emin olun. NFS 3.0 protokolü bu bağlantı noktalarını kullanır. Depolama hesabını Data Lake Storage uç noktasını değil Blob hizmet uç noktasını kullanarak bağlamayı sağlar. |
AZNFS Bağlama Yardımcısı için sınırlamalar ve sorun giderme
Bkz. AZNFS Bağlama Yardımcısı.