ページBLOBの割り当て済みサイズを取得するツール

前回の投稿で使った、「ページBLOBの割り当て済みサイズを取得するツール」をご紹介します。と言ってもたいそうなものではなくて、自作の簡単なスクリプトです。ここに置いてあります↓

https://github.com/ksasagit/AzureBlobUtils/

get-usedsize.pl というPerlのスクリプトです。初めはPowerShellで書こうかと思ったのですが、そうするとWindowsでしか使えないのでPerlにしました。処理の内容は非常に単純で、Get Page Ranges (REST API) を呼んでページを数え上げているだけです。

今のところ”Windows Azure SDK for Perl”的なものは無いのでREST APIを直接叩くしかなく、ストレージアクセス用の認証ヘッダを作るのが面倒だなぁ、と一瞬ゲンナリしたのですが、今はこういう便利なものがあるのです。

WindowsAzure::Blob - Interface to Windows Azure Blob Service

@junnama さんによるこのライブラリ、YAPC::Asiaでのセッションでもチラッと紹介したのですが、さっそく活用させていただきました。

使い方

get-usedsize.pl の使い方ですが、前述のWindowsAzure::Blobを使えるようにした上で、

perl get-usedsize.pl {ストレージアカウント名} {アクセスキー} {コンテナ名} [BLOB名…]

という感じです。最初の3引数は必須です。BLOB名は複数指定可能で、指定しなければコンテナ内のページBLOBすべてを対象に処理します。

※ たくさんのデータが書き込まれたVHDを対象にすると、ページの数え上げにそこそこ時間がかかります。

実行例

C:\>perl get-usedsize.pl ストレージアカウント アクセスキー vhds
3637039616/32212255232 3.4/30 (11.3% used) 0nl5kzo5.2cz201308300518360065.vhd
1677476352/68719477248 1.6/64 (2.4% used) centdb01-centdb01-0706-1.vhd
702952960/34359738880 0.7/32 (2.0% used) centdb01-centdb01-0802-2-32gb.vhd
702027264/34359738880 0.7/32 (2.0% used) centdb01-centdb01-0802-3-32GB.vhd
68712944128/68719477248 64.0/64 (100.0% used) centdb01-centdb02-0706-1.vhd
7857321472/136367309312 7.3/127 (5.8% used) hdwork-hdwork-2013-08-25.vhd
3271582208/32212255232 3.0/30 (10.2% used) keazt1ai.g5h201307031712170126.vhd

たいへんやっつけなツールなのですが、まぁ必要十分な情報はとれます。よろしければご活用ください。

__END__