Quantcast
Channel: VMware Communities: Message List
Viewing all articles
Browse latest Browse all 247559

Re: схема UPS для клайстера

$
0
0

RozarioAgro wrote:

 

Я видел ваше руководство, в общем то по его мотивам и начал создавать свое, правда акцентировался на

платной версии.

 

По поводу тушения СХД, в моем случае, при использования NetApp в качестве хранилища, я стремился корректно завершить

работу виртуальных машин, а установленная в NetApp батарея nvram должна обеспечить сохранность не сброшенных из кеша данных.

 

А как вы контролируете чтобы  СХД выключилась последней? Ведь если СХД выключится первым , то бесполезно

корректно завершать работу виртуальных машин.

 

Сечас я реализовал такую схему.

UPS ippon 1K (online)

Первый UPS держит Storage,  2-й UPS  держит 2 хоста. Т.е  2й Ups в 2 раза быстрее сдохнет . что гарантирует выключение storage последним.

Storage(Freenas) сам мониторит свой UPS  через com-port. (через usb не захотел)

2-й ups мониторит  VM  через проброшенный USB-port.  на Battary Low  запускается скрипт:

 

start c:\wprog\UPS\plink.exe  root@192.168.11.23 -pw xxx  "nohup /vmfs/volumes/vol1/my/esxi-off.sh &"
start c:\wprog\UPS\plink.exe  root@192.168.11.24 -pw xxx "nohup /vmfs/volumes/vol1/my/esxi-off.sh &"

 

esxi-off.sh:

#!/bin/sh -

 

PATH=$PATH:/bin:/usr/bin:/usr/sbin
LOG_FILE=/vmfs/volumes/vol1/my/shutdown.log

 

Host1=$(vim-cmd hostsvc/net/info |grep ipAddress |grep 192.168.11|awk '{print $3}')
echo -e `date  "+%Y-%m-%d   %H:%M:%S"` "Esxi $Host1 Shutdown begin ...-4 hours in date" >> $LOG_FILE
# start for loop to grab VMIDs then send power.shutdown requests using vim 3 seconds apart
for i in `vim-cmd vmsvc/getallvms | sed '1d' | awk '{print $1}'`
do
STATE=$(vim-cmd vmsvc/power.getstate $i | grep -v 'runtime')
if [ "$STATE" = "Powered on" ]
then
VMNAME=$(vim-cmd vmsvc/get.summary $i |grep 'name =' |awk '{print $3}')
len1=${#VMNAME}
len1=$(($len1-3))
VMNAME=${VMNAME:1:$len1}
if [ $VMNAME != "Avers" ]
then
# Avers has UPS and started it script , exclude it
echo -e `date  "+%Y-%m-%d   %H:%M:%S"` "VM  $VMNAME is: $STATE, trying guest shutdown..." >> $LOG_FILE
vim-cmd vmsvc/power.shutdown $i
sleep 2
fi
fi
done
echo "Successfully sent shutdown sequence to Virtual Machines on the host"
echo -e `date  "+%Y-%m-%d   %H:%M:%S"` "Esxi $Host1 poweroff..." >> $LOG_FILE
poweroff

----------------------------

Это срипт намного быстрее всё выключает, чем просто poweroff.   т.к. poweroff последовательно выключает VM и не начинает выключение второй VM пока не выключилась первая... UPS дано сдохнет при такой логике.

А это скрипт сразу выключает все запущенные VM... время очень ценно. UPS после Battry low signal долго держать напругу не сможет.

 

Плюс Ippon , что они хорошо работают с Power Race.  Задал что выключение через 5 мин, и что бы не было он через 5 мин выключит питание серверов.

Минус  в том, что VM контролирующая  UPS  (Avers) не может переехать на другой хост в HA... так как на неё UPS физически завязан.

В скором времени решу этот вопрос.

Попутно написал скрипт гашения всей инфркструктуры:

 

stop_all.bat:
@Choice /C YN /M "VmWare vShpere Shutdown ?  "
@if %ERRORLEVEL% EQU 2   goto Exit1

 

plink root@192.168.11.23 -pw xxx "nohup /vmfs/volumes/vol1/my/esxi-off.sh &"
plink root@192.168.11.24 -pw xxx "nohup /vmfs/volumes/vol1/my/esxi-off.sh &"

 

:Again1
@Echo %TIME%:Wait for shutdown  Esxi_1
@ping 192.168.11.23  -n 10 -w 100  | find "TTL=" > nul
@if %ERRORLEVEL% EQU 0   goto Again1

 

:Again2
@Echo %TIME%:Wait for shutdown  Esxi_2
@ping 192.168.11.24  -n 10 -w 100  | find "TTL=" > nul
@if %ERRORLEVEL% EQU 0   goto Again2

 

Rem Shutdown NAS
plink root@192.168.11.21 -pw xxxx "nohup /sbin/shutdown -p now &"

 


:Again3
@Echo %TIME%:Wait for shutdown  NAS
@ping 192.168.11.21  -n 5 -w 100  | find "TTL=" > nul
@if %ERRORLEVEL% EQU 0   goto Again3

 

@ECHO  ------- Done. All Servers DOWN.
@pause
:Exit1


Viewing all articles
Browse latest Browse all 247559

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>