2013-07-22 2 views
0

Powershell을 사용하여 실제 디스크 리소스의 크기와 사용 가능한 공간을 검색하려고합니다.Failover Cluster 디스크 크기/사용 가능한 공간을 검색하는 Powershell 명령?

이 코드를 하나의 Windows Server 2008 R2 상자 (모니터링 서버)에서 실행하고 같은 도메인의 세 원격 클러스터에서 리소스를 폴링합니다. 2 개의 클러스터는 Windows Server 2008 R2를 실행하지만 하나는 Windows Server 2012 (x64)를 실행합니다. 반환 된 데이터는 모니터링 응용 프로그램의 일부로 데이터베이스에 삽입됩니다. "| FC는 *은 Get-ClusterResource"물리적 디스크의 크기 또는 여유 공간을 포함하지 않습니다, 나는 방법을 작동하지 않을 수 있습니다에 의해 반환

$clusters = "cluster1.domain.local","cluster2.domain.local","cluster3.domain.local" 
foreach ($cluster in $clusters) { 
    $resources = Get-ClusterResource -Cluster $cluster | where-object {$_.ResourceType -match "Physical Disk"} 
    foreach ($resource in $resources) { 
     $details = Get-ClusterResource -Cluster $cluster -Name $resource.Name | fc * 
     <how to get disk size & space from $details?> 
    } 
} 

데이터는 :

현재 내가 사용하고 코드입니다 이 정보를 얻기 위해서. 반환 된 정보는 모든 클러스터 리소스에 대해 일반적입니다. 예는 here (예 2)입니다. 아래 예제 3은 거의 도움이되었지만 디스크 크기 나 여유 공간은 포함하지 않았습니다.

나는 this question을 확인했으나 대답은 WMI 쿼리를 사용하고 있으며, 나는 이것을 시도 할 때 모든 종류의 보안 및 호환성 문제가 발생합니다. 특히 모니터 응용 프로그램이 순수 PowerShell을 사용하여 Exchange 사서함 크기 & DFS 복제 백 로그를 확인하기 때문에 가능하면 PowerShell을 직접 수행하는 것을 선호합니다.

클러스터 공유 볼륨을 쿼리하려고하지 않습니다. 별도의 PowerShell 기능이 있으며 문제가 없습니다. 특히 물리적 디스크 리소스가 작동하도록 할 수는 없습니다.

실제 디스크는 많은 리소스 유형 중 하나이므로 일반적인 Get-ClusterResource 명령은 디스크 관련 사항을 반환하지 않지만 Get-ClusterResource의 반환 값을 전달할 수있는 다른 함수가 필요하다고 생각했습니다. ClusterResource는


업데이트 안스에 대한 Wiechers

어떤 도움을 주시면 감사하겠습니다

디스크 공간/여유 공간, 감사

샘을 검색 할

  • 귀하의 목표는 무엇입니까? 이미 지정된대로 모니터링이 필요한 여러 시스템에서 데이터를 수집하고 경고를 제공하고 이력을 보존하며 일반적으로 모니터링 기능을 향상시키는 데이터베이스에이 데이터를 주입하는 일련의 'Data Collector'PowerShell 스크립트를 만드는 것이 좋습니다. 현재 사용하고있는 모니터링 도구 모음은 우리가 필요로하는 것의 90 %를 차지하지만,이 방법으로 해결하기를 희망하는 몇 가지 사항을 놓치고 있습니다.

  • 왜 CSV 매개 변수 대신 실제 디스크 매개 변수가 필요합니까? CSV는 클러스터에서 사용되는 유일한 유형의 디스크가 아니기 때문에. 예를 들어 2 개의 서버, 7 개의 인스턴스, 31 볼륨 SQL 클러스터가 있습니다. 모든 볼륨에서 사용 가능한 디스크 공간이 모니터링된다는 것은 당연한 것으로 판단됩니다. 이 모니터링은 현재 수동으로 수행되며 기록 보존 기간이 없습니다.

  • 어떤 물리적 디스크 중 어느 것입니까? 내가 지정한 것입니다. 이상적인 솔루션은 사용중인 (즉, '사용 가능'이 아닌) 클러스터 디스크 리소스를 모니터링 할 수 있습니다.SQL 클러스터의 DTC 볼륨이나 쿼럼 볼륨과 같은 '쓸데없는'디스크를 모니터하려고하지는 않습니다. 그러나 내가 선택할 경우이를 모니터링 할 수있는 이유가 없습니다.

  • 왜 클러스터 구성원의 물리적 디스크 정보를 모니터링하는 대신 클러스터를 통해이 정보를 얻으려고합니다. SNMP MIB를 통해이 정보를 얻을 수는 있지만 정보를 얻고 해석하고 변환하는 것이 훨씬 어렵습니다. 나는이에 대한 세부 사항으로 갈 수 있지만, 질문에서 초점을 손상은 파워 쉘 당신은 물리적 디스크 수준의 여유 공간 정보를 얻을 수 없습니다 내 선호하는 방법

+0

귀하의 목표는 무엇입니까? CSV 매개 변수 대신 실제 디스크 매개 변수가 필요한 이유는 무엇입니까? 어떤 물리적 디스크입니까? 그런데 클러스터 구성원의 실제 디스크 정보를 모니터링하는 대신 클러스터를 통해이 정보를 얻으려고하는 이유는 무엇입니까? –

답변

1

라고 충분합니다. 이러한 종류의 정보는 파일 시스템/볼륨 수준에서만 사용할 수 있습니다. 모니터링 목적으로 각 클러스터 노드마다 간단히

$filter = 'DriveType=3 AND DriveLetter IS NOT NULL' 

gwmi Win32_Volume -Filter $filter | select DriveLetter, Capacity, FreeSpace 

을 수행 할 수 있습니다. 그러면 "정규"볼륨의 크기와 여유 공간이 생깁니다. -Computer 옵션에 호스트 이름 배열을 전달하여 원격 WMI 쿼리를 실행할 수 있습니다.

Get-ClusterSharedVolume -Cluster $cluster ` 
    | select -Expand SharedVolumeInfo ` 
    | select FriendlyVolumeName, @{n="Capacity";e={$_.Partition.Size}}, 
     @{n="FreeSpace";e={$_.Partition.Size - $_.Partition.UsedSpace}} 

그리고 나 ': 데이터는 다음과 같이 얻을 수 있어야하므로,

$filter = 'DriveType=3 AND DriveLetter IS NOT NULL' 
$nodes = Get-ClusterNode -Cluster $cluster ` 
      | ? { $_.State -eq 'up' } ` 
      | % { $_.Name } 

gwmi Win32_Volume -Computer $nodes -Filter $filter | 
    select SystemName, DriveLetter, Capacity, FreeSpace 

CSV를가 그런 식으로 모니터링 할 수 없습니다 :이 경우 I 출력과 SystemName 재산을 포함 권하고 싶습니다 내 질문에 대답 할 때 덜 우스꽝스러운 말투를 사용하면 감사하게 생각합니다. 나는 당신의 문제를 해결해야만하는 것이 아닙니다.

0

나는 이것이 조금 오래되었음을 알고 있지만, 검색 결과가 높았지만, 내가 처음부터 무언가를 써야한다고 결정하기 전에 내가 검색 한 부분만을 처리했다.

아직 수정 중이며 원래 게시물에 설명 된 중첩 된 'foreach'루프와 비슷한 것으로 작동하지만 실제 디스크가 아닌 '볼륨'을 보면 PowerShell에서 당신을위한 수학)의 비트, 당신은 ...

Get-Volume | ft @{Expression={[math]::Round(($_.SizeRemaining/$_.Size),3)};Label="Percent Remaining";width=9}, FileSystemLabel, FileSystem, HealthStatus, Size, SizeRemaining 

를이에서 유용한 결과를 얻을 수 있습니다 또는 WinRM을 사용하도록 설정 한 경우, 원격으로 하이퍼 V 호스트의 무리에 있음을 실행할 수 있습니다 ...

invoke-command -computername $HostNameOfClusterNode -scriptblock {Get-Volume | ft @{Expression={[math]::Round(($_.SizeRemaining/$_.Size),3)};Label="Percent Remaining";width=9}, FileSystemLabel, FileSystem, HealthStatus, Size, SizeRemaining} 
관련 문제