Sdílet prostřednictvím


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é přes systém 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 v cílovém typu ADLS-NFS úložiště. 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. Ve výchozím nastavení blobové úložiště s povolenou podporou NFS nepřesně aktualizuje 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 API úložiště 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.

Návod

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ří zápis do mezipaměti:

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

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

Pokud se pokusíte použít zápisovou mezipaměť 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, jak pokus o ukládání zápisů do mezipaměti u souborů vytvořených pomocí REST vystavuje data riziku:

  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 provedené klienty 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í je časté, zápisy jsou občasné
  • Klienti zapisují do cíle NFS, přičemž 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 tyto změny nejsou ukládány do 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řesouvání procesu do úložiště objektů blob s podporou NFS, ujistěte se, že klienti při připojování mezipaměti zakážou protokol 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:

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

Jedním z omezení uvedených v článku o úvahách k výkonu objektů blob s podporou systému souborů NFS je, že úložiště ADLS-NFS není velmi efektivní při přepisování existujících souborů. Pokud používáte Azure HPC Cache s blob úložištěm připojeným přes systém souborů NFS, mezipaměť zpracovává občasné přepisy, když 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