Настройка кластера для запуска Cloud-окружений с использованием Ubuntu Enterprise Cloud |
[исправить] |
Для настройки сервера для запуска Cloud-окружений будем использовать
дистрибутив Ubuntu Enterprise Cloud (http://www.ubuntu.com/cloud/private) в
который интегрирована поддержка платформы Eucalyptus
(http://www.eucalyptus.com/). Будет создан один управляющий
cloud-инфраструктурой фронтэнд-сервер и несколько работающих под его началом
вспомогательных узлов.
Установленный на машинах процессор должен поддерживать средства аппаратной
виртуализации Intel VTx (vmx) или AMD-V (svm). Проверить поддержку можно
убедившись наличие соответствующих флагов в файле /proc/cpuinfo:
egrep '(vmx|svm)' /proc/cpuinfo
Устанавливаем на сервер и вспомогательные узлы Linux дистрибутив Ubuntu Server
9.10, выбрав в меню загрузчика "Install Ubuntu Enterprise Cloud". Далее
проводим инсталляцию с соответствие с личными предпочтениями, а в блоке "Cloud
Installation Mode" выбираем для управляющего сервера значение по умолчанию
"Cluster", а при установке дополнительных узлов - "Node".
Настройка вспомогательных узлов Cloud-инфраструктуры.
Устанавливаем на узлах публичный SSH-ключ управляющего сервера:
1. Задаем пользователю eucalyptus на конечных узлах пароль:
sudo passwd eucalyptus
2. На стороне управляющего сервера запускаем команду копирования ssh-ключа на узлы:
sudo -u eucalyptus ssh-copy-id -i ~eucalyptus/.ssh/id_rsa.pub eucalyptus@IP_адрес_узла
3. Очищаем ранее установленный пароль для пользователя eucalyptus, чтобы
заходить можно было только по ключам шифрования:
sudo passwd -d eucalyptus
После того как аутентификация по ssh-ключам настроена на всех узлах запускаем
на стороне управляющего сервера процесс регистрации узлов:
sudo euca_conf --no-rsync --discover-nodes
Получаем и устанавливаем мандат для пользователей cloud-инфраструктуры.
На управляющем пользователе создаем директорию ~/.euca и генерируем
идентификационные параметры cloud-инфраструктуры:
mkdir -p ~/.euca
chmod 700 ~/.euca
cd ~/.euca
sudo euca_conf --get-credentials mycreds.zip
unzip mycreds.zip
cd -
Настройка EC2 API и AMI утилит.
На управляющем сервере запускаем скрипт для создания параметров окружения Eucalyptus:
~/.euca/eucarc
Для автоматизации запуска добавляем его вызов в ~/.bashrc:
echo "[ -r ~/.euca/eucarc ] && . ~/.euca/eucarc" >> ~/.bashrc
Устанавливаем вспомогательный набор AMI утилит:
sudo apt-get install ec2-ami-tools ec2-api-tools
Для проверки, что все работает, запускаем:
. ~/.euca/eucarc
в ответ должно появиться:
euca-describe-availability-zones verbose
Настройка через управляющий web-интерфейс
В браузере открываем страницу https://IP_управляющего_сервера:8443
В качестве имени пользователя и пароля указываем "admin". После первого входа
будет сразу предложено поменять пароль и указать контактный email.
Установка образов пользовательских cloud-окружений.
В панели управления web-интерфейса выбираем вкладку "Store" и жмем кнопку
"Install" рядом с выбранным в списке образом системы. Сразу после нажатия
начнется загрузка из сети выбранного образа и затем его установка.
Запуск образов пользовательских cloud-окружений.
Перед первым стартом окружения на узле создаем для него SSH-ключ на управляющем узле:
touch ~/.euca/mykey.priv
chmod 0600 ~/.euca/mykey.priv
euca-add-keypair mykey > ~/.euca/mykey.priv
На узле открываем 22 порт, запустив следующие команды:
euca-describe-groups
euca-authorize default -P tcp -p 22 -s 0.0.0.0/0
После этого можно запустить зарегистрированный образ окружения через
web-интерфейс: во вкладке "Store" выбираем ссылку "How to Run", в появившемся
окне будет отражена полная команда для запуска. Первый запуск может занять
довольно долго, так как потребуется время на его копирование в кеш.
За статусом запуска окружения можно наблюдать выполнив команду:
watch -n5 euca-describe-instances
Когда состояние "pending" заменится на "running", к окружению можно подключаться.
Для сохранения IP созданного окружения в переменной IPADDR и входа в него по ssh выполним команду:
IPADDR=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk '{print $4}')
ssh -i ~/.euca/mykey.priv ubuntu@$IPADDR
Для принудительного завершения работы окружения:
INSTANCEID=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk '{print $2}')
euca-terminate-instances $INSTANCEID
Полезная информация
Перезапуск управляющего сервера eucalyptus:
sudo service eucalyptus restart
Для перезапуска ПО на стороне узла:
sudo service eucalyptus-nc restart
Лог сохраняется в /var/log/eucalyptus
Файлы конфигурации находятся в директории /etc/eucalyptus
БД: /var/lib/eucalyptus/db
Ключи шифрования: /var/lib/eucalyptus и /var/lib/eucalyptus/.ssh
Подробнее см. официальное руководство пользователя http://help.ubuntu.com/community/UEC
|
|
|
|
Раздел: Корень / Безопасность / Виртуализация - Xen, OpenVZ, KVM, Qemu |
1, Alexander (??), 16:57, 08/11/2010 [ответить]
| +/– |
Блин чот я уже стописят раз все перепробовал, много инфы в инете прочел, все делаю как написано. Не пашет и все тут.
По команде . ~/.euca/eucarc в ответ ничего не выдается (тут не написано что скрипту надо ставить флаги выполнения, я их соотв. выставил)
Когда ставлю и запускаю instance он висит-висит в pending, потом terminated и через какоето время пропадает.
Я уже незнаю, все перекавырял.
| |
2, Дмитрий (??), 22:39, 01/12/2010 [ответить]
| +/– |
>>. ~/.euca/eucarc в ответ ничего не выдается
такая же фигня. ubuntu 10.04. :(
правда, поднимаю под виртуалкой и СС, и NC. Но это вряд ли должно повлиять на eucarc...
| |
3, Дмитрий (??), 19:28, 15/12/2010 [ответить]
| +/– |
Забавно, он и не должен ничего выводить)
В статье неточность.
"
Для проверки, что все работает, запускаем:
. ~/.euca/eucarc
в ответ должно появиться:
euca-describe-availability-zones verbose
"
стоит читать, так:
"
Запускаем . ~/.euca/eucarc
Запускаем euca-describe-availability-zones verbose
В ответ появится что-то вроде
AVAILABILITYZONE Cluster01 10.0.0.38
AVAILABILITYZONE |- vm types free / max cpu ram disk
AVAILABILITYZONE |- m1.small 0002 / 0002 1 192 2
AVAILABILITYZONE |- c1.medium 0002 / 0002 1 256 5
AVAILABILITYZONE |- m1.large 0001 / 0001 1 1024 8
AVAILABILITYZONE |- m1.xlarge 0001 / 0001 2 1024 20
AVAILABILITYZONE |- c1.xlarge 0000 / 0000 4 2048 20
"
В случае, когда в max стоят 0000, это значит, что скорее всего нод-контроллер не подключился корректно. Проверить можно так :
sudo euca_conf --list-nodes.
| |
|