Архив метки: virtualization

Автор:Dmitriy Altuhov

Check HDD SMART ESXi host from linux guest script bash

Гипервизор (сервер виртуальных машин) VMware ESXi установлен на несерверном оборудовании с обычными жесткими дисками (без RAID в режиме AHCI).

Также имеется Linux-машина (Ubuntu server).

Требуется максимально просто мониторить состояние жестких дисков (SMART) на хосте VMware ESXi.
Для это нам потребуется добавить нижеприведённый скрипт (с исправлением нужных переменных) в планировщик cron.

На ESXi host должен быть включен SSH
С Linux-машины должен быть настроен беспарольный доступ по SSH на ESXi хост.
Об этом писал тут: http://it74.net/techblog/vyklyuchaem-vmware-esxi-host-iz-gostevoj-ubuntu/

#!/bin/bash

#admin email
adminemail=root

#set this to the count of disk in your ESXi host
devicescount=2

#set this to ssh ESXi source
#datasource="cat smtest"
datasource="ssh root@10.0.0.4 /usr/lib/vmware/vm-support/bin/smartinfo.sh"

#minimal and maximal HDD temps
hddtempmin=25
hddtempmax=35

#hostname
hostname=esxi1

#Magick begins
deviceindex=0

while read data; do

data_device="^Device:[[:space:]]+(.*)$"
if [[ $data =~ $data_device ]]; then
((deviceindex++))
device[$deviceindex]=${BASH_REMATCH[1]}
fi

data_health="^Health Status[[:space:]]+([[:alnum:]]+)[[:space:]]"
if [[ $data =~ $data_health ]]; then
health[$deviceindex]=${BASH_REMATCH[1]}
if [ "${health[$deviceindex]}" != 'OK' ]; then
message="$message Health status on drive ${device[$deviceindex]} is NOT OK \n"
fi
fi

data_realoc="^Reallocated Sector Count[[:space:]]+([[:digit:]]+)[[:space:]]"
if [[ $data =~ $data_realoc ]]; then
realoc[$deviceindex]=${BASH_REMATCH[1]}
if [[ "${realoc[$deviceindex]}" -lt "100" ]]; then
message="$message Reallocated Sector Count on drive ${device[$deviceindex]} = ${realoc[$deviceindex]} is less than 100 \n"
fi
fi
data_ponhours="^Power-on Hours[[:space:]]+([[:digit:]]+)[[:space:]]"
if [[ $data =~ $data_ponhours ]]; then
ponhours[$deviceindex]=${BASH_REMATCH[1]}
if [[ "${ponhours[$deviceindex]}" -lt "30" ]]; then
message="$message Power-on Hours on drive ${device[$deviceindex]} = ${ponhours[$deviceindex]} is less than 30 \n"
fi
fi

data_temper="^Drive Temperature[[:space:]]+([[:digit:]]+)[[:space:]]"
if [[ $data =~ $data_temper ]]; then
temper[$deviceindex]=${BASH_REMATCH[1]}
if [[ "${temper[$deviceindex]}" -lt "$hddtempmin" ]] || [[ "${temper[$deviceindex]}" -gt "$hddtempmax" ]]; then
message="$message TEMP on drive ${device[$deviceindex]} = ${temper[$deviceindex]} is OUT OF RANGE $hddtempmin and $hddtempmax \n"
fi
fi

done < <($datasource)

#Overall checks
if [ "$deviceindex" -ne $devicescount ]; then
message="$message MISSING HDD DRIVE! Devicescount = $devicescount and devices reported by smart = $deviceindex \n"
fi

#send mail to admin
if [ -n "$message" ]; then
#echo -e $message
echo -e $message | mail -s "ESXi host $hostname" $adminemail
#exit 1
#else
#exit 0
fi

Автор:Dmitriy Altuhov

Платное и бесплатное резервное копирование виртуальных машин VMware

Если у Вас есть финансы на платное решение VMware vSphere и на платную версию Veeam Backup & Replication — идеально.

Если у Вас есть финансы только на VMware vSphere для работы с Veeam Backup Free Edition — хорошо

Если финансов нет совсем, но резервные копии виртуальных машин на ESXi делать надо —ghettoVCB Вам поможет.

Дополнительная информация: Поддержка бесплатного VMware vSphere Hypervisor (Free ESXi) в продуктах резервного копирования виртуальной среды

Автор:Dmitriy Altuhov

VMware ESXi. Перенос виртуальных машин с datastore на datastore

Взято тут: 10. Re: Migrating VMs from one datastore to another on ESXi 5.1 (free license)

1. In vSphere Client, properly power down the VM you are going to migrate to a new datastore.

2. Create a directory in the target datastore for the migrated VM (either in vSphere Client’s GUI or via SSH using the mkdir command).

3. In order to migrate a VM from a source datastore to the target datastore (with both datastores attached to the same ESXi host), use the following command:

vmkfstools -i [<path_to_VM_directory_in_source_datastore>]/<source_VM.vmdk> [<path_to_VM_directory_in_target_datastore>]/<destination_VM.vmdk> -d thin

Note 1: if the source VM has had snapshots made and was running off a snapshot (which can be seen by looking inside the <VM_name>.vmx file), use the following name for the source VM’s .vmdk file:
<VM_name>-00000X.vmdk, where X is the number designated to the snapshot used for running this VM. Even though the file size shown for this file in the source datastore is small, the vmkfstools command will consolidate all snapshots up to the snapshot specified for the source .vmdk file in this command and will properly migrate the VM to the new datastore.
Note 2: The -d thin parameter allows the VM to be migrated as thin-provisioned if it was in fact thin-provisioned when created. Therefore, if you don’t want the migration process to expand the disk size of this VM to the «thick» size specified when the VM was created, use this parameter. If your VM was already thick-provisioned, I don’t know what this parameter will do — probably it will do nothing.

4. Once the migration process has completed, copy the following files from the old datastore to the new datastore:
<VM_name>.vmx
<VM_name>.vmxf
<VM_name>.vmsd
<VM_name>-XY.log (if you want to keep the logs)

5. Edit the <VM_name>.vmx file in target VM directory using the vi command (or by downloading the <VM_name>.vmx file to your local Windows machine via vSphere, editing it with Notepad and uploading it to the same location in the target VM directory) and change the name of scsi0:0.filename = from the name of the snapshot it was running off (which is the name you used for the source .vmdk file in the vmkfstools -i command) to the name you assigned to this .vmdk file in the target datastore location (using the same vmkfstools -i command). Don’t forget to save the <VM_name>.vmx file in the target VM datastore folder.

6. In vSphere Client, remove the old instance of this VM from the host inventory (without deleting the files).

7. In vSphere Client, add the new instance of this VM (located in the target datastore) to the inventory on this host by navigating to the target datastore in vSphere Client, finding the VM’s directory, right clicking on the <VM_name>.vmx file you have just edited, and selecting Add to Inventory.

8. In vSphere Client, start this VM. The start process will halt at 95%. You will have to right click on the name of this VM in the inventory, navigate to Guest > Answer Question, and choose Moved to answer the question about whether you have copied this VM or moved it.

9. Start the VM again in vSphere Client. The VM should launch without any issues.

Автор:Dmitriy Altuhov

Корпоративная IP-телефония для организации с филиалами на Elastix/Asterisk

Задача — организовать корпоративную IP-телефонию с объединением офисов в единую телефонную сеть с выходом на межгород через различных операторов IP-телефонии.

В основе решения — Модернизация ИТ-инфраструктуры небольшой фирмы на одном сервере

На сервере HP ProLiant установлен гипервизор VMware ESXi 5.5, созданы виртуальные машины под сервер IP-телефонии Elastix и интернет-шлюз (с сервером OpenVPN).
Удалённые офисы подключены к центральному серверу по OpenVPN и имеют доступ к файловым ресурсам, серверу 1С предприятие, серверу IP-телефонии.

В качестве абонентских устройств используются телефоны GrandStream GXP1400

Шлюзы GrandStream HandyTone 502 (HT502)

И шлюз GrandStream HandyTone 503 (HT503) для подключения внешней аналоговой линии к серверу IP-телефонии Elastix, настройка которого потребовала несколько кружек кофе.

На сервере IP-телефонии были созданы:

  • Внутренние номера (для абонентских устройств) (extensions)
  • Внешние линии (trunk)
  • Виртуальный факс для приёма факсов и пересылки на e-mail (Virtual Fax)
  • Внутренний номер с включенным голосовым ящиком в качестве автоответчика в нерабочее время
  • Настроены входящие и исходящие маршруты, группы вызовов, запись звонков

Результат работы виден в панели оператора (Operator Panel)

elastixcorp

Автор:Dmitriy Altuhov

Ubuntu 12.04 Failed to get nic info

Продолжаем историю про Ubuntu 12.04 x64 Sever Guest и host VMware ESXi 5.5.

Задача — поставить работающие VMware Tools.
В статье VMware Tools (ESXi 5.5) в Ubuntu 12.04 Server мы устанавливали VMware Tools из packages.vmware.com.

Всё замечательно, но ошибки в логе

vmsvc[1468]: [ warning] [guestinfo] RecordRoutingInfo: Unable to collect IPv4 routing table.
vmsvc[1468]: [ warning] [guestinfo] RecordRoutingInfo: Unable to collect IPv6 routing table.
vmsvc[1468]: [ warning] [guestinfo] Failed to get nic info.

Не дают спокойно жить. Когда использовали open-vm-tools таких ошибок не было.

Попробуем установить open-vm-tools из более свежего дистрибутива ubuntu — raring = open-vm-tools (2012.12.26-958366-0ubuntu3) . Для установки нам потребуется:

  1. Удалить все старые VMware tools:
    apt-get purge ‘vmware-tools-*’
    apt-get purge ‘open-vm-*’
  2. Скачать свежие пакеты:
    wget http://de.archive.ubuntu.com/ubuntu/pool/main/p/procps/libprocps0_3.3.3-2ubuntu5_amd64.deb
    wget http://de.archive.ubuntu.com/ubuntu/pool/multiverse/o/open-vm-tools/open-vm-tools_2012.12.26-958366-0ubuntu3_amd64.deb
    wget http://de.archive.ubuntu.com/ubuntu/pool/multiverse/o/open-vm-tools/open-vm-dkms_2012.12.26-958366-0ubuntu3_all.deb
  3. Установить пакеты:
    dpkg -i *.deb

С версией VMware tools 2012.12.26-958366 всё работает хорошо, ошибок не замечено.

Автор:Dmitriy Altuhov

Выключаем VMware ESXi 5.X хост из гостевой Ubuntu и APC UPS USB

Имеется ИБП APC SmartUPS, подключенный по USB к HP ProLiant, на котором работает гипервизор VMware ESXi (хост) и гостевая ОС Ubuntu. В гостевую ОС Ubuntu проброшен USB APC SmartUPS и настроен apcupsd.

Задача: выключать гипервизор VMware ESXi (хост) и сам физический сервер при отключении электричества (по сигналу ИБП).

Решение достаточно простое — выключать сервер запуском скрипта через SSH.

Генерируем RSA ключи:
#ssh-keygen -t rsa
Отвечаем на вопросы:
Enter file in which to save the key (/root/.ssh/id_rsa): — соглашаемся на значение по умолчанию.
Enter passphrase (empty for no passphrase): — Оставляем значение пустым. Паролем пользоваться не будем.
Enter same passphrase again: — Снова оставляем значение пустым.
Скрипт создал 2 ключа: приватный и публичный.
Your identification has been saved in /root/.ssh/id_rsa. — секретный приватный ключ для декодирования.
Your public key has been saved in /root/.ssh/id_rsa.pub. — публичный ключ для кодирования.
Будьте внимательны! Ключи нужно генерировать именно для пользователя root, так как именно с правами этого пользователя и работает демон apcupsd.
Сейчас нужно скопировать на ESXi сервер наш публичный ключ:
#ssh-copy-id -i ~/.ssh/id_rsa.pub root@server_ESXi
Обратите внимание! Даже после этого зайти на сервер ESXi без пароля мы не можем. Это связано с тем, что в настройках ssh на ESXi прописан параметр :
AuthorizedKeysFile /etc/ssh/keys-%u/authorized_keys
То есть ключи авторизации хранятся не в домашнем каталоге пользователя, а в специфическом, который прописан в настройках.
Для того, что бы авторизация по ключу все-таки заработала залогинимся на ESXi
$ ssh root@server_ESXi
И скопируем файл с ключами на нужное место
~ # cp /.ssh/authorized_keys /etc/ssh/keys-root/authorized_keys
После этого мы сможем заходить без пароля с сервера Ubuntu на сервер ESXi.

Далее самое интересное. Нам нужно разместить скрипт выключения виртуальных машин и хоста ESXi на самом хосте. Но, как мы знаем, ESXi «удаляет» все файлы созданные вручную.
Для решения проблемы нужно разместить наш скрипт на datastore и в rc.local добавить строчки копирования скрипта из datastore в корень /

Создаём файл ups_down.sh на рабочем столе (где установлен vSphere Client):

#!/bin/sh
# Получаем ID всех виртуалок
VMID=$(/usr/bin/vim-cmd vmsvc/getallvms | grep ^[0-9] | awk '{print $1}')
# Просматриваем все виртуалки в цикле
for i in $VMID
do
# Получаем их состояние (turned on, off, whatever)
STATE=$(/usr/bin/vim-cmd vmsvc/power.getstate $i | tail -1 | awk '{print $2}')
# Если виртуалка запущена - выключить
if [ $STATE == on ]
then
/usr/bin/vim-cmd vmsvc/power.shutdown $i
fi
done
#Делаем паузу в ожидании, пока виртуалки погаснут
sleep 30
# Теперь выключаем и сам сервер виртуализации.
/sbin/shutdown.sh
/sbin/poweroff

Копируем ups_down.sh с помощью vSphere Client в datastore

В файл /etc/rc.local.d/local.sh (для ESXi 5.X) добавляем строки (обязательно укажите правильный путь к файлу ups_down.sh в Вашем datastore!):

#Copy UPS Script
cp /vmfs/volumes/53176326-c45cf969-605d-9cb654bb5444/ups_down.sh /
chmod +x /ups_down.sh

Запускаем auto-backup.sh для сохранения изменений в образ ESXi

4. Окончательная настройка apcupsd
Остался последний шаг. Заставить apcupsd выполнить скрипт ups_down.sh на сервере ESXi. Для этого открываем файл /etc/apcupsd/apccontrol, ищем в нем:
doshutdown)
echo "UPS ${2} initiated Shutdown Sequence" | ${WALL}
${SHUTDOWN} -h now "apcupsd UPS ${2} initiated shutdown"

И в этом блоке заменяем строку
${SHUTDOWN} -h now "apcupsd UPS ${2} initiated shutdown"
на
/usr/bin/ssh root@server_ESXi /ups_down.sh
На этом основная настройка закончена. При пропадании питания корректно выключится как сам сервер виртуализации, так и все виртуальные сервера.

Оригинал статьи: http://yakim.org.ua/articles/servers/158-ups-esxi.html

Автор:Dmitriy Altuhov

VMware Tools (ESXi 5.5)в Centos 5.10 (Elastix 2.5.0)

https://www.vmware.com/support/packages

Для установки из packages.vmware.com:

cd ~
wget http://packages.vmware.com/tools/keys/VMWARE-PACKAGING-GPG-RSA-KEY.pub -q
rpm —import VMWARE-PACKAGING-GPG-RSA-KEY.pub
wget http://packages.vmware.com/tools/keys/VMWARE-PACKAGING-GPG-DSA-KEY.pub -q
rpm —import VMWARE-PACKAGING-GPG-DSA-KEY.pub
wget http://packages.vmware.com/tools/esx/5.5latest/repos/vmware-tools-repo-RHEL5-9.4.5-1.el5.x86_64.rpm
rpm -Uhv vmware-tools-repo-RHEL5-9.4.5-1.el5.x86_64.rpm
yum install vmware-tools-esx-kmods
yum install vmware-tools-esx-nox

Автор:Dmitriy Altuhov

VMware Tools (ESXi 5.5)в Ubuntu 12.04 Server

https://help.ubuntu.com/community/VMware/Tools
https://www.vmware.com/support/packages
VMware tools можно установить из:

  • пакет open-vm-tools в Ubuntu
  • packages.vmware.com
  • с хоста VMware ESXi

Для установки open-vm-tools достаточно: apt-get install open-vm-tools

Для установки из packages.vmware.com рекомендую сначала обновить ядро до 3.11

cd ~
sudo apt-get purge open-vm-tools
wget http://packages.vmware.com/tools/keys/VMWARE-PACKAGING-GPG-RSA-KEY.pub -q -O- | sudo apt-key add —
wget http://packages.vmware.com/tools/keys/VMWARE-PACKAGING-GPG-DSA-KEY.pub -q -O- | sudo apt-key add —
wget «http://packages.vmware.com/tools/esx/5.5latest/repos/vmware-tools-repo-ubuntu12.04_9.4.5-1.precise_amd64.deb»
sudo dpkg -i vmware-tools-repo-ubuntu12.04_9.4.5-1.precise_amd64.deb
sudo apt-get update
sudo apt-get install vmware-tools-esx-nox

Мы не стали устанавливать  vmware-tools-esx-kmods* в Ubuntu по причине:

By default, certain VMware Tools kernel modules are provided within the native RHEL 6, SLES 11 SP1, SLED 11 SP1, SLES 11 SP2, SLED 11 SP2, and Ubuntu kernel packages.

Автор:Dmitriy Altuhov

Модернизация ИТ-инфраструктуры небольшой фирмы на одном сервере

Имеется небольшая производственно-торговая фирма.
Требуется провести модернизацию ИТ-инфраструктуры (заменить сервера, сетевое оборудование, видеонаблюдение, телефонию).

Многие года в организации работало и использовалось:

  • Аналоговое видеонаблюдение
  • Аналоговая телефония на базе Мини-АТС малой номерной ёмкости
  • Несколько «серверов» в виде обычных компьютеров (такие используются в качестве рабочих станций)
  • Локальная сеть 100 мегабит/сек
  • Файловый вариант 1С с базой «Управление небольшой фирмой» (размер базы около 1,5ГБ)

Для модернизации ИТ-ифраструктуры потребуется:

  1. Серверный шкаф или стойка 19″ (Например, ЦМО СТК-С-33.2.1000)
    cmostoyka
  2. Стоечный сервер 19″ (Например, HP ProLiant DL320e Gen8 V2)

    hpilo
  3. Рельсы для сервера (Например, HP 1U Small Form Factor Ball Bearing Gen8 Rail Kit)
  4. Дополнительные модули памяти и жесткие диски для сервера
  5. Стоечный ИБП 19″ (Например, APC Smart SUA1000RMI2U)
  6. Бесплатная версия гипервизора VMware ESXi v 5.5 HP Custom
    esxi
  7. Бесплатная (свободно распространяемая) ОС на базе ядра Linux (Например, Ubuntu)
    psfauxserver1c
  8. Бесплатная (свободно распространяемая) платформа для унифицированных коммуникаций (Например, Elastix)
    elastixcorp
  9. Лицензии на систему видеонаблюдения Macroscop
  10. Лицензии на Windows Server (для контроллера домена)
  11. Лицензия на Windows 7/8 (для Macroscop)
  12. Управляемые сетевые коммутаторы L2/L3 (Например, D-Link DGS-1210-28P/B1A (с POE) или DGS-1500-28 / A1A (без POE))

После покупки необходимого программного и аппаратного обеспечения начинаются монтажные и пуско-наладочные работы:

  1. Сборка серверного шкафа/стойки
  2. Установка серверного шкафа/стойки в серверную комнату
  3. Сборка сервера (установка жестких дисков, модулей памяти, рельс)
  4. Установка оборудования в серверный шкаф/стойку
  5. Подключение СКС и питания к оборудованию. Физическая коммутация.
  6. Запуск оборудования (ИБП, коммутаторы, сервера)
  7. Начальная настройка сервера HP ProLiant (опции/параметры BIOS)
  8. Установка гипервизора VMware ESXi на сервер HP ProLiant с помощью HP Intelligent Provisioning
  9. Настройка гипервизора VMware ESXi и создание необходимых виртуальных машин (серверов)
  10. Установка операционных систем в подготовленные виртуальные машины
  11. Настройка VLAN (разделение физической локальной сети на логические/»виртуальные»)  на коммутаторах, гипервизоре VMware ESXi и виртуальных машинах
  12. Настройка сетевого серверного программного обеспечения (маршрутизация, сетевая безопасность, OpenVPN, DNS, DHCP, WINS, Samba, Active Directory Domain Services, и другие)
  13. Настройка сервера IP-телефонии Elastix
  14. Настройка рабочих мест сотрудников (рабочие станции, IP-телефоны)
  15. Настройка видеонаблюдения (IP-Камеры, Macroscop)
  16. Настройка  центрального сервера кластера 1С и сервера баз данных PostgreSQL
    serv1c834

Срок поставки оборудования 1-2 недели.
Срок выполнения монтажа и запуска в эксплуатацию — 1-2 дня с плавным переходом на новое оборудование в нерабочее время сотрудников.

Для обеспечения надежности работы ИТ-инфраструктуры рекомендуется купить дополнительный резервный сервер и настроить резервное копирование виртуальных машин с помощью Veeam Backup & Replication

Данное решение является наиболее оптимальным для большинства небольших компаний (до 50 рабочих станций). Системный интегратор «Технологии будущего» выполняет полный цикл работ от поставки оборудования (включая преднастроенные сервера) и программного обеспечения до монтажа и пуско-наладочных работ.

Автор:Dmitriy Altuhov

HP ProLiant VMWare Ubuntu Server

Имеется:

  1. сервер HP ProLiant DL320 Gen8 Ver2
  2. Виртуализация VMWare ESXi 5.5
  3. Виртуальная машина Ubuntu Server 12.04 X64

Задача: сделать так, чтобы сервер работал стабильно, не зависал, не «падал»

Оказалось достаточно обновить ядро до версии linux-generic-lts-saucy (3.11). После этого Ubuntu Server 12.04 в виртуальной машине VMWare больше не зависал.