如何在Hyper-V故障转移群集中跟踪虚拟机的故障转移历史记录

时间:2016-07-12 06:39:52

标签: powershell hyper-v failover failovercluster

过去两个月我一直在研究Hyper-V故障转移群集,并且还使用了实时迁移功能以及故障转移群集的所有其他方面的功能。现在我的帖子的重点是,是否有任何编程方式(powershell脚本或C ++ API)来确定虚拟机的故障转移或故障恢复历史记录(在虚拟机已移动的所有节点中)。根据我的分析,我发现这些与迁移相关的活动将在事件查看器中包含EventID和必要的详细信息。但我关心的是通过powershell或C ++ API实现相同的操作。任何帮助都非常感谢。

的问候,
Dinesh Ramalingam

1 个答案:

答案 0 :(得分:0)

我不确定要跟踪此事件的任何事件。在过去,我使用SQL Server查询VM的注册表以获取它的当前主机,然后将其存储在本地日志表中。然后安排建立历史记录并跟踪VM随时间的变化。

如果VM正在运行SQL Server,请执行以下操作:

function THEMENAME_theme_suggestions_block_alter(array &$suggestions, array   $variables) {

  if (!empty($variables['elements']['#id'])) {
    $block = Block::load($variables['elements']['#id']);
    $suggestions[] = 'block__' . $block->getRegion();
    $suggestions[] = 'block__' . $block->getRegion() . '__' . $variables['elements']['#id'];
  } else if (isset($variables['elements']['#configuration']['region'])) {
    $suggestions[] = 'block__page_' . $variables['elements']['#configuration']['region'];
    $suggestions[] = 'block__page_' . $variables['elements']['#configuration']['region'] . '__' . end(explode(':', $variables['elements']['#plugin_id']));
  }
  return $suggestions;
}

如果使用SQL Server不是一个选项,则可以使用PowerShell使用Get-ItemProperty cmdlet命中注册表。

像这样:

DECLARE @PhysicalHostName VARCHAR(20)

EXEC master..xp_regread 
    @rootKey = 'HKEY_LOCAL_MACHINE',
    @key = 'SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters',
    @value_name = 'PhysicalHostName',
    @value = @PhysicalHostName OUTPUT

SELECT
    @PhysicalHostName

如果您关闭了PowerShell路线,那么值得一读:https://msdn.microsoft.com/en-us/powershell/scripting/getting-started/cookbooks/working-with-registry-entries

希望这有帮助。