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

2020-10-13Azure,Storage,Windows

Azure Files(Azure ファイル共有)を仮想マシン(Azure VM)からネットワークドライブとしてマウントする所まで試してみました。

    • 大まかな手順の流れ
      • Azure上でストレージアカウントのリソースを作成
      • ストレージアカウントにファイル共有を作成
      • Windows OSからAzure ファイル共有をマウント(ネットワークドライブの割り当て)

ストレージアカウントはStandard(汎用V2)を利用し、仮想マシン(Azure VM)はWindows Server 2019を利用しています。

スポンサーリンク

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

Azure Files(Azure ファイル共有)とは

Azure基盤で提供されるフルマネージドのファイル共有サービスです。

SMB、NFS、および Azure Files REST APIがサポートされます。
クラウド上またはオンプレミスからマウントできます。
SMBを利用したファイル共有の場合には、Windows、Linux、および macOS クライアントからアクセス可能です。
NFSを利用した場合は、Linuxクライアントからアクセス可能です。

ストレージアカウントの設定

ファイル共有はストレージアカウント内に作成します。

Standard 汎用 v2、Premiumファイル共有で利用可能です。
今回はStandard 汎用 v2を利用します。

主な設定は下記表の通りです。それ以外の項目はデフォルトにしています。
仮想ネットワーク上のAzure VM(仮想マシン)からのアクセスを想定しています。

  • 基本設定
区分 項目 設定値
インスタンスの詳細 ストレージ アカウント名 teststorageaccountXXXX
場所 East US 2
パフォーマンス Standard
冗長性 LRS(ローカル冗長ストレージ)
  • ネットワーク設定
区分 項目 設定値
ネットワーク接続 ネットワーク アクセス 選択した仮想ネットワークとIPアドレスからのパブリックアクセスを有効にする
仮想ネットワーク 仮想ネットワーク test-vnet-01
サブネット st-subnet-01
vm-subnet-01

※Azure VM(仮想マシン)はvm-subnet-01にあります。ファイル共有へのアクセスはサービスエンドポイント経由でのアクセスとします。

  • データ保護
区分 項目 設定値
復旧 BLOB の論理的な削除を有効にする 無効(チェックを外す)
コンテナーの論理的な削除を有効にする 無効(チェックを外す)
ファイル共有の論理的な削除を有効にする 無効(チェックを外す)

※検証用なので論理削除を無効化しています。通常時は利用用途に合わせて設定しますが、特別な事情がない限り有効化します。

ストレージアカウントを作成

ストレージアカウントを作成します。

    • 作成タブ
      • 基本:ストレージ アカウント名、地域、パフォーマンスや冗長性などのリソースの設定
      • 詳細設定:転送設定、名前空間、NFSのサポートなどストレージアカウント内のリソースに関する設定
      • ネットワーク:ストレージアカウントのネットワーク設定
      • データ保護:論理削除の有効化などのデータ保護設定
      • 暗号化:データ保管時の暗号化設定
      • タグ:リソースに付与するタグの設定
      • 確認および作成:作成前の確認画面
作成画面
ストレージアカウントで作成を選択します。

作成画面が表示されます。
ストレージアカウント名、地域、パフォーマンス、冗長性を設定します。

※検証目的なので冗長性はローカル冗長を選択してます。利用用途に応じて選択します。

詳細設定です。
今回は変更せずに次に進みます。
ネットワーク設定です。
ネットワークアクセスは”選択した仮想ネットワーク…”を選択します。
仮想ネットワークとサブネットはAzure VM(仮想マシン)からアクセスできるように選択します。
今回はAzure VM(仮想マシン)が所属するサブネットを選択しています。

データ保護設定です。
今回は検証目的なので論理削除のチェックを外しています。

※論理削除はごみ箱を有効、無効にするのと同じような感じです。

暗号化設定です。
今回は変更せずにReviewに進みます。

※タグは割愛しています。

確認および作成です。
内容を確認後に作成を選択します。

※修正が必要な場合は戻って再設定します。

ファイル共有設定内容

ストレージアカウントで作成するファイル共有の設定です。

  • ファイル共有設定
区分 項目 設定値
ファイル共有 名前 sharefile-drive
レベル トランザクションが最適化されました
クォータ 1GB

トランザクションレベルについて

Standardのファイル共有では3つの使用量レベルが提供されています。

使用量レベルは利用用途に応じて選択します。
保存データに対する課金額(高い順)はトランザクション最適化、ホット、クールの順になります。

      • トランザクション最適化:トランザクション負荷の高い(アプリケーションがアクセスするような使い方)けど、Premiumファイル共有まで必要ない場合に利用
      • ホット:そこそこアクセスするけど、同時アクセス数などが少ない、チームでのファイル共有などの場合に利用
      • クール:普段アクセスしないアーカイブやバックアップのファイル保管場所として利用

Standardの場合はすべてHDDで提供されます。
より高速なアクセスを求める場合はPremiumファイル共有を選択します。
Premiumファイル共有はSSDで提供されます。

トランザクションレベル
Azure Portalの検索欄でPostgreSQLと入力します。
Azure Database for PostgreSQLフレキシブル サーバーを選択します。

ファイル共有作成

ストレージアカウントでファイル共有を作成します。

ファイル共有作成

ファイル共有のリソースメニューを選択します。
ファイル共有を選択すると新しいファイル共有作成画面が表示されます。
名前、レベルを設定します。

ファイル共有が作成されている事が確認出来ます。

※この時点ではクォータはデフォルトの5TiBになります。

トランザクションレベルについて

Standardのファイル共有では3つの使用量レベルが提供されています。

使用量レベルは利用用途に応じて選択します。
保存データに対する課金額(高い順)はトランザクション最適化、ホット、クールの順になります。

      • トランザクション最適化:トランザクション負荷の高い(アプリケーションがアクセスするような使い方)けど、Premiumファイル共有まで必要ない場合に利用
      • ホット:そこそこアクセスするけど、同時アクセス数などが少ない、チームでのファイル共有などの場合に利用
      • クール:普段アクセスしないアーカイブやバックアップのファイル保管場所として利用

Standardの場合はすべてHDDで提供されます。
より高速なアクセスを求める場合はPremiumファイル共有を選択します。
Premiumファイル共有はSSDで提供されます。

トランザクションレベル
ファイル共有単位でレベルを選択する事が出来ます。
Standardの場合は3つのレベルから選択します。

クォータ設定

クォータはファイル共有の上限です。

今回は設定確認も含めて1GBで設定します。

Standardの場合は実際に使った容量に対しての課金になります。
一方でPremiumファイル共有の場合はデプロイした容量に対しての課金になります。
Premiumファイル共有の場合はクォータで設定した容量に対して課金が発生します。実際の使用量に関わらないので注意が必要です。

クォータ設定
作成したファイル共有でクォータの編集を選択します。
クォータを1とします。
クォータが1GiBになっている事が確認出来ます。

※実運用環境では利用用途に合わせてクォータのサイズは設定します。

ファイル共有のバックアップリストアについてはこちらで纏めています。

——

Windows ServerからAzure ファイル共有をマウント

PowerShellを使ってファイル共有をマウント

Azureファイル共有に接続情報(PowerShell)が記載されています。
これを使うと簡単にマウントする事が出来ます。

ファイル共有に接続
ファイル共有で接続を選択します。
接続方法はADとストレージアカウントキーがあります。
ドライブ文字はOSでマウントする際のドライブレターです。デフォルトのままZとしています。
認証方法はファイル共有時の認証方法です。ストレージアカウントキーを選択します。

PowerShellが表示されます。
仮想マシン(Azure VM)やOS再起動時にもマウントされるようになっています。
コピーします。

$connectTestResult = Test-NetConnection -ComputerName ストレージアカウント名.file.core.windows.net -Port 445
if ($connectTestResult.TcpTestSucceeded) {
# 再起動時にドライブが維持されるように、パスワードを保存する
cmd.exe /C “cmdkey /add:`"ストレージアカウント名.file.core.windows.net`" /user:`"localhost\ストレージアカウント名`" /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."
}

Windows Server上でWindows PowerShellもしくはWindows PowerShell ISEを選択します。

コピーしたPowerShellを貼り付け実行します。(画面はPowerShell ISEの例です。)
完了すると”資格情報を正しく追加しました。”と”ドライブ情報”が表示されます。

OS上のエクスプローラーで確認します。
ファイル共有がOSからマウントされている事が確認出来ます。

アクセス拒否されている場合

ファイル共有へアクセスが許可されていない場合はエラーメッセージが表示されます。

      • 考えられる主な理由
        • ネットワークセキュリティグループ(NSG)でストレージアカウントへ445ポートのアクセスが許可されていない
        • ストレージアカウントのネットワーク設定が間違っている
エラーメッセージ表示例
”New-PSDrive:アクセスが拒否されました。”とエラーメッセージが表示されます。

ストレージアカウントのネットワーク設定確認

エラーメッセージが表示された時の対処例です。
仮想ネットワークからアクセスの場合は、仮想マシン(Azure VM)のサブネットが追加されているか等を確認します。

ネットワーク設定確認

ネットワーク設定で仮想マシン(Azure VM)のサブネットが許可されているのか確認します。
vm-subnet-01(仮想マシンが所属するサブネット)がマウントされているのかを確認します。

※仮想マシン(Azure VM)のネットワークインターフェースやサブネットのネットワークセキュリティグループ(NSG)での許可設定なども合わせて確認します。

ネットワークドライブの割り当てを使ってファイル共有をマウント

ネットワークドライブの割り当てを使ってもストレージアカウントのファイル共有を利用する事が出来ます。
フォルダーは

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

ネットワークドライブの割り当てウィザードが開始します。
ドライブレターを設定します。画面例ではZドライブにしています。
フォルダを指定します。
フォルダーの指定内容はファイル共有のパスになります。

※ファイル共有のパスはファイル共有のプロパティで確認出来ます。(https://になっているのでこの部分を\\に変えます。)

資格情報の確認になります。
アクセスキーを入力します。
アクセスキーはストレージアカウントのアクセスキーで確認出来ます。

※Key1で表示するとコピーできます。

ファイル共有がOS上でマウントされている事がエクスプローラーで確認出来ます。

最後に

今回はWindows Serverからストレージアカウントに作成したファイル共有をマウントする手順を纏めてみました。

    • ストレージアカウント作成
    • ファイル共有作成
    • Windows Serverでマウント

ネットワークの接続設定には注意が必要ですが、どの手順も簡単に設定する事が出来ました。
今後も色々試していきたいと思います。

こちらの記事ではAzure FilesのNFS共有をAzure VM(Linux)からマウントを試しています。

スポンサーリンク