Sdílet prostřednictvím


Připojení služby Blob Storage pomocí protokolu NFS (Network File System) 3.0

Tento článek obsahuje pokyny k připojení kontejneru ve službě Azure Blob Storage z virtuálního počítače Azure založeného na Linuxu nebo systému Linux, který běží místně pomocí protokolu NFS (Network File System) 3.0. Další informace o podpoře protokolů NFS 3.0 ve službě Blob Storage najdete v tématu Podpora protokolu NFS (Network File System) 3.0 pro Azure Blob Storage.

Krok 1: Vytvoření virtuální sítě Azure

Váš účet úložiště musí být obsažený ve virtuální síti. Virtuální síť umožňuje klientům bezpečně se připojit k vašemu účtu úložiště. Další informace o službě Azure Virtual Network a o tom, jak vytvořit virtuální síť, najdete v dokumentaci k virtuální síti.

Poznámka:

Klienti ve stejné virtuální síti mohou připojit kontejnery ve vašem účtu. Můžete také připojit kontejner z klienta, který běží v místní síti, ale budete muset nejprve připojit místní síť k virtuální síti. Viz Podporovaná síťová připojení.

Krok 2: Konfigurace zabezpečení sítě

Jediný způsob, jak zabezpečit data v účtu úložiště, je v současné době pomocí virtuální sítě a dalších nastavení zabezpečení sítě. Viz doporučení zabezpečení sítě pro úložiště objektů blob.

Všechny další nástroje používané k zabezpečení dat, včetně autorizace klíče účtu, zabezpečení Microsoft Entra a seznamů řízení přístupu (ACL), se nedají použít k autorizaci požadavku NFS 3.0. Pokud ve skutečnosti přidáte položku pro pojmenovaného uživatele nebo skupinu do seznamu ACL objektu blob nebo adresáře, stane se tento soubor nepřístupným klientem pro uživatele, kteří nejsou root. Tuto položku byste museli odebrat, abyste obnovili přístup k jiným uživatelům než root v klientovi.

Důležité

Protokol NFS 3.0 používá porty 111 a 2048. Pokud se připojujete z místní sítě, ujistěte se, že váš klient umožňuje odchozí komunikaci přes tyto porty. Pokud jste udělili přístup ke konkrétním virtuálním sítím, ujistěte se, že žádné skupiny zabezpečení sítě přidružené k těmto virtuálním sítím neobsahují pravidla zabezpečení, která blokují příchozí komunikaci prostřednictvím těchto portů.

Krok 3: Vytvoření a konfigurace účtu úložiště

Pokud chcete připojit kontejner pomocí systému souborů NFS 3.0, musíte vytvořit účet úložiště. Nemůžete povolit existující účty.

Protokol NFS 3.0 je podporován pro účty úložiště verze 2 pro obecné účely a pro prémiové účty pro úložiště blokových blobů. Další informace o těchto typech účtů úložiště najdete v přehledu účtu úložiště.

Pokud chcete účet nakonfigurovat, zvolte tyto hodnoty:

Nastavení Prémiový výkon Standardní výkon
Umístění Všechny dostupné oblasti Všechny dostupné oblasti
Výkon Premium Standard
Druh účtu Úložiště Block Blob Obecné účely V2
Replikace Místně redundantní úložiště (LRS), zónově redundantní úložiště (ZRS) Místně redundantní úložiště (LRS), zónově redundantní úložiště (ZRS)
Metoda připojení Veřejný koncový bod (vybrané sítě) nebo privátní koncový bod Veřejný koncový bod (vybrané sítě) nebo privátní koncový bod
Hierarchický obor názvů Povoleno Povoleno
NFS V3 Povoleno Povoleno

Můžete přijmout výchozí hodnoty pro všechna ostatní nastavení.

Krok 4: Vytvoření kontejneru

Ve svém účtu úložiště vytvořte kontejner pomocí některého z těchto nástrojů nebo sad SDK:

Nástroje SDKy
Azure Portal .SÍŤ
AzCopy Java
Prostředí PowerShell Krajta
Azure CLI JavaScript
ZBYTEK

Poznámka:

Ve výchozím nastavení je možnost root squash nového kontejneru No Root Squash. Ale můžete to změnit na Root Squash nebo All Squash. Informace o těchto možnostech squashu najdete v dokumentaci k operačnímu systému.

Následující obrázek znázorňuje možnosti squashu, jak se zobrazují na webu Azure Portal.

Snímek obrazovky znázorňující možnosti squashu na webu Azure Portal

Krok 5: Instalace balíčku pomocníka pro připojení AZNFS

Balíček pomocných rutin připojení AZNFS pomáhá klientům NFS se systémem Linux spolehlivě přistupovat k NFS sdílení na Azure Blob, a to i v případě změny IP adresy koncového bodu. Tento balíček spouští úlohu na pozadí, aznfswatchdog která monitoruje změny IP adresy koncového bodu pro připojené sdílené složky. Pokud se zjistí změna, tato úloha na pozadí aktualizuje pravidla dnaT (Destination Network Address Translation). Další informace naleznete v AZNFS Mount Helper.

  1. Zjistěte, jestli je na vašem klientovi nainstalovaný balíček pomocníka pro připojení AZNFS.

    systemctl is-active --quiet aznfswatchdog && echo -e "\nAZNFS mounthelper is installed! \n"
    

    Pokud je balíček nainstalovaný, zobrazí se zpráva AZNFS mounthelper is installed! .

  2. Pokud balíček ještě není nainstalovaný, nainstalujte ho pomocí následujícího příkazu.

    wget -O - -q https://github.com/Azure/AZNFS-mount/releases/latest/download/aznfs_install.sh | bash
    

    Poznámka:

    AZNFS se podporuje v následujících distribucích Linuxu:

    • Ubuntu (18.04 LTS, 20.04 LTS, 22.04 LTS, 24.04 LTS)
  • RedHat7, RedHat8, RedHat9
  • Rocky8, Rocky9
  • SUSE (SLES 15)

Návod

AZNFS 3.0 je teď ve verzi Public Preview. Tato verze poskytuje vyšší propustnost, podporuje větší soubory, vylepšuje výkon metadat a eliminuje omezení skupin uživatelů. Další informace o vylepšeních a zobrazení pokynů k vyzkoušení AZNFS 3.0 najdete na wikiwebu AZNFS.

Krok 6: Připojení kontejneru

Vytvořte adresář v systému Linux a pak kontejner připojte v účtu úložiště.

  1. V systému Linux vytvořte adresář:

    mkdir -p /nfsdata
    
  2. Připojte kontejner pomocí jedné z následujících metod. V obou metodách nahraďte <storage-account-name> zástupný symbol názvem vašeho účtu úložiště a nahraďte <container-name> názvem kontejneru.

    • Automatické připojení sdílené složky při restartování:

      1. Vytvořte položku v souboru /etc/fstab přidáním následujícího řádku:

        <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
        
      2. Spuštěním následujícího příkazu dojde k okamžitému zpracování položek /etc/fstab a pokusu o připojení uvedené cesty:

        mount /nfsdata
        
    • V případě dočasného připojení, které se nepřechovává napříč restartováními, spusťte následující příkaz:

      mount -t aznfs -o sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name>  /nfsdata
      

      Návod

      Pomocí -t aznfs možnosti připojení zajistíte, aby klient NFS vždy zůstal správně připojený ke koncovému bodu úložiště, i když se IP adresa koncového bodu po připojení změní. Sdílené složky NFS připojené pomocí -t nfs možnosti připojení se můžou odpojit od koncového bodu úložiště, pokud se ZMĚNÍ IP adresa tohoto koncového bodu.

      Další volitelné parametry jsou k dispozici pomocí příkazu mount. Tyto parametry mají primárně vliv na chování na straně klienta. sys je jediná hodnota, která je aktuálně podporována možností sec .

      Důležité

      Volba nconnect funguje pouze pro klienty, kteří mají Azure nconnect podporu. Použití možnosti nconnect u nepodporovaného klienta sníží propustnost a způsobí, že příkazy dojdou k časovému limitu nebo fungují nesprávně. Další informace o tom, jak zajistit, aby váš klient podporoval Azure nconnect, najdete v tématu Zvýšení počtu připojení TCP.

Řešení běžných chyb

Chyba Příčina/řešení
Access denied by server while mounting Ujistěte se, že je váš klient spuštěný v rámci podporované podsítě. Viz Podporovaná síťová umístění.
No such file or directory Nezapomeňte místo kopírování a vkládání zadat příkaz mount a jeho parametry přímo do terminálu. Pokud tento příkaz zkopírujete z jiné aplikace a vložíte do terminálu, skryté znaky ve vložených informacích můžou způsobit zobrazení této chyby. Tato chyba se může zobrazit také v případě, že účet není aktivován pro NFS 3.0.
Permission denied Výchozí režim nově vytvořeného kontejneru NFS 3.0 je 0750. Uživatelé, kteří nejsou root, nemají přístup ke svazku. Pokud se vyžaduje přístup od jiných než kořenových uživatelů, musí uživatel root změnit režim na 0755. Ukázkový příkaz: sudo chmod 0755 /nfsdata
EINVAL ("Invalid argument") Tato chyba se může zobrazit, když se klient pokusí:
  • Zapsat do blobu, který byl vytvořen z koncového bodu blobu.
  • Odstraňte blob, který má snímek, nebo je v kontejneru s aktivní zásadou WORM (jednou zapisovat, mnohokrát číst).
  • EROFS ("Read-only file system") Tato chyba se může zobrazit, když se klient pokusí:
  • Zapisujte do objektu blob nebo odstraňte objekt blob, který má aktivní půjčku.
  • Zapište do objektu blob nebo odstraňte objekt blob v kontejneru, který má aktivní zásadu WORM.
  • NFS3ERR_IO/EIO ("Input/output error") Tato chyba se může zobrazit, když se klient pokusí číst, zapisovat nebo nastavit atributy objektů blob, které jsou uložené v archivní úrovni přístupu.
    Chyba OperationNotSupportedOnSymLink Tuto chybu je možné vrátit během operace zápisu prostřednictvím služby Blob Storage nebo rozhraní API služby Azure Data Lake Storage. Použití těchto rozhraní API k zápisu nebo odstranění symbolických odkazů vytvořených pomocí systému souborů NFS 3.0 není povoleno. Nezapomeňte použít koncový bod NFS 3.0 pro práci s symbolickými odkazy.
    mount: /nfsdata: bad option; Nainstalujte pomocný program NFS použitím sudo apt install nfs-common.
    Connection Timed Out Ujistěte se, že klient umožňuje odchozí komunikaci přes porty 111 a 2048. Protokol NFS 3.0 používá tyto porty. Ujistěte se, že účet úložiště připojíte pomocí koncového bodu služby Blob, a ne koncového bodu Data Lake Storage.

    Omezení a odstraňování problémů pomocníka připojení AZNFS

    Viz pomocníka pro připojení AZNFS.

    Viz také