Hyper-V Clusters

'' and cluster not like '%-WM%' and cluster not like '%-C1MAS%' and cluster not like '%-vrs%' and (cluster like 'DUN%' or cluster like 'DMV%') order by cluster"); ?>
"; } $data = Invoke_Infra("select * from cmdb_HyperV_Hosts where cluster = '" . $cluster['cluster'] . "'"); $clumem = (invoke_infra("select min(node_ram) as nmem from cmdb_HyperV_Hosts where cluster ='".$cluster['cluster']."'"))[0]['nmem']; $nb = (invoke_infra("select count(node) as nb from cmdb_HyperV_Hosts where cluster ='".$cluster['cluster']."'"))[0]['nb']; $clmem = $clumem-32; if($nb == 4){$clmem = $clmem*2;} $nodes = count($data); $vms = 0; $vm_mem = 0; $disk = 0; $io = 0; $node_mem = 0; $capacity = 0; $free = 0; foreach ($data as $d) { $vms += $d['vm_count']; $vm_mem += $d['vm_memory']; $node_mem = (int) $d['node_ram']; foreach (explode("|", $d['csvs']) as $csv) { if (instr($csv, ';')) { $free += intval(explode(";", $csv)[1]) - intval(explode(";", $csv)[2]); $disk = max($disk, $free); $capacity += (int) explode(";", $csv)[1]; } } $io += $d['io_disk']; } $node_mem = $node_mem * count($data) / 2; $io= round($io / count($data) * 1024); if($io == 0){$io = "?";} $vmleft = floor(($node_mem - 24 - $vm_mem) / 16); $storageleft = floor($disk / 110); $vmleft = min($vmleft, $storageleft); $totalleft += $vmleft; if ($vmleft > 2) { $vleft = "(" . $vmleft . " VMs left)"; } elseif ($vmleft == 2) { $vleft = "(" . $vmleft . " VMs left)"; } else { $vleft = "(" . $vmleft . " VM left)"; } ?>

Nodes / VMs
0){ $Repart = Invoke_Infra("select Owner, count(owner) as nbvm from cmdb_vms where Cluster ='".$cluster['cluster']."' and decomtime is null group by Owner order by Owner"); $vmCountNode1 = $vmCountNode2 = 0; $node1_name = $node2_name = ""; if(count($Repart) == 1 ){ $node1_name = $Repart[0]['Owner']; $vmCountNode1 = $Repart[0]['nbvm']; }else{ $node1_name = 'DUN'; $vmCountNode1 = $Repart[0]['nbvm']; $node2_name = 'MDK'; $vmCountNode2 = $Repart[1]['nbvm']; } $totalVMs = $vmCountNode1 + $vmCountNode2; $percentageNode1 = ($totalVMs > 0) ? ($vmCountNode1 / $totalVMs) * 100 : 0; $percentageNode2 = ($totalVMs > 0) ? ($vmCountNode2 / $totalVMs) * 100 : 0; echo "
$node1_name : $vmCountNode1 VMs
$node2_name : $vmCountNode2 VMs
"; }elseif($nodes == 4){ $RepartD = Invoke_Infra("select count(owner) as nbvm from cmdb_vms where Cluster ='".$cluster['cluster']."' and Owner like 'DUN%' and decomtime is null"); $RepartM = Invoke_Infra("select count(owner) as nbvm from cmdb_vms where Cluster ='".$cluster['cluster']."' and Owner like 'MDK%' and decomtime is null"); $vmCountNode1 = $vmCountNode2 = 0; $node1_name = 'DUN'; $vmCountNode1 = $RepartD[0]['nbvm']; $node2_name = 'MDK'; $vmCountNode2 = $RepartM[0]['nbvm']; $totalVMs = $vmCountNode1 + $vmCountNode2; $percentageNode1 = ($totalVMs > 0) ? ($vmCountNode1 / $totalVMs) * 100 : 0; $percentageNode2 = ($totalVMs > 0) ? ($vmCountNode2 / $totalVMs) * 100 : 0; echo "
$node1_name : $vmCountNode1 VMs
$node2_name : $vmCountNode2 VMs
"; }else{ echo "
"; } ?>
"; echo "
"; echo "Free Mem : ".($clmem - $vm_mem). " / " .$clmem. " GB"; echo "
"; $pcent = round(($clmem - $vm_mem)/$clmem*100); $pcent_restant = 100 - $pcent; if($pcent <= 5){ $color = "bg-danger"; $border = "red"; }else{ if($pcent <= 10){ $color = "bg-warning"; $border = "yellow"; }else{ $color = "bg-success"; $border = "green"; } } echo "
"; echo "
"; //DISK echo "
"; echo "
"; $unit="GB"; if($capacity > 10000){ $capacity = round($capacity / 1024,1); $unit="TB"; $free = round($free / 1024,1); } $used = $capacity - $free; echo "Free CSV : ".$free. " / " .$capacity. " $unit"; echo "
"; $pcent = ($clmem > 0) ? round(($clmem - $vm_mem) / $clmem * 100) : 0; $pcent_restant = 100 - $pcent; if($pcent <= 5){ $color = "bg-danger"; $border = "red"; }else{ if($pcent <= 10){ $color = "bg-warning"; $border = "yellow"; }else{ $color = "bg-success"; $border = "green"; } } echo "
"; echo "
"; echo "
CSV I/O R/W (24h) :
$io KB/s
"; ?>


Total VM Left :