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

Upozornění

Tento článek odkazuje na CentOS, linuxovou distribuci, která se blíží stavu Konec životnosti (EOL). Zvažte své použití a odpovídajícím způsobem naplánujte. Další informace najdete v doprovodných materiálech CentOS End Of Life.

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 standardní účty úložiště pro obecné účely verze 2 a pro účty úložiště objektů blob bloku úrovně Premium. 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í Výkon premium Standardní výkon
Umístění Všechny dostupné oblasti Všechny dostupné oblasti
Výkon Premium Standard
Druh účtu Úložiště objektů blob bloku Úložiště pro obecné účely verze 2
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ů Povolený Povolený
NFS V3 Povolený Povolený

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 Sady SDK
Azure Portal .NET
AzCopy Java
PowerShell Python
Azure CLI JavaScript
REST

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é rutiny připojení AZNFS pomáhá klientům se systémem Linux NFS spolehlivě přistupovat ke sdíleným složkám NFS objektů blob Azure i v případě, že se změní IP adresa 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 najdete v nápovědě pro připojení AZNFS.

  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)
    • Centos7, Centos8
    • RedHat7, RedHat8, RedHat9
    • Rocky8, Rocky9
    • SUSE (SLES 15)

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 okamžitě zpracujete položky /etc/fstab a pokusíte se připojit předchozí cestu:

        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
      

      Tip

      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é

      Možnost nconnect připojení funguje jenom u klientů, kteří mají podporu azure nconnect. nconnect Použití možnosti u nepodporovaného klienta sníží propustnost a způsobí, že příkazy vyprší časový limit nebo nesprávně fungují. 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í povolený pro systém souborů 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í:
  • Zápis do objektu blob vytvořeného z koncového bodu objektu blob
  • Odstraňte objekt blob, který má snímek nebo je v kontejneru, který má aktivní zásadu WORM (jednou zapisovat, číst mnoho).
  • EROFS ("Read-only file system") Tato chyba se může zobrazit, když se klient pokusí:
  • Zapište do objektu blob nebo odstraňte objekt blob, který má aktivní zapůjčení.
  • 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 Azure Data Lake Storage Gen2. 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 systému souborů NFS pomocí sudo apt install nfs-commonnástroje .
    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 řešení potíží pro pomocníka pro připojení AZNFS

    Viz Pomocná rutina připojení AZNFS.

    Viz také