プレビュー機能のAzure File Storageを、Azure上のWindows仮想マシンからネットワークドライブとしてマウントして、コピーや移動のスピードを測ってみました。
準備
Azure Storage Accountを2つ用意しました。ネットワークドライブとしてマウントするためにStorage Accountのリージョンは仮想マシンと同一リージョンに作る必要があります。
仮想マシンから以下のようなPowerShellを実行すれば用意完了です。なお今回はJAPAN EASTのリージョンを利用しています。
Import-Module Azure #コピー元のFile共有を作成 $srcAccount = "コピー元ストレージアカウント名" $srcKey = "コピー元ストレージアカウント名Aのアクセスキー" $srcCtx = New-AzureStorageContext $srcAccount $srcKey $srcShareName = "src" New-AzureStorageShare -Context $srcCtx -Name $srcShareName #コピー先のFile共有を作成 $destAccount ="コピー先ストレージアカウント名A" $destKey = "コピー先ストレージアカウント名Bのアクセスキー" $destCtx = New-AzureStorageContext $destAccount $destKey $destShareName = "dest" New-AzureStorageShare -Context $destCtx -Name $destShareName #コピー元のFile共有をSドライブとしてマウント [Char]$DriveLetter = "S" $cred = New-Object System.Management.Automation.PsCredential($srcAccount, (ConvertTo-SecureString $srcKey -AsPlainText -Force)) $sharefolder = "\\$srcAccount.file.core.windows.net\$srcShareName" New-PSDrive -Name $DriveLetter -PSProvider FileSystem -Root $sharefolder -Credential $cred -Persist #コピー先のFile共有をYドライブとしてマウント [Char]$DriveLetter = "Y" $cred = New-Object System.Management.Automation.PsCredential($destAccount, (ConvertTo-SecureString $destKey -AsPlainText -Force)) $sharefolder = "\\$destAccount.file.core.windows.net\$destShareName" New-PSDrive -Name $DriveLetter -PSProvider FileSystem -Root $sharefolder -Credential $cred -Persist
測定パターン
以下の4パターンで測定しています。ポイントは同一アカウント間と別アカウント間での速度の違いでした。
パターン | アカウント | ファイルサイズ | ファイル数 |
---|---|---|---|
パターン① | 同一アカウント間 | 1.5GB | 1 |
パターン② | 同一アカウント間 | 300KB | 5000 |
パターン③ | 別アカウント間 | 1.5GB | 1 |
パターン④ | 別アカウント間 | 300KB | 5000 |
ファイルコピー
ファイルコピーを以下のコマンドなどを利用して計測してみました。
fsutil file createnew S:\largefile.tmp 1536000000 Measure-Command {Copy-Item S:\largefile.tmp S:\largefile.tmp.copy} Measure-Command {Copy-Item S:\largefile.tmp Y:\largefile.tmp.copy} fsutil file createnew S:\Files\file.tmp.1 307200 2..5000 | %{Copy-Item S:\Files\file.tmp.1 S:\Files\file.tmp.$_} Measure-Command {Copy-Item S:\Files S:\FileCopy -Recurse} Measure-Command {Copy-Item S:\Files Y:\FileCopy -Recurse}
結果は以下の通りです。単位は秒です。
同一アカウント間 | 別アカウント間 | ||
---|---|---|---|
1.5GB * 1File | 1回目 | 45.033729 | 34.5335561 |
2回目 | 44.2469198 | 34.9677511 | |
300KB * 5000Files | 1回目 | 247.7446042 | 218.2413095 |
2回目 | 213.3896979 | 215.9584509 |
コピーに関しては同一アカウント間より別アカウント間でのコピーの方がスピードが出るようです。
ファイル移動
ファイル移動を以下のコマンドなどを利用して計測してみました。
fsutil file createnew S:\largefile.tmp 1536000000 Measure-Command {Move-Item S:\largefile.tmp S:\largefile.tmp.copy} Measure-Command {Move-Item S:\largefile.tmp Y:\largefile.tmp.copy} fsutil file createnew S:\Files\file.tmp.1 307200 2..5000 | %{Copy-Item S:\Files\file.tmp.1 S:\Files\file.tmp.$_} Measure-Command {Move-Item S:\Files S:\FileCopy} Measure-Command {Move-Item S:\Files Y:\FileCopy}
結果は以下の通りです。単位は秒です。
同一アカウント間 | 別アカウント間 | |
---|---|---|
1.5GB * 1File | 0.030772 | 34.1577649 |
300KB * 5000Files | 0.0220539 | 317.2146109 |
まとめ
全体的には特殊な結果は無く、通常のNASなどと同じようなイメージで使えるようです。