日商エレクトロニクスのAzureエンジニア担当 渡邊です。
今回は2回に分けて、ファイル共有を行うのにAzureをどのように活用することができるのか、というのをご紹介します。第2回は構築編ということで、前回の紹介編で紹介した3つの手法で実際に構築を行い、管理者からの見え方やユーザーからの見え方などもご紹介したいと思います。
※ここで紹介している内容は2018年12月時点のものです。Azureは常に変化しますので常に最新の情報を参照してください。

【連載】Azureでファイル共有!Azure Files、Azure File Syncってなに?の記事はこちら



1. IaaS 仮想マシンでファイルサーバーを構築

まずはAzure上の仮想マシンでファイルサーバーを構築します。今回は以下の図のような環境を構築します。オンプレミスとAzureの間はExpressRouteにより接続されており、Azure上のADにオンプレ端末とファイルサーバーをドメイン参加させます。

1-1.Azure VMを作成

まずAzure上にVMを作成します。普段から触られている方はわかると思いますが、Azure上の仮想マシンは簡単に作成できます。仮想マシンの作り方に関しては本サイトの過去ブログにあるため参考にしてください。
※かなり前の記事なのでUIなどはかなり変わっています。後日仮想マシンの作成に関しても改めて紹介しようと思います。
今回は以下の仮想マシンを2台作成します。

OS Windows Server 2016 Datacenter
サイズ Standard D2 v3
リージョン 東日本
OSディスク Standard HDD 127GiB
データディスク Standard HDD 100GiB

 

1-2. ファイルサーバー構築

仮想マシンのデプロイが終了したらRDPでファイルサーバーを構築する仮想マシンに接続し、ドメイン参加を行っておきます。
仮想マシンにログインし、[役割と追加]からFile Serverをインストールします。

インストールが終了したらファイルサーバーとして使用するドライブ上にフォルダを作成します。今回は追加のデータディスクをアタッチしてE:に割り振っているのでこのドライブ上にフォルダを作成します。

 

フォルダを右クリックして[プロパティ]を選択します。

 

[共有]タブから[共有]をクリックして共有を許可する相手を選択し、[共有]をクリックします。

共有が完了した画面が表示されるため[終了]をクリックします。

共有フォルダの中に適当にファイルを1ついれてクライアントから見えるかをチェックします。

クライアントから接続したところ、先ほど作成した共有フォルダとその中にあるファイルを見ることができました。オンプレからAzure上へ接続していますが、ExpressRouteで接続されているためプライベートIPを使用して接続できます。

 

1-3.権限、VSS設定

1-2まででオンプレとあまり変わらず作成できることがわかっていただけたと思います。サーバーの準備がいらないためオンプレよりも簡単かもしれません。ではオンプレでよく使われる機能はどうなのか、ということで権限によるファイル管理とVSSが使えるかを試していきます。

1-3-1.権限によるファイル管理

事前に適当なクライアントをAD上で作成しておきます。今回はFSuser1という新しく作成したユーザーでクライアントPCへログインします。

先ほどのフォルダにアクセスしますが、権限がないためはじかれていることがわかります。

では次に、FSuser1を共有に追加します。ファイルサーバーから共有フォルダを右クリックして[セキュリティ]タブの[編集]をクリックします。

[追加]で[FSuser1]を追加します。

アクセス許可で[変更]と[書き込み]を切っておきます。

クライアントから接続してみると、先ほど作成していたファイルが見えました。

共有フォルダ内に新しくファイルを作成し、名前の変更をしようとすると拒否されます。

このようにAzure上でも権限でファイル管理が可能です。

 

1-3-2.VSS設定

共有フォルダを作成したE:ドライブを右クリックし、[シャドウコピーの構成]を選択します。

[E:\]を選択して[有効]をクリックします。

構成を行うと1回目が作成されました。

実際にどういう動きになるのかをやってみます。先ほど作成していたファイルに追加で書き込みを行います。

保存を行ってファイルを右クリックし、[以前のバージョンの復元]を選択します。

[以前のバージョン]タブに先ほど作成したスナップショットが表示されます。これを選択して[復元]をクリックします。

確認画面が表示されるので[復元]をクリックします。

完了画面が表示されるので[OK]をクリックします。

先ほど編集したファイルを開いてみると、編集前の状態に戻っていることがわかります。

このようにAzure上に構築したファイルサーバーでもオンプレと同様の機能が使用できます。そのため、構成を変更せずに移行したいという場合には、この方法が構成等を考える必要があまりないため比較的楽だと思います。


2.Azure Filesでファイルサーバーを構築

次はAzure Filesでファイルサーバーを構築します。今回は以下の図のような環境を構築します。オンプレミスとAzureの間はExpressRouteにより接続されており、オンプレミスとAzure上の端末はクライアントとして、2か所から接続を行います。

2-1. ストレージアカウントの作成

まずAzure Filesを使用するために汎用ストレージアカウントを作成します。Azure Filesは基本的にHDDを使用するため[パフォーマンス]は[Standard]を選択しています。現在プレビューでSSDへ対応しているため今後パフォーマンスが向上する見込みです。また、Azure Filesでは[レプリケーション]で[RA-GRS]は使用できないので注意してください。[アクセス層]に関してもAzure Filesはどちらを選んでも関係ありません。

2-2. ファイル共有の作成

先ほど作成したストレージアカウント内でAzure Filesファイル共有を作成します。作成したストレージアカウントの概要に[サービス]があり、その中の[ファイル]を選択します。

上部のファイル共有を選択し、[名前]と[クォータ]を入力します。[クォータ]は格納可能なデータの最大サイズを指定できます。指定しない場合は5TiBとなります。今回は指定無しとします。

これで5TiBの共有フォルダが作成できました。仮想マシンを作成するよりも簡単に構築できます。

2-3.クライアントからのマウント

作成した共有フォルダをクライアントからマウントします。クライアントとしてWindows、Linux、MacOSが利用可能です。ただし、Linuxに関しては共有レベルの暗号化がサポートされていないため、Azure Files ファイル共有と同じリージョンの仮想マシンからのみアクセス可能となっています。

クライアントOS オンプレマシンからのマウント Azure仮想マシンからのマウント
Windows
Linux ×
MacOS

また、Azureの外部からマウントする場合は送信TCPポートの445をあけておく必要があるので注意してください。445が開いているかわからない場合はクライアント端末から[Test-NetConnection]を使用してチェックしてみてください。以下のように[TcpTestSucceeded]が[True]となれば通信可能状態となっています。

マウントの方法としてコマンドとGUIがありますが、今回はWindowsでGUIからマウントする方法を紹介します。

2-3-1.アクセスキーの入手

マウント時の認証を行うためにアクセスキーが必要となります。アクセスキーはAzureポータル画面から作成したストレージアカウントを選択し、[設定]内の[アクセスキー]をクリックします。表示された[Key1]の[キー]をコピーします。

2-3-2.ネットワークドライブの割り当て

クライアント端末のエクスプローラを開き[ネットワークドライブの割り当て]をクリックします。

[フォルダー]に[\\[ストレージアカウント名].file.core.windows.net\[ファイル共有名]]を入力して[別の資格情報を使用して接続する]にチェックを入れて[完了]をクリックします。

資格情報入力の画面が出てくるので[ユーザー名]に[ストレージアカウント名]、[パスワード]に[アクセスキー]を入れて[OK]をクリックします。

[azure-fileserver]に接続することができました。PowerShellからマウントする方法もありますが、ドライブが見えなくなるなどがあるため、少し手間がかかりますがこちらから設定することをお勧めします。

マウントしたAzure Filesにテキストファイルを保存して動作を見てみます。

先ほど保存したクライアント端末とは別のクライアント端末にAzure Filesをマウントして中身を見てみると問題なく同期されていることがわかります。

また、Azure Files側からも先ほど作成されたテキストが表示されていることがわかります。

2-4.バックアップ

前回の記事でお伝えしたように、Azure Filesのバックアップでは[共有スナップショット]と[Azure Backup]が使用できます。それぞれを実装した際にどのような動作となるのか紹介したいと思います。

2-4-1.共有スナップショット

共有スナップショットの設定はAzure Filesのファイル共有内から行います。今回作成したazure-fileserver内の[スナップショットの作成]をクリックすることでその時点のスナップショットを作成できます。ただクリックするだけで簡単にスナップショットが取れる仕組みになっています。

では実際にスナップショットの状態に戻してみたいと思います。変化がわかるようにファイルの中身を変更して保存します。

ファイル共有内の[スナップショットの表示]をクリックします。

先ほど作成したスナップショットが出てきているので、それを選択します。

作成したテキストファイルのスナップショットがとられているのでこれを選択し、[復元]をクリックします。

リストアのオプションとして[コピーとして復元して名前を変更する]と[元のファイルを上書きする]を選ぶことが可能です。今回は[元のファイルを上書きする]を選択します。

先ほど変更して保存したテキストファイルを見に行くと編集する前の状態に戻っていました。

簡単にリストアを行えますがわざわざポータルを開くのも面倒です。そこで、ユーザー側から簡単に元の状態に戻す方法も紹介します。先ほどと同様に適当にテキストファイルを編集して保存します。

テキストファイルを右クリックして[プロパティ]→[以前のバージョン]タブを選択します。すると、先ほどスナップショットをとった状態が選択できます。これを選択して[復元]をクリックします。

復元が終わると[以前のバージョン]から先ほどのスナップショットが消えています。

テキストファイルを見てみると最初にスナップショットをとった状態に戻っています。このように管理者側だけでなくユーザー側からも簡単にリストアを行うことができるようになっています。

2-4-2.Azure Backup

Azure Backupの設定はRecovery Servicesコンテナー(以下、RSコンテナー)から行います。RSコンテナーを作成して[はじめに]内にある[バックアップ]をクリックして[ワークロード]で[Azure]、[何をバックアップしますか?]で[Azureファイル共有]を選択して[バックアップ]をクリックします。
※現時点ではプレビューです。

Azure Filesで使用するストレージアカウントを選択します。

ファイル共有を選択します。

バックアップポリシーを作成します。今回は毎日日本時間の深夜2時にバックアップがとられ、7日間保持する、というポリシーです。

それぞれの内容を確認して[バックアップの有効化]をクリックし、設定ができたら[バックアップアイテム]から[Azure Storage(Azure Files)]を選択します。

azure-fileserverが入っているのでメニューから[今すぐバックアップ]をやってみます。

[バックアップの保持期間]を聞かれるので今回は適当な日付にして[OK]をクリックします。

[バックアップジョブ]でバックアップが終了したことを確認します。

再度[バックアップアイテム]を見てみると[前回のバックアップ状態]が[成功]となっているのがわかります。

ではクライアント端末からテキストファイルを編集して保存します。

もう1つテキストファイルを追加しておきます。

[バックアップアイテム]からまずは[ファイルの回復]を選択します。

先ほど作成した復元ポイントを選択します。

[回復先]が選択できるので、[元の場所]として[競合が発生した場合]は[既存データに上書き]とします。[ファイルの選択]をクリックして、テキストファイルを選択します。

テキストファイルが選択されていることを確認して[OK]を押します。下に小さく書かれていますが、最大10個のファイル/フォルダを一度に復元できるようです。

状態を確認して[復元]をクリックし、[バックアップジョブ]で復元の進捗が確認できるので完了するまで待ちます。

そして先ほど編集したテキストファイルを見てみると元に戻っています。

では次に、[共有の復元]を行ってみます。再度テキストファイルを編集します。

[バックアップアイテム]で[共有の復元]を選択します。

先ほどよりシンプルな選択肢になりました。同様にやってみたいと思います。

復元後、ファイル共有の中身を見てみると編集したテキストファイルは編集前に戻り、バックアップ後に作成した新しいテキストファイルはそのままになっています。

1度目の[ファイルの回復]は1つずつファイルを選択してファイルやフォルダ単位で復元を行います。2度目の[共有の復元]はファイル共有を丸ごとバックアップ時の状態に戻します。バックアップ後に追加していたテキストファイルはリストア後も消えていなかったため、バックアップ後に追加されたものに関してはリストアの影響を受けないことがわかりました。「この時の状態に戻したいけど追加したファイルが消えるのは困る!」という場合でも使えるため、使い勝手はいいかもしれません。

ちなみにですが、バックアップの設定を行った場合、ファイル共有内の画面では[共有スナップショット]の項目が消え、[バックアップの管理]になります。

[バックアップの管理]をクリックすると復元等が行える画面が表示できます。

実はAzure Backupのコンテナーは使用していますが、本来のAzure Backupの機能としては使われていません。実際は共有スナップショットをスケジュール通りに作成するという[共有スナップショットの自動化]を行っているだけなので共有スナップショットとAzure Backupは平行利用することはできなくなっています。ただし、現在Azure Backupはプレビューのため、これからまた仕様が変わる可能性もあるため注意が必要です。


3.Azure File Syncでハイブリッドファイルサーバーを構築

最後はAzure File Syncでハイブリッドファイルサーバーを構築します。今回は以下の図のような環境を構築します。オンプレミスとAzure上の端末を同期サーバーとします。

3-1.Azure Files ファイル共有の作成

Azure File SyncはAzure Filesファイル共有と同期サーバーを同期するため、Azure Filesファイル共有を用意する必要があります。先ほどまでのファイル共有が使えたらよいのですが、現在Azure File Syncと同一リージョンにAzure Filesがある必要があり、現在日本での提供はされていません。そのため、東アジアで再度作成します。注意点として、Azure File Syncに対応するストレージアカウントは[汎用v1]または[汎用v2]であり、レプリケーションは[LRS]または[GRS]がサポートされます。

3-2. ストレージ同期サービスの作成

[リソースの作成]の検索から[Azure File Sync]を検索して[Azureファイル同期]を選択します。

[ストレージ同期のデプロイ]ブレードで[東アジア]を選択して作成します。

3-3. 同期サーバーの準備

ストレージ同期サービスを作成後、同期を行うサーバーの準備を行います。

3-3-1.事前準備

同期サーバーをストレージ同期サービスへ登録する際にIEセキュリティ強化を無効化しておく必要があります。サービス登録後は再度有効にすることができます。また、[Install-Module AzureRM]でAzure RM PowerShellのモジュールをインストールしておく必要があります。

3-3-2.エージェントのインストール

Microsoftダウンロードセンターからエージェントをダウンロードしてインストールします。現在の対応OSは画像の3つです。

ダウンロードしたmsiファイルを実行し、ウィザードに従ってインストールを進めます。

[I accept the terms in the License Agreement]にチェックを入れて[Next]をクリックします。

インストールする場所を選択します。

プロキシを経由する場合はここで設定を行います。今回はプロキシを通さないため設定は行いません。

Azure File Syncは定期的にバージョンアップされます。古いバージョンは新しいバージョンが出てから3か月サポートされますが、3か月を過ぎた場合はAzure File Syncへの接続が拒否されるようになります。これを防ぐためにAzure File SyncをWindowsアップデートで最新の状態に保つ設定を行うことができます。

[Install]をクリックするとエージェントインストールが開始されます。

インストールが終了したら[Finish]をクリックします。

自動的に[Agent Update]が表示されるので[OK]を押します。

3-3-3.Azure File Syncの登録

Azure File Syncへの登録を行います。1台の同期サーバーは1つのストレージ同期サービスのみに登録可能となっています。[Sign in]をクリックします。

Microsoftのサインイン画面が表示されるため、権限のあるアカウントでサインインを行い、Azure File Syncで使用する[Storage Sync Service]を選択します。

再度Microsoftのサインイン画面が表示されるのでサインインを行い、成功画面が出たら[OK]をクリックします。

3-4.同期グループの作成

ファイル同期を行うグループを作成します。同期グループでは1つのクラウドエンドポイントと複数のサーバーエンドポイントを設定します。

3-4-1.クラウドエンドポイント設定

クラウドエンドポイントはAzure Filesファイル共有を指定します。作成した[ストレージ同期サービス]から[+同期グループ]をクリックします。

今回使用するストレージアカウントを選択してAzure Filesファイル共有を選択し、[作成]をクリックします。

同期グループが作成され、[ヘルス]が緑色になっていることを確認しておきます。

3-4-2.サーバーエンドポイント

同期グループを選択し、[サーバーエンドポイントの追加]を選択し、同期サーバーを登録したサーバーの一覧から選択し、同期サーバー内のローカルフォルダを指定します。このローカルフォルダは共有フォルダである必要はなく、存在しない場所を指定した場合、フォルダが作成されます。

サーバーエンドポイントは複数登録可能なため、2つ目の同期サーバーを登録します。

[ヘルス]が[保留中]または緑色となることを確認しておきます。

3-5.ファイル同期

3-5-1.同期タイミング

同期サーバーにファイルを1ついれてAzure Filesへどのくらいで同期されるのか確認してみます。

ファイルを入れてすぐにAzure Filesのほうから確認してみますが、すぐに同期されていました。

今度はAzure Filesにファイルをアップロードしてみます。

 

同期サーバーを見てみると先ほどAzure Filesでアップロードしたファイルは表示されていません。Azure File Syncでは同期サーバーからの変更は即時エージェントにより同期されますが、Azure Filesからの変更は24時間に1回しか同期されません。

3-5-2.競合時のファイル同期

双方の同期サーバーで同一のファイルを同一のタイミングで保存した場合の動作がどうなるのか確認してみます。[HelloAzureFileSync]というファイルを同期サーバーの双方から編集し、同一のタイミングで保存します。Azure File Syncでは競合の処理は行わず、両方の変更を別ファイルとして保存することで両方を残します。競合が発生した場合、片方のファイルに[-マシン名]が付きます。さらに競合が起こるとマシン名の後ろに[-番号]が付き、以降は番号が増えていきます。

3-6.クラウド階層化

Azure File Syncでは実ファイルをクラウド上に持ち、同期サーバーにはポインタを置くことでサーバーのデータ容量を減らすことができる[クラウド階層化]という機能が使用できます。

同期グループ内のサーバーエンドポイントを選択し、[クラウド階層化]を[有効]にすることで使用できます。また、指定した割合の空きスペースを常に確保するという設定が可能であり、今回は全てのファイルをクラウド上で持つために[100]とします。

クラウド上にデータがあるファイルはプロパティの[ディスク上のサイズ]が[0]となります。


4.まとめ

今回はAzureを使用したファイル共有を実際に構築していきました。実際に会社に導入して使用するにはネットワークの環境やセキュリティの要件など、まだまだ選定を行うための情報が必要だと思います。前回、今回で紹介した内容以外にもこのようなことはどうなのか、ということがありましたらご連絡ください。また、まだプレビュー機能もあり仕様に関して今後変更されることがあります。そのため、最新の情報を常に確認するようにしてください。

 

この記事を書いた人

渡邊真悟
渡邊真悟
オンプレエンジニアとして活動するはずが、気が付いたらクラウドに飲み込まれていたエンジニア
新しいことに取り組むのが苦手だった自分を変え、常に最新の情報を取り入れられるように日々奮闘しています。
Azureの機能検証や、Azure Stackも担当していることからハイブリッド環境の検証もお届け出来ればと思っています。
こんな検証ができないか、等ありましたら是非当社までご連絡ください!