none
azcopyでのtimeoutについて RRS feed

  • 質問

  • 初めて投稿させて頂きます。

    ファイル(zip形式)のバックアップとしてにAzureストレージ(blob)を使用し始めました。

    [質問内容]

    ・サイズの大きいファイルをblobへuploadするとタイムアウトが発生します。(10GB程度のファイルです。※1GBでもダメでした。)

    大きいファイル(10GB)のものでもblobにuploadできる方法等ご存じの方がいらっしゃいましたらご教示願います。

    [補足事項]

    ※小さいサイズのファイルは成功します。(27MB程度)

    ※大きいファイル(10GB)でも私のデスクトップからは2h程かかりましたが成功しました。

    ※夜間処理では、20分程でログに失敗の結果が出力されていました。

    ※私が直接コマンドを実行して行った場合1時間程で失敗して処理が終わっておりました。

    [追記(2015/06/26)]

    (1)リモートデスクトップで対象のサーバへ接続して、コマンドプロンプトからazcopyの処理を実行しました。

    (2)実行後、適度にリモートデスクトップで接続をして状況を確認しました。

    (3)そのうち他の作業に没頭し、実行していることを忘れてしまいましたが、思い出したときにサーバへリモートデスクトップで接続したところ、失敗しておりました。ただし、実行時間は3時間弱行われておりました。

    ※今日は、ネットワークが遅く100k/s(一昨日は1m/s)であったため、さらにupload時間が必要でした

    サーバ側のなんらかの時間制限に引っかかっているのかもしれませんが、ちょっとわかりませんでした。

    (電源の設定の部分でも特にログオフの時間制限はされていませんでした。)

    [現在の運用]

    blobへのuploadにazcopyツールを使用しており、バッチにて実行しております。

    (正確にはvb.net上でprocessクラスを使用してバッチ処理をさせています。)

    ※夜1:00にタスクスケジューラから実行させております。

    ※win2008r2のサーバを使用しております。(リモートデスクトップを使って操作・設定)

    [ログ内容]

    [2015/06/23 11:53:18.254+09:00] >>>>>>>>>>>>>>>>
    [2015/06/23 11:53:18.269+09:00][VERBOSE] 4.1.0 : AzCopy /Source:D:\SQLServer\xxxxx\backup /Dest:https://xxxxx.blob.core.windows.net/xxxxx /Pattern:xxxx_2.zip /DestKey:****** /S /Y /V:D:\SQLServer\xxxxx\log\azcopy.log
    [2015/06/23 11:53:19.611+09:00][VERBOSE] Start transfer: xxxx_2.zip
    [2015/06/23 12:50:05.922+09:00][VERBOSE] Transfer FAILED: xxxx_2.zip.
    [2015/06/23 12:50:05.922+09:00][ERROR] xxxx_2.zip: The client could not finish the operation within specified timeout.
    The client could not finish the operation within specified timeout.
    [2015/06/23 12:50:06.000+09:00] Transfer summary:
    -----------------
    Total files transferred: 1
    Transfer successfully:   0
    Transfer skipped:        0
    Transfer failed:         1
    Elapsed time:            00.00:56:47

    よろしくお願い致します。


    • 編集済み kyoshioka 2015年6月26日 4:23 追記
    2015年6月26日 0:56

回答

  • こちらで、3GB程度のISOファイルをAzCopyをつかってBLOBにアップロードしてみましたが、特に問題なく完了しました。
    そちらの環境ですと、アップロード速度が遅そうですので、それが関係しているかもしれません(当方、1G 光です)

    AzCopy.exe /Source:c:\xxxx\ /Dest:https://xxxx.blob.core.windows.net/yyyy /destkey:zzzzz /S  /Y /V /Pattern:*.iso
    Finished 1 of total 1 file(s).
    [2015/06/29 10:14:14] Transfer summary:
    -----------------
    Total files transferred: 1
    Transfer successfully:   1
    Transfer skipped:        0
    Transfer failed:         0
    Elapsed time:            00.00:01:06
    

    AzCopy以外のUploadツールとしては、Azure PowerShellを使うことになります。
    Set-AzureStorageBlobContent コマンドで実現できると思います。以下のURLを参考にしてみてください。

    https://msdn.microsoft.com/en-us/library/dn806379.aspx

    http://statemachine.hatenablog.com/entry/2015/04/01/103532

    • 回答の候補に設定 星 睦美 2015年6月30日 1:13
    • 回答としてマーク 星 睦美 2015年9月3日 1:03
    2015年6月29日 1:24
  • Timeoutしてしまうことは、同様事例がgoogle検索で複数見つかりました。
    対応としては、AzcopyのResume機能やパラメーターチューニングを使用して対処すると良いようです。
    参考サイトを2,3提示しますね。

    参考
    http://exchangeserverpro.com/office-365-import-service-azcopy-operation-timeout/

    http://social.technet.microsoft.com/wiki/contents/articles/26528.resuming-timed-out-uploadsdownloads-tofrom-azure-blob-storage-with-azcopy.aspx

    • 回答の候補に設定 星 睦美 2015年8月27日 0:19
    • 回答としてマーク 星 睦美 2015年9月3日 1:03
    2015年8月26日 16:16
    モデレータ

すべての返信

  • こちらで、3GB程度のISOファイルをAzCopyをつかってBLOBにアップロードしてみましたが、特に問題なく完了しました。
    そちらの環境ですと、アップロード速度が遅そうですので、それが関係しているかもしれません(当方、1G 光です)

    AzCopy.exe /Source:c:\xxxx\ /Dest:https://xxxx.blob.core.windows.net/yyyy /destkey:zzzzz /S  /Y /V /Pattern:*.iso
    Finished 1 of total 1 file(s).
    [2015/06/29 10:14:14] Transfer summary:
    -----------------
    Total files transferred: 1
    Transfer successfully:   1
    Transfer skipped:        0
    Transfer failed:         0
    Elapsed time:            00.00:01:06
    

    AzCopy以外のUploadツールとしては、Azure PowerShellを使うことになります。
    Set-AzureStorageBlobContent コマンドで実現できると思います。以下のURLを参考にしてみてください。

    https://msdn.microsoft.com/en-us/library/dn806379.aspx

    http://statemachine.hatenablog.com/entry/2015/04/01/103532

    • 回答の候補に設定 星 睦美 2015年6月30日 1:13
    • 回答としてマーク 星 睦美 2015年9月3日 1:03
    2015年6月29日 1:24
  • ご返答ありがとうございます。

    また、AzureのPowershellの情報もありがとうございました。

    実行しているサーバは、データセンターに設置してあるもので、速度もかなり遅いですね。

    本日の夜間に500GB単位で分割をして、blobにアップロードしましたが同様にタイムアウトになってしまいました。

    [ログ]

    [2015/06/30 08:26:04.055+09:00] >>>>>>>>>>>>>>>>
    [2015/06/30 08:26:04.148+09:00][VERBOSE] 4.1.0 : AzCopy /Source:D:\SQLServer\xxxxx\backup /Dest:https://xxx.blob.core.windows.net/xxx /Pattern:D:\SQLServer\xxx\backup\xxx_2.zip.009 /DestKey:****** /S /Y /V:D:\SQLServer\xxx\log\azcopy.log
    [2015/06/30 08:26:04.538+09:00][WARNING] The command line ""AzCopy" /Source:D:\SQLServer\xxx\backup /Dest:https://xxx.blob.core.windows.net/xxx /Pattern:D:\SQLServer\xxx\xxx_2.zip.008 /DestKey:****** /S /Y /V:D:\SQLServer\xxx\log\azcopy.log" in the journal file "C:\Users\xxxx\AppData\Local\Microsoft\Azure\AzCopy\AzCopy.jnl" is different from your input.
    [2015/06/30 08:26:04.663+09:00][WARNING] Incomplete operation with different command line detected at the journal directory "C:\Users\xxx\AppData\Local\Microsoft\Azure\AzCopy".
    [2015/06/30 08:26:09.094+09:00][VERBOSE] Start transfer: xxx_2.zip.009
    [2015/06/30 08:47:54.341+09:00][VERBOSE] Transfer FAILED: xxx_2.zip.009.
    [2015/06/30 08:47:54.357+09:00][ERROR] xxx_2.zip.009: The client could not finish the operation within specified timeout.
    The client could not finish the operation within specified timeout.
    [2015/06/30 08:47:54.451+09:00] Transfer summary:
    -----------------
    Total files transferred: 1
    Transfer successfully:   0
    Transfer skipped:        0
    Transfer failed:         1
    Elapsed time:            00.00:21:50
    

    こちらの方法は一旦保留として、アドバイス頂きましたPowerShell版で試してみたいと思います。

    よろしくお願い致します。

    以上

    2015年6月30日 0:16
  • AzureのPowershellをインストールして試してみました。

    [結果]

    512MBのファイル(1回目)はエラーとなりましたが、164MB(2回目)のファイルでは成功しました。

    ※1回目は、UPLOADのモニタのようなものが表示されたのち、以下のエラーが出力されましたが、2回目の方はモニタ表示後、UPLOADの状況(速度?)が表示されて成功の結果が出力されました。

    ※対象のファイルは、事前に7zipで512MB単位で分割したうちの1つ(1回目使用)と、最後の端数となったファイル(2回目使用)です。

    [ログ]

    Windows PowerShell
    Copyright (C) 2012 Microsoft Corporation. All rights reserved.
    
    For a list of all Azure cmdlets type 'help azure'.
    For a list of Windows Azure Pack cmdlets type 'Get-Command *wapack*'.
    For Node.js cmdlets type 'help node-dev'.
    For PHP cmdlets type 'help php-dev'.
    PS C:\> Set-AzureStorageBlobContent -Container [コンテナ名] -File "D:\SQLServer\xxx\XXX_2.zip.020"
    Set-AzureStorageBlobContent : リモート サーバーがエラーを返しました: (400) 要求が不適切です HTTP Status Code: 400 - HTT
    P Error Message: The specified blob or block content is invalid.
    発生場所 行:1 文字:1
    + Set-AzureStorageBlobContent -Container [コンテナ名] -File "D:\SQLServer\xxx ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : CloseError: (:) [Set-AzureStorageBlobContent]、StorageException
        + FullyQualifiedErrorId : StorageException,Microsoft.WindowsAzure.Commands.Storage.Blob.SetAzureBlobContentCommand
    
    詳細: Transfer Summary
    --------------------------------
    Total:  1.
    Successful: 0.
    Failed: 1.
    PS C:\>
    PS C:\> Set-AzureStorageBlobContent -Container [コンテナ名] -File "D:\SQLServer\xxx\XXX_2.zip.021"
    
    
       Container Uri: https://xxxxx.blob.core.windows.net/[コンテナ名]
    
    Name                  BlobType   Length                ContentType           LastModified          SnapshotTime
    ----                  --------   ------                -----------           ------------          ------------
    XXX_2.zip.021       BlockBlob  168885640             application/octet-... 2015/07/02 0:13:37...
    詳細: Transfer Summary
    --------------------------------
    Total:  1.
    Successful: 1.
    Failed: 0.
    

    何かアドバイス等頂けると幸いです。

    よろしくお願い致します。

    以上

    2015年7月2日 0:22
  • 可能性としてはあまりないとは思いますが、もしかしてストレージ側に問題があるのかもしれません。

    問題を切り分けるために、別のストレージアカウントを作成して、試してみてはいかがでしょうか?
    ちなみにストレージのリージョンはどこでしょうか?

    2015年7月2日 2:33
  • 今回使用しているストレージの場所(リージョン)は、「日本 (東)」です。

    次は、別のストレージアカウントを作成する際に、違う場所を選択して検証したほうがよさそうですね。

    ちなみにどこの場所で検証されましたでしょうか。

    よろしくお願いいたします。

    2015年7月2日 9:17
  • この間計測したときは、西日本を使いました。別DCのほうがベターでしょうか。
    2015年7月2日 9:48
  • 新しく西日本でストレージアカウントを作成し確認しました。

    [Powershell]

    ・前回エラーとなった512MBのファイルのUPLOADは成功しました。

    ・10GB相当のファイルのUPLOADは前回の512MBのエラーと同様でした。

    [azcopy]

    ・10GB相当のファイルのUPLOADを実施したところ、エラーにはなったものの、前回無かったメッセージがログに出力されていました。

    [2015/07/07 09:12:01.968+09:00] >>>>>>>>>>>>>>>>
    [2015/07/07 09:12:01.999+09:00][VERBOSE] 4.1.0 : AzCopy /Source:D:\SQLServer\xxx\backup /Dest:https://xxxwest.blob.core.windows.net/xxx /Pattern:xxx_2.zip /DestKey:****** /S /Y /V:D:\SQLServer\xxx\log\azcopy.log
    [2015/07/07 09:12:05.915+09:00][VERBOSE] Start transfer: xxx_2.zip
    [2015/07/07 10:41:34.918+09:00][VERBOSE] Transfer FAILED: xxx_2.zip.
    [2015/07/07 10:41:34.933+09:00][ERROR] xxx_2.zip: 転送接続にデータを書き込めません: 既存の接続はリモート ホストに強制的に切断されました。。
    
    [2015/07/07 10:41:34.980+09:00] Transfer summary:
    -----------------
    Total files transferred: 1
    Transfer successfully:   0
    Transfer skipped:        0
    Transfer failed:         1
    Elapsed time:            00.01:29:33
    

    「転送接続にデータを書き込めません: 既存の接続はリモート ホストに強制的に切断されました。」というメッセージが今回初めて出力され

    ました。

    このメッセージでGoogleで事例を探してみたところ、

    https://kamiyn.wordpress.com/

    の「2013年11月11日 MICROSOFT SYNC FRAMEWORK 2.1 で AZURE SQL を同期する」のタイトル

    でちょっと気になる記述がございました。

    どうも容量制限があるらしくApplicationTransactionSizeを調整することにより成功したとの内容でした。

    ただし、azcopy、powershellではなくC#コーディングでの設定のような感じです。

    azcopy 若しくはpowershellで同様の設定方法について調べた限りではなかったのですが、何かお心当たりがあればご教示願います。

    ※時間も関係しているようなので通信速度UPで改善しそうですが、今のところこの対策は取れない状況です。

    よろしくお願いします。

    2015年7月7日 2:46
  • お時間が空いてしまいましたが、現状の報告です。

    ストレージの場所(リージョン)を「アジア」として新規作成し、このストレージへPowerShellを使用してUPLOADしたところ時間がかかるもののタイムアウトせずにUPすることができました。

    各リージョン毎に接続タイムアウト値のようなものを持っており、設定値が違うのかもしれません。

    Azure用のPowershellのタスクの登録方法が分からないので、自動化することができませんので他の方法(C#でプログラムを作成等)で考えてみたいと思います。

    2015年8月6日 2:16
  • Timeoutしてしまうことは、同様事例がgoogle検索で複数見つかりました。
    対応としては、AzcopyのResume機能やパラメーターチューニングを使用して対処すると良いようです。
    参考サイトを2,3提示しますね。

    参考
    http://exchangeserverpro.com/office-365-import-service-azcopy-operation-timeout/

    http://social.technet.microsoft.com/wiki/contents/articles/26528.resuming-timed-out-uploadsdownloads-tofrom-azure-blob-storage-with-azcopy.aspx

    • 回答の候補に設定 星 睦美 2015年8月27日 0:19
    • 回答としてマーク 星 睦美 2015年9月3日 1:03
    2015年8月26日 16:16
    モデレータ
  • フォーラム オペレーターの星 睦美です。

    参考情報としてフォーラムで情報を共有したいと思いますので、今回は私から[回答としてマーク] をさせていただきました。今後ともMSDNフォーラムをよろしくお願いいたします。

    フォーラム オペレーター 星 睦美 - MSDN Community Support

    2015年9月3日 1:07
  • 返信が遅くなり申し訳ございません。

    ご案内頂いた参考情報をもとに、「/NC:2」のパラメータを追加して試したところ、成功しました。

    ※以前に「/NC:8」の値でためし、失敗したのでこのパラメータ値での検証はあきらめていました。

    貴重な情報ありがとうございました。

    2015年10月22日 0:35