Jsem velký příznivce objektového ukládání jako je Blob storage. Nabízí fantastickou škálovatelnost, metadata, perfektní dostupnost včetně georeplikace a přístup přes REST API, které místo složitých protokolů redukuje práce na zavolání správné URL a čtyři operace - dej, vytvoř, uprav, smaž. Nicméně ne každá aplikace je na tuto výzvu připravena a očekává klasický sdílený souborový prostor. Jak takovou aplikaci dostat do cloudu? A jak do cloudu dostat váš lokální share? A co takhle aby se cloud choval jako tier k vašemu lokálnímu share? A nedalo by se i zálohovat a vytvářet snapshoty v cloudu? Jasně že dalo! Podívejme se na Azure File Storage a Azure File Sync.
Začněme v cloudu, kde si vytvoříme file share postavený na klasickém SMB portokolu. Nejprve si založíme storage account a v něm se podíváme do části Files. Přidejte nový share.
Zadáme název a případné omezení prostoru pro konkrétní share (například pro kontrolu nákladů). Maximální velikost celého Azure Files accountu je dnes omezena na 5TB (ale můžete mít accountů víc), nicméně v public roadmapě je plán limit navýšit.
Nahrajeme z GUI nějaký soubor.
K sharu se budeme chtít připojit z Windows i Linux. Klikněte na Connect a dostaneme rovnou potřebné příkazy a URL - to si uložte někam bokem.
Při použití SMB 3.0 je podporováno šifrování v letu, tedy není bezpečnostní problém si klidně Azure Files namapovat na on-premises zařízení. Dále je také podporováno šifrování dat v klidu, tedy těch uložených v Azure za použití Microsoft-managed klíčů (zacházení s nimi je dle souladu s různými certifikacemi ISO a GDPR požadavky). Všechny nově vytvářené storage účty to mají automaticky povoleno. Můžeme s to ověřit.
Vše připraveno, připojíme se.
Vytvořte si v Azure nebo jinde VM s Windows a připojte se do ní vzdálenou plochou. Vezměme návod, který nám portál sám dal, doplníme požadované písmeno disku a přístupový klíč a ve Windows spustíme. Výsledkem bude přístup na náš cloudový share.
V mém případě nějak takhle:
net use Z: \mojesoubory.file.core.windows.net\mujshare /u:mojesoubory ...tadyklic...
Výsledkem je sdílený disk.
Spustíme si Linux VM, já zvolil Ubuntu 16.04. V Ubuntu 16.04 v Azure už všechny potřebné balíčky jsou, ale pro případ, že použijete třeba nějaký svůj vlastní Linux, nainstalujte tento balíček.
sudo apt-get install cifs-utils
Vytvoříme si mountovací místo.
sudo mkdir /mnt/files
A teď už toto místo připojíme na náš Azure Files share.
sudo mount -t cifs //mojesoubory.file.core.windows.net/mujshare /mnt/files -o vers=3.0,username=mojesoubory,password=...kliczde...,dir_mode=0777,file_mode=0777
Pokud vše dobře dopadlo, uvidíme naše sdílené soubory.
tomas@linux:~$ ls /mnt/files/ mujsoubor.txt
Ke sdílenému prostoru můžete také přistupovat přes REST API. Azure Files tak můžete použít bez změn aplikace (s využitím share) a postupně je měnit a připravovat na REST API. Nebo můžete jednu část aplikace nechat používat share a druhou, novější, naučit rovnou REST API. Kromě přímého využití API můžete sáhnout po hotových knihovnách třeba do Python, .NET, C++ nebo Java.
V Preview je nyní dostupná nová velmi zajímavá služba a to synchronizační nástroj pro vaše on-premises file share. V zásadě jde o kousek software, který nainstalujete na váš server s file share. Tento software zajistí synchronizaci s file share v cloudu. Můžete to vnímat jako zálohu do cloudu, orchestrační nástroj pro synchronizaci dat v různých místech (ano - do synchronizační skupiny můžete zapojit hned několik serverů) nebo také jako cache pro cloud. Soubory jsou dostupné rychle lokálně, jejich stažení i nahrání je svižné a na pozadí je server synchronizuje do cloudu, z kterého se tak jednak stává vaše záloha (Azure File Storage je vysoce redundantní - všechno je ve třech kopiích) a také způsob, jak replikovat data do cloudu pro ty aplikace, které běží tam. To přináší skutečně hybridní scénáře.
Potřebnou instalačku si stáhneme v portálu.
Před instalací agenta na serveru si nainstalujte AzureRM PowerShell moduly.
Install-Module AzureRM
Pro registraci serveru do Azure File Sync musíme dočasně vypnout IE Enhanced Security (hned po dokončení registrace to můžeme zase zapnout).
Začneme instalovat agenta na lokálním serveru.
Po dokončení nám naskočí průvodce registrací serveru.
Vyberme si správnou subscription, resource group a Azure File Sync.
Pokud všechno dobře dopadlo, je naše registrace hotová.
Vytvoříme si novou synchronizační skupinu a dáme do ní náš cloudový share.
Po chvilce v této synchronizační skupině uvidíme cloud endpoint.
Přidejme si on-premises server do synchronizační skupiny.
Zadáme lokální cestu a také si vybereme, zda chceme plnou kopii nebo cloud tiering. Ve druhém případě budou vždy všechna data k dispozici v cloud share, ale lokálně bude pouze jejich část - agent automaticky vybere nejčastěji používané soubory a ty ponechá dostupné i lokálně pro větší rychlost. Nastavíme procento kolik procent místa chceme ponechávat na lokálním počítači volné (1% znamená skoro žádný tiering, 99% znamená nemít lokálně skoro nic).
Nahrajeme něco do lokální složky.
Po nějaké době budou soubory synchronizované do cloudu.
Pojďme teď do našeho serveru a přidejme si zobrazení atributů.
Tím se můžeme podívat, co máme lokálně a co je jen vzdálené.
Zkuste se podívat na to kolik místa zabírají soubory na disku.
Tak to je cloud tiering v praxi! Z pohledu aplikace nebo uživatele se ale nic nemění, stále vidíme soubor jako dostupný. Pokud ho otevřu, projde to v pořádku - jen se to aplikaci bude zdát jako pomalejší disk, ale jinak rozdíl nepozná.
Výborný způsob, jak využít kapacitu cloudu a přitom nemuset vlastně nic měnit.
V Preview je aktuálně dostupná možnost provádění snapshotů vašich Azure Files. Pojďme jeden vytvořit.
Po vytvoření snapshotu pojďme jeden soubor přímo v portálu editovat.
Vymažeme jeho obsah a zadáme nový.
Azure používá copy on write, tedy snapshot nejprve nazabírá žádné místo, ale po změně souboru se tento musí uložit nově.
Moje aktuální data tedy obsahují zmenšený soubor Application.evtx
Podívejme se na snapshoty.
Všimněte si, že v snapshotu vidím svoje data nezměněná!
A ještě jedna zajímavá věc - všimli jste si u snapshotu nahoře tlačítka connect?
Přesně tak. Konkrétní snapshot si můžete namapovat jako síťový disk.
Pokud bych modifikaci souboru neprováděl z portálu, ale přímo ze serveru, kde mám Azure File share namapovaný, bude to ještě lepší. Provedeme snapshot a následně upravíme soubor ale tentokrát z Windows. Pak můžeme kliknout pravým tlačítkem a dostaneme se k předchozí verzi.
Jednoduše můžeme obnovit soubor ze snapshotu a o Azure nemusíme ani vědět!
Azure File Storage platíte podle skutečně obsazeného prostoru. Konkrétně 0,051 EUR za 1GB obsazeného prostoru měsíčně (+ k tomu drobné poplatky transakce). Služba Azure File Sync (samotná synchronizační služba) funguje pro první přidaný server zdarma a pro další asi 4,2 EUR měsíčně za server.
Hybridní práce se soubory je skvělý způsob, jak vám Azure umožní využít výhody cloudu bez nutnosti přepisovat aplikace či měnit zvyklosti. Nabídněte svým aplikací v cloudu file share jako službu. Chcete aplikaci v on-premises, ale soubory s kterými pracuje mít v cloudu a lokální storage použít jako cache pro často přistupované soubory a přitom aplikace může na lokálním share najít úplně všechno, protože se to transparentně dotáhne? Nebo potřebujete synchronizovat file share na vašich pobočkách do centrální cloudu či distribuovat změny mezi pobočkami? A chcete to všechno zálohovat, aby vám někdo nepoškodil soubor nebo nějaký nevymazal?
To přesně umí Azure Files a Azure File Sync. Vyzkoušejte!