WindowsでAzure ファイル共有を使ってみた

 

今回はAzure ストレージアカウントのファイル共有を利用して、Windowsからネットワークドライブとしてマウントする所まで試してみました。

Azure ファイル共有ですが、サーバレスでSMBやNFSプロトコルを介してアクセスできる、フル マネージドのファイル共有サービスになります。

今回実施した内容はこちらの内容になります。

      • Azure ファイル共有用のストレージアカウントを作成
      • Azure ストレージアカウントでファイル共有設定
      • Windows OSからAzure ストレージアカウント(ファイル共有)をマウント

今回は以下の条件で作成を試してみました。

      • StorageV2 (汎用 v2)を利用する
      • Azure VM(Windows)からマウントする

※今回はStorageV2のファイル共有で試しています。Azure Filesは次回以降に試したいと思います。

1.Azure ファイル共有用のストレージアカウントを作成する

マイクロソフトサイト記載の内容にそって設定を行っていきます。

    • Azure ファイル共有を作成する

https://docs.microsoft.com/ja-jp/azure/storage/files/storage-how-to-create-file-share?tabs=azure-portal

まず最初に、ファイル共有するストレージアカウントを作成します。

1)ストレージアカウントのメニューで追加を選択します。

2)ストレージアカウントの作成画面で設定を行います。基本では以下の内容を設定します

    • 主に設定する内容(今回の設定内容) 
      • ストレージアカウント名:任意で設定
      • リソースグループ名:任意で設定
      • 場所:東日本
      • パフォーマンス:Standard
      • アカウント種類:StorageV2
      • レプリケーション:ローカル冗長
      • Blobのアクセスレベル:ホット

※環境や利用用途に合わせて適時設定して下さい。

※通常のストレージアカウントと同様にStandard (HDD)やPremium(SSD)などが選択できます。アカウント種類でAzure Filesを選択する場合はPremiumを選択する必要があります。

3)ネットワークの設定を行います。今回はAzure VMからのみの想定なのでVNET(仮想ネットワーク)を指定します。

    • 主に設定する内容
      • 接続方法:パブリックエンドポイント(選択されたネットワーク)
      • 仮想ネットワーク
        • 仮想ネットワーク:接続元Azure VMの仮想ネットワーク
        • サブネット;接続元Azure VMのサブネット

4)データ保護の設定を行います。論理削除やポイントタイムの設定は今回はデフォルト(無し)のままとしています。

5)詳細の設定を行います。今回は変更せず確認および作成を選択します。タグ設定する場合は次へでタグ設定を行います。

確認画面が表示されるので問題が無ければ作成します。

これでストレージアカウントの作成は完了です。

2.Azure ストレージアカウントでファイル共有設定する

作成したストレージアカウントでファイル共有の設定を行います。

1)作成したストレージアカウントを選択します。ファイル共有を選択します。

2)ファイル共有を選択し、新規作成を行います。

 

3)新しいファイル共有作成が表示されます。今回は以下の内容で設定しています。

      • 設定する内容
        • 名前(ファイル共有名):sharefile-drive(任意)
        • クォーター(ファイル共有のディレクトリサイズ);1GB
        • 層(ファイル共有アクセス 速度やコスト):トランザクションが最適化されました

※層に関しての詳細はこちらを確認願います。

https://docs.microsoft.com/ja-jp/azure/storage/files/storage-files-planning#storage-tiers

作成をクリックするとファイル共有が作成されます。

3.Windows OS(PowerShell)からAzure ストレージアカウント(ファイル共有)をマウントする

ファイル共有が利用できるようになったので、Windows OS(今回は2016を利用)からマウントします。

1)作成したファイル共有を選択します。

2)ファイル共有の画面が表示されますので、接続を選択します。

3)PowerShellが表示されますのでコピーします。

4)Windows OSにログインし先ほどコピーしたPowerShellを実行します。

コピーして実行になりますが、PowerShellの実例は下記の通りになります。

 $connectTestResult = Test-NetConnection -ComputerName <ストレージアカウント名>.file.core.windows.net -Port 445
if ($connectTestResult.TcpTestSucceeded) {
# 再起動時にドライブが維持されるように、パスワードを保存する
cmd.exe /C “cmdkey /add:`”<ストレージアカウント名>.file.core.windows.net`” /user:`“<ストレージアカウント名>`” /pass:`”<アクセスキー>`””
# ドライブをマウントする
New-PSDrive -Name Z -PSProvider FileSystem -Root “<ストレージアカウント名>.file.core.windows.net\sharefile-drive” -Persist
} else {
Write-Error -Message “Unable to reach the Azure storage account via port 445. Check to make sure your organization or ISP is not blocking port 445, or use Azure P2S VPN, Azure S2S VPN, or Express Route to tunnel SMB traffic over a different port.”
}

}

PowerShellが正常終了すると下記のようなメッセージが表示されます。

5)Windows OSのエクスプローラーで確認すると、ファイル共有がネットワークドライブとしてマウントされている事が確認出来ます。

6)実際にネットワークドライブにファイル作成すると無事作成できる事が確認出来ました。

4.Windows OS(GUI)からAzure ストレージアカウント(ファイル共有)をマウントする

Windows OSからのマウントはGUIを使っても可能です。

1)エクスプローラーでネットワークドライブの割り当てを選択します。

2)ネットワークドライブの割り当て画面が表示されますので設定します。

      • 設定する内容
        • ドライブ:Z:
        • フォルダー:”ストレージアカウント名”.file.core.windows.net\”ファイル共有名(今回の場合はsharefile-drive)”
        • サインイン時に再接続する;チェック有
        • 別の資格情報を使用して接続する:チェック有

3)Azure Portalのストレージアカウントでアクセスキーを確認しコピーします。

4)ネットワーク情報の資格画面で以下の通りに入力します。入力したらOKをクリックします。

      • 設定する内容
        • AZURE¥ストレージアカウント名
        • アクセスキー
        • 資格情報を記憶する:チェック有

ファイル共有が表示されると、先ほど作成したファイルが表示されます。

Azure VM(CentOS 7)からBlobfuseを利用してBlobストレージをマウントする

 

Azure VM(Cent OS 7) からのBlobストレージマウントを利用検証してみました。

Azure上のLinuxからBlobストレージのマウントをするにはBlobfuseを利用するそうです。

Azure VM (Cent OS 7) に追加した、Standard SSDのデータディスクをキャッシュディスクとして利用して試してみました。
ディスクの追加やマウントは、下記に記載させて頂きましたので併せて参考にして頂ければと思います。

Azure VM(CentOS 7)にデータディスクを追加する

1 .Cent OS 7にBlobfuseをインストールする

以下のサイトを参考にBlobfuseをインストールしました。RPMファイルのダウンロード、インストールを行った後に、Blobfuseのパッケージをyumでインストールしています。

https://docs.microsoft.com/ja-jp/azure/storage/blobs/storage-how-to-mount-container-linux

[root@test-01]# rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
#今回は、CentOS7なので6→7へ変えてます。(6用と7用のパッケージは異なるそうです。)(関連パッケージも一緒に入ります。)
[root@test-01]#yum -y install blobfuse

2.Blobfuseを設定する

主な手順は3つの作業になりました。

    • ディレクトリ作成、マウント
    • ストレージアカウントのアクセスキーの設定
    • Blobストレージのマウント

追加したSSDのデータディスクをキャッシュとして利用している為、マイクロソフト様の例とは手順が若干手順が異なります。

#事前にSSDをデータディスクとして追加し、フォーマット等を完了させています。(今回は/mnt/ramdiskにSSDをマウントし、キャッシュとして利用します。)
[root@test-01]#mkdir /mnt/ramdisk #Blobfuseキャッシュ用のディレクトリです。
[root@test-01]#mount /dev/sdc1 /mnt/ramdisk
[root@test-01]#mkdir /mnt/ramdisk/blobfusetmp
[root@test-01]#mkdir /var/blobfuse #Blobストレージマウント用のディレクトリです。

#設定ファイルを作成します。今回は、/etc/の配下に設定ファイルを作成してます。
#アカウントKeyは、ストレージアカウントのアクセスキーメニューを開くと、Key1が表示されていますのでここの値を入れてます。
[root@test-01]#echo “accountName ストレージアカウント名” >> /etc/fuse_connection.cfg
[root@test-01]#echo “accountKey アカウントKey” >> /etc/fuse_connection.cfg
[root@test-01]#echo “containerName コンテナ名” >> /etc/fuse_connection.cfg
[root@test-01]#chmod 600 /etc/fuse_connection.cfg

#今回はblobfuseでマウントポイントを/var/blobfuseとして、Blobストレージをマウントしています。
#-o allow_otherを追加しています。これを追加しないと他のユーザーからアクセスできません。
[root@test-01]#blobfuse /var/blobfuse –tmp-path=/mnt/ramdisk/blobfusetmp –config-file=/etc/fuse_connection.cfg -o attr_timeout=240 -o entry_timeout=240 -o negative_timeout=120 -o allow_other

#マウントされたかどうかを確認します。サイズは、キャッシュのサイズが表示されます。(実際に使用する容量分のキャッシュが必要です。)
[root@test-01]df -h

ファイルシス サイズ 使用 残り 使用% マウント位置
(略)
blobfuse 3.9G 25M 3.7G 1% /var/blobfuse

3 .実際に利用してみての感じ

今のところ非常遅い感じです。またキャッシュが悪さしているのか、共有領域が更新されない等もありました。何かチューニングポイントがありそうな気もするので色々探してみたいと思います。