Русфонд

понедельник, 22 августа 2011 г.

Failover Cluster: настройка сердцебиения (Configure Heartbeat)

В Failover Cluster на Windows Server 2008 есть возможность настраивать "чувствительность" кластера к пропаданиям сети. Настраиваются частота сердцебиения (hearbeat) и число потерянных сердцебений (порог срабатывания failover):
Частота сердцебиений по умолчанию 1000 мс, изменяется:
  • от 250 до 2000 мс для узлов кластера из одной подсети, параметр SameSubnetDelay;
  • от 250 до 4000 мс для узлов кластера в разных подсетях, параметр CrossSubnetDelay.
Число потерянных сердцебиений по умолчанию 5, изменяется от 3 до 10 (параметры SameSubnetTreshold и CrossSubnetDelayTreshold).
Параметры задаются из командной строки (Run as administrator):

cluster /cluster:<ClusterName> /prop SameSubnetDelay=<value>
cluster /cluster:<ClusterName> /prop SameSubnetThreshold=<value>
cluster /cluster:<ClusterName> /prop CrossSubnetDelay=<value>
cluster /cluster:<ClusterName> /prop CrossSubnetThreshold=<value>

Проверяем то, что получилось
cluster /cluster:<ClusterName> /prop
Источники:

понедельник, 15 августа 2011 г.

Ошибка при назначении разрешения на объект в Inventory vCenter

При назначении доменному пользователю разрешения на объект в Inventory получаю ошибку "Call "UserDirectory.RetrieveUserGroups" for object "UserDirectory" on vCenter Server "vCenter name" failed".
KB1027107 предлагает запускать службы VirtualCenter Server и VirtualCenter Management Webservices от доменной учетной записи. У меня службы запущены от локальной учетной записи.
Т. к. админы далеко (новую доменную учетку создать некому) пытаюсь запустить службы от Local System (сам сервер, расположен vCenter в домене). Проблема решена.

четверг, 11 августа 2011 г.

PowerCLI: создание стандартных свичей и портгрупп

1) на одном хосте

connect-viserver -server <vCenter> -user <user> -password <pwd>
 Get-VMHost <Host> | New-VirtualSwitch -name <New Switch> -nic <VMNIC> (например, vmnic1)
Get-VMHost <Host> | Get-VirtualSwitch -name <New Switch> | New-VirtualPortGroup -name <New PortGroup> -vlanid <VLAN ID>

2) на всех хостах

новый свич, в нем новая подгруппа
connect-viserver -server <vCenter> -user <user> -password <pwd>
 Foreach ($vmhost in (get-cluster -name <My Cluster> | get-vmhost))
 {
  $vmhost | New-VirtualSwitch -Name <New Switch> | New-VirtualPortGroup -Name <New PortGroup>  -vlanid <VLAN ID>
 }
новая портгруппа в существующем свиче
connect-viserver -server <vCenter> -user <user> -password <pwd>
 Foreach ($vmhost in (get-cluster -name <My Cluster> | get-vmhost))
 {
  $vmhost | Get-VirtualSwitch -Name <Existing vSwitch> | New-VirtualPortGroup -Name <New PortGroup>  -vlanid <VLAN ID>
 }

3) копирование свичей с одного хоста на другой хост (интерактивный)

$VISRV = Connect-VIServer (Read-Host "Имя vCenter")
$BASEHost = Get-VMHost -Name (Read-Host "Имя ESX(i)-образца (как оно отображено в vSphere Client)")
$NEWHost = Get-VMHost -Name (Read-Host "Имя настраиваемого ESX(i) (как оно отображено в vSphere Client)")
$BASEHost |Get-VirtualSwitch |Foreach {
$vSwitch = $_
If (($NEWHost |Get-VirtualSwitch -Name $_.Name-ErrorAction SilentlyContinue)-eq $null){
       Write-Host "Creating Virtual Switch $($_.Name)"
       $NewSwitch = $NEWHost |New-VirtualSwitch -Name $_.Name-NumPorts $_.NumPorts-Mtu $_.Mtu
       $vSwitch = $_
    }
   $_ |Get-VirtualPortGroup |Foreach {
       If (($NEWHost |Get-VirtualPortGroup -Name $_.Name-ErrorAction SilentlyContinue)-eq $null){
           Write-Host "Creating Portgroup $($_.Name)"
           $NewPortGroup = $NEWHost |Get-VirtualSwitch -Name $vSwitch |New-VirtualPortGroup -Name $_.Name-VLanId $_.VLanID
        }
    }
}


Скачать этот скрипт.
Плюс подобный скрип с более удобным интерфейсом.

Источники:
http://communities.vmware.com/docs/DOC-4210
http://searchvmware.techtarget.com/tip/Bulk-VMware-administration-Using-PowerCLI-with-standard-switches
http://www.virtu-al.net/

четверг, 4 августа 2011 г.

Расчет (сайзинг) VMFS LUN

Duncan Epping (Yellow Bricks) обновил рекомендации к определению конфигурации VMFS LUN.
Ранее он предлагал (оригинал тут) рассчитывать размер VMFS LUN, исходя из максимального количества виртуальных машин на LUN MaxVMs и среднего размера виртуальной машины  avgSize:
(MaxVMs * avgSize) + 20%,
20% - резерв на файл подкачки и снэпшоты.
Сейчас Duncan предлагает (пост VMFS-5 LUN Sizingрассчитывать VMFS LUN, учитывая и требования по IOPS:
((IOpsPerLUN – 20%) / AVGIOpsPerVM) ≤ (MaxVMsWithinRTO),
где
IOpsPerLUN - IOPS, которые может обработать LUN в зависимости от физической конфигурации (тип RIAD, количество шпинделей, тип дисков);
AVGIOpsPerVM - среднее число IOPS на виртуальную машину;
MaxVMsWithinRTO - максимальное число виртуальных машин, которые будут одновременно восстанавливаться с заданным значением RTO;
20% - резерв на всплеск IOPS со стороны виртуальных машин (снэпшоты, файл подкачки).
По сути, первая половина формулы определяет максимальное количество виртуальных машин на раздел MaxVMs. 
Duncan оговаривается, что значение резерва 20% не является идеалом и зависит от "физики" VMFS LUN.
Размер VMFS LUN рекомендуется определять формулой:
(((MaxVMs * AvgDisksVMs) * AvgSizeVMDK) + (MaxVMs * AvgMemSize)) + SlackSpace ≥ MinSize,
где
AvgDisksVMs - среднее количество дисков у виртуальной машины;
AvgSizeVMDK - средний размер диска виртуальной машины;
AvgMemSize - средний размер памяти виртуальной машины;
SlackSpace - резерв (в данном случае под снэпшоты);
MinSize - минимальный размер VMFS-раздела 1,2G.
Тут ничего нового, только более детально расписан старый параметр  avgSize. Такие частности, как Reservation для памяти или хранение swap-файла на отдельном LUN, формула не учитывает.
Хотя в названии поста используется VMFS-5, логика верна и для VMFS-3.