web-dev-qa-db-ja.com

vMotionがRedHatLinux 7.2で構成されているかどうかを確認するにはどうすればよいですか?

RedHatLinuxマシンがいくつかあります

VMotionが構成されているかどうかはわかりません。

RedHat OS自体から、vmotion vMotionが構成されているかどうかを識別することは可能ですか?

1
King David

ここに多くからの2つのオプションがあります:

スクリプト経由。

  1. ハイパーバイザーのホスト名をVM(setGuestInfo.sh)と共有するすべてのESXiホストに上記のスクリプトを保存します。

    #!/bin/bash
    IFS=$'\n'
    for VM in $(vmware-cmd -l);
    do
            VM_STATE=$(vmware-cmd "${VM}" getstate | awk -F "= " '{print $2}')
            if [ "${VM_STATE}" == "on" ]; then
                    echo "Setting info for ${VM}"
                    vmware-cmd "${VM}" setguestinfo hypervisor.hostname "$(hostname)"
            fi
    done
    unset IFS
    
  2. スクリプトが各ESXiホストで毎分実行されるようにcronジョブを設定します。

    0 * * * * /vmfs/volume/shared-storage/setGuestInfo.sh 
    
  3. VMで、上記のスクリプトを保存して、変数hypervisor.hostnamegetGuestInfo.sh)の値を取得します。

    vmtoolsd --cmd  "info-get guestinfo.hypervisor.hostname" 
    
  4. 毎分ホスト情報を取得するようにcronジョブを設定します。

    0 * * * * getGuestInfo.sh >> /tmp/vmotion.txt
    

    出力は次のようになります。

    Based on `/tmp/vmotion.txt` 
    
    Esx1
    
    Esx2
    
    Esx2
    
    Esx1
    
    Esx1
    
    Esx1
    
    Esx3
    
  5. /tmp/vmotion.txtの以前の値が変更されるとvMotionを検出する別のスクリプトを設定します(checkVmotion.sh

    #!/bin/bash
    last="$( tail -n 1 /tmp/vmotion.txt )"
    previous="$( tail -n 2 /tmp/vmotion.txt | head -1 )"
    if [ "$last" != "$previous" ] ; then
      echo Vmotion
    fi
    
  6. Cronジョブとして設定します。

    0 * * * * checkVmotion.sh 
    

これで、都合の良いときに出力を使用できます。

VCenterAPI経由

  1. Pythonがインストールされていることを確認してください。
  2. API呼び出しを容易にするため、 " pyvmomi " SDKをインストールします。

    pip install --upgrade pyvmomi
    
  3. VM UUIDを取得します。

    dmidecode -t system | grep UUID
    
  4. VMメインIPを取得します。

  5. これを使用 サンプル &カスタマイズ(引数を削除し、ホストパスワードポートuuid ipの定数を設定)-vCenterRedの管理者アクセス権が必要です。

  6. 毎分ホスト情報を取得するようにcronジョブを設定します。

    0 * * * * python getGuestInfo.py >> /tmp/vmotion.txt
    
  7. 最初の方法から5,6ステップを繰り返します。

それが役立つことを願っています。

1
Reda Salih