Použití úložiště objektů blob připojeného k systému souborů NFS se službou Azure HPC Cache

Kontejnery objektů blob připojené systémem souborů NFS můžete použít se službou Azure HPC Cache. Přečtěte si další informace o podpoře protokolu NFS 3.0 ve službě Azure Blob Storage na webu dokumentace k úložišti objektů blob.

Azure HPC Cache používá úložiště objektů blob s podporou systému souborů NFS ve svém cílovém typu úložiště ADLS-NFS. Tyto cíle úložiště jsou podobné běžným cílům úložiště NFS, ale také se překrývají s běžnými cíli objektů blob Azure.

Tento článek vysvětluje strategie a omezení, kterým byste měli rozumět při použití cílů úložiště ADLS-NFS.

Měli byste si také přečíst dokumentaci k objektům blob NFS, zejména tyto části popisující kompatibilní a nekompatibilní scénáře, a poskytnout tipy pro řešení potíží:

Vysvětlení požadavků na konzistenci

Služba HPC Cache vyžaduje silnou konzistenci pro cíle úložiště ADLS-NFS. Úložiště objektů blob s podporou systému souborů NFS ve výchozím nastavení neaktualizuje výhradně metadata souborů, což brání službě HPC Cache v přesném porovnání verzí souborů.

Kvůli tomuto rozdílu Azure HPC Cache automaticky zakáže ukládání atributů NFS do mezipaměti u libovolného kontejneru objektů blob s podporou systému souborů NFS, který se používá jako cíl úložiště.

Toto nastavení se zachová po celou dobu životnosti kontejneru, i když ho odeberete z mezipaměti.

Předběžné načtení dat pomocí protokolu NFS

V kontejneru objektů blob s podporou systému souborů NFS je možné soubor upravovat pouze pomocí stejného protokolu, který se použil při jeho vytvoření. To znamená, že pokud k naplnění kontejneru použijete rozhraní Azure REST API, nemůžete k aktualizaci těchto souborů použít systém souborů NFS. Vzhledem k tomu, že Azure HPC Cache používá jenom systém souborů NFS, nemůže upravovat žádné soubory vytvořené pomocí rozhraní Azure REST API. (Další informace o známých problémech s rozhraními API úložiště objektů blob)

Není to problém s mezipamětí, pokud je kontejner prázdný nebo pokud se soubory vytvořily pomocí systému souborů NFS.

Pokud se soubory ve vašem kontejneru vytvořily pomocí rozhraní REST API služby Azure Blob místo systému souborů NFS, azure HPC Cache je omezený na tyto akce u původních souborů:

  • Vypíše soubor v adresáři.
  • Přečtěte si soubor (a podržte ho v mezipaměti pro následné čtení).
  • Odstraňte soubor.
  • Vyprázdněte soubor (zkrátte ho na 0).
  • Uložte kopii souboru. Kopie je označená jako soubor vytvořený systémem souborů NFS a dá se upravit pomocí systému souborů NFS.

Azure HPC Cache nemůže upravovat obsah souboru vytvořeného pomocí REST. To znamená, že mezipaměť nemůže uložit změněný soubor z klienta zpět do cíle úložiště.

Je důležité porozumět tomuto omezení, protože může způsobit problémy s integritou dat, pokud používáte modely použití ukládání do mezipaměti pro čtení a zápis u souborů, které nebyly vytvořeny pomocí systému souborů NFS.

Tip

Přečtěte si další informace o ukládání do mezipaměti pro čtení a zápis v principech využití mezipaměti.

Scénáře ukládání do mezipaměti

Mezi tyto modely využití mezipaměti patří ukládání do mezipaměti zápisu:

  • Více než 15 % zápisů
  • Více než 15 % zápisů a kontrola změn na záložním serveru každých 30 sekund
  • Více než 15 % zápisů a kontrola změn na záložním serveru každých 60 sekund
  • Více než 15 % zápisů, zápis zpět na server každých 30 sekund

Modely použití ukládání do mezipaměti pro zápis do mezipaměti by se měly používat jenom u souborů vytvořených pomocí systému souborů NFS.

Pokud se pokusíte použít ukládání do mezipaměti zápisu u souborů vytvořených pomocí REST, může dojít ke ztrátě změn souboru. Důvodem je to, že se mezipaměť nepokouší ukládat úpravy souborů do kontejneru úložiště okamžitě.

Tady je postup, jak se při pokusu o ukládání do mezipaměti zápisů do souborů vytvořených pomocí REST ohrožená data:

  1. Mezipaměť přijímá úpravy od klientů a vrací zprávu o úspěchu každé změny.

  2. Mezipaměť uchovává změněný soubor v úložišti a čeká na další změny.

  3. Po uplynutí určité doby se mezipaměť pokusí uložit změněný soubor do back-endového kontejneru. V tomto okamžiku se zobrazí chybová zpráva, protože se pokouší zapisovat do souboru vytvořeného pomocí systému souborů NFS.

    Je příliš pozdě říct klientskému počítači, že jeho změny nebyly přijaty, a mezipaměť nemá způsob, jak aktualizovat původní soubor. Změny klientů se tedy ztratí.

Scénáře ukládání do mezipaměti pro čtení

Scénáře ukládání do mezipaměti pro čtení jsou vhodné pro soubory vytvořené pomocí systému souborů NFS nebo rozhraní REST API služby Azure Blob.

Tyto modely použití používají ukládání do mezipaměti jen pro čtení:

  • Čtení náročných, občasných zápisů
  • Klienti zapisují do cíle NFS a obcházejí mezipaměť.
  • Náročné čtení a kontrola záložního serveru každých 3 hodiny

Tyto modely využití můžete použít se soubory vytvořenými rozhraním REST API nebo systémem souborů NFS. Všechny zápisy NFS odeslané z klienta do back-endového kontejneru se stále nezdaří, ale okamžitě selžou a vrátí klientovi chybovou zprávu.

Pracovní postup ukládání do mezipaměti pro čtení může i nadále zahrnovat změny souborů, pokud nejsou uložené v mezipaměti. Klienti můžou například přistupovat k souborům z kontejneru, ale zapisovat změny zpět jako nový soubor nebo můžou ukládat upravené soubory do jiného umístění.

Omezení nástroje NlM (Recognize Network Lock Manager)

Kontejnery objektů blob s podporou systému souborů NFS nepodporují Správce síťových zámků (NLM), což je běžně používaný protokol NFS k ochraně souborů před konflikty.

Pokud byl váš pracovní postup NFS původně napsaný pro hardwarové systémy úložiště, můžou klientské aplikace zahrnovat požadavky NLM. Pokud chcete toto omezení obejít při přesunu procesu do úložiště objektů blob s podporou systému souborů NFS, ujistěte se, že klienti při připojování mezipaměti zakážou službu NLM.

Pokud chcete službu NLM zakázat, použijte možnost -o nolock v příkazu klientů mount . Tato možnost brání klientům v vyžádání zámků NLM a přijímání chyb v reakci. Možnost nolock se implementuje odlišně v různých operačních systémech. Podrobnosti najdete v dokumentaci k operačnímu systému klienta (man 5 nfs).

Zjednodušení zápisů do kontejnerů s podporou systému souborů NFS pomocí služby HPC Cache

Azure HPC Cache může zlepšit výkon v úloze, která zahrnuje zápis změn do cíle úložiště ADLS-NFS.

Poznámka:

Pokud chcete upravit jeho soubory prostřednictvím služby Azure HPC Cache, musíte k naplnění kontejneru úložiště ADLS-NFS použít systém souborů NFS.

Jedním z omezení uvedených v článku o výkonu objektů blob s podporou systému souborů NFS je, že úložiště ADLS-NFS není při přepisování existujících souborů velmi efektivní. Pokud používáte Azure HPC Cache s úložištěm objektů blob připojeným systémem souborů NFS, mezipaměť zpracovává přerušované přepisy, protože klienti upravují aktivní soubor. Latence zápisu souboru do back-endového kontejneru je pro klienty skrytá.

Mějte na paměti, že výše uvedená omezení jsou vysvětlená v předem načtených datech pomocí protokolu NFS.

Další kroky