Quantcast
Channel: VMware Communities : Blog List - All Communities
Viewing all articles
Browse latest Browse all 3135

ESXi データストアへの VM 配置について。(PowerCLI でデータストア空き容量と IOPS を見てみる)

$
0
0


自宅や検証環境の ESXi では、結構こんなケースがあるのではないかと思います。

  • そこそこ大容量のローカルHDD をいくつも接続している。
  • 何となく負荷分散して あまり特定のデータストアに偏らないように VM を配置する。
  • しかし VM が多くなってきていて、新しい VM を作成するときにどのデータストアに配置するか悩む。
  • しかも vCenter管理していない。(無償版 ESXi とか)

local_ds_esxi.png

最近、自宅 ESXi で新しい VM をどのHDD(データストア)に配置しようか迷うので

データストアの空き状態と使用状況を PowerCLI で確認する方法を考えてみました。


データストア空き容量の確認

 

普通に Get-Datastore で情報取得するとこんな感じに見られます。

※すでに Connect-VIServer で ESXi に直接接続しています。
※約1TBのデータストアが3つあります。

PowerCLI> Get-Datastore | select Name,Type,FreeSpaceGB,CapacityGB | sort Name| ft -AutoSize

Name        Type    FreeSpaceGB CapacityGB
----        ----    ----------- ----------
ds_local_01 VMFS 505.8291015625     931.25
ds_local_02 VMFS 473.7060546875     931.25
ds_local_03 VMFS     534.546875     931.25


すこし表示結果を見やすくしてみました。
データストアは、どれもけっこう空きがあります。

PowerCLI> Get-Datastore | select Name,Type,@{N="空き容量GB";E={[int]$_.FreeSpaceGB}},@{N="全体容量GB";E={[int]$_.CapacityGB}} | sort Name | ft -AutoSize

Name        Type 空き容量GB 全体容量GB
----        ---- ---------- ----------
ds_local_01 VMFS        506        931
ds_local_02 VMFS        474        931
ds_local_03 VMFS        535        931


データストアの使用状況(IOPS)の確認

 

Get-Stat コマンドレットでデータストアの読み取り数、書き込み数の情報を取得してみました。

スクリプトでは、下記のメトリック(カウンタ)を情報取得して、

PowerShell の measure(Measure-Object)で集計しています。

  • datastore.numberwriteaveraged.average
    →データストアの Number Write Averaged (秒あたりの平均書き込み数)
  • datastore.numberreadaveraged.average
    →データストアの Number Read Averaged (秒あたりの平均読み取り数)

※この2つのメトリックでは、20秒単位で過去180回分(=1時間分)の情報が取得できます。

スクリプトファイル: get_datastore_stat.ps1

$stat_counter = "datastore.numberwriteaveraged.average","datastore.numberreadaveraged.average"

# 統計情報を取得
$stat = Get-VMHost | Get-Stat -Stat $stat_counter | sort Timestamp

$stat | group MetricId,Instance,Unit | % {
    $stat_name = $_.Name
    $stat_gr = $_.Group
    # データストア名を取得
    $ds_id = "Datastore-" + ($stat_gr | select Instance -Unique).Instance
    $ds_name = Get-Datastore -Id $ds_id
    # 統計名を取得
    $metric_name = ($stat_gr | select MetricId -Unique).MetricId
    # 取得した統計情報の期間を取得(1時間)
    $stat_time_sort = $stat_gr | sort Timestamp
    $begin_time = $stat_time_sort | select Timestamp -First 1
    $begin_time = $begin_time.Timestamp.toString("HH:mm:ss")
    $end_time   = $stat_time_sort | select Timestamp -Last 1
    $end_time   = $end_time.Timestamp.toString("HH:mm:ss")
   
    $stat_gr | measure -Property Value -Average -Sum -Maximum -Minimum |
    select `
        @{N="Datastore";E={$ds_name}},
        @{N="Metric";E={$metric_name}},
        Count,
        @{N="Average";E={"{0:0.00}" -F [math]::Round($_.Average,2)}},
        Sum,
        Maximum,
        Minimum,
        @{N="Begin";E={$begin_time}},
        @{N="End";E={$end_time}}
}


実行するとこんな感じで表示されます。

※下の例だと、いままで適当に配置していたので結構データストアで差が出ています・・・

PowerCLI> .\get_datastore_stat.ps1 | sort Datastore,Metric | ft -AutoSize

Datastore   Metric                                Count Average  Sum Maximum Minimum Begin    End
---------   ------                                ----- -------  --- ------- ------- -----    ---
ds_local_01 datastore.numberreadaveraged.average    180 0.00       0       0       0 21:34:20 22:34:00
ds_local_01 datastore.numberwriteaveraged.average   180 2.49     448       9       1 21:34:20 22:34:00
ds_local_02 datastore.numberreadaveraged.average    180 0.02       3       3       0 21:34:20 22:34:00
ds_local_02 datastore.numberwriteaveraged.average   180 29.37   5287      67      12 21:34:20 22:34:00
ds_local_03 datastore.numberreadaveraged.average    180 0.00       0       0       0 21:34:20 22:34:00
ds_local_03 datastore.numberwriteaveraged.average   180 38.52   6934      79      17 21:34:20 22:34:00

 

これからは、「ds_local_01 というデータストアのディスク IO が少なそうなので、

次はここに VM を追加作成しよう」 といった感じで VM のデータストアを決めようと思います。

 

無償版 ESXi の場合は PowerCLI では設定変更系の処理をすることができませんが

設定確認や状態確認で使用するだけでも PowerCLI はけっこう便利だと思います。

vSphere Client のサマリ画面やパフォーマンスチャートなどからも同じ情報が見られますが・・・

 

以上、ESXi の VM 配置を考える話でした。


Viewing all articles
Browse latest Browse all 3135

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>