- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF129:Eucalyptus
Материал из Linuxformat.
- Hardcore Linux Проверьте себя на крутом проекте для продвинутых пользователей
UEC: Заведем себе личное облако
- Жаждете запустить «вычислительное облако» на собственном оборудовании? Коэн Вервлоесем так и думал; читайте статью и расширяйте свой кругозор...
С Ubuntu 9.04 Canonical представила возможность запуска своего личного облака серверов с виртуальными машинами (ВМ). Для этой цели компания поработала совместно с проектом Eucalyptus. Eucalyptus – это «облачная» инфраструктура, совместимая с Amazon EC2 API. Однако в Jaunty Eucalyptus был всего лишь технологической пробой пера и имел ряд шероховатостей, чтобы не сказать хуже.
В Karmic Koala Eucalyptus интегрирован в дистрибутив под именем Ubuntu Enterprise Cloud (UEC). Инсталлировать Ubuntu Enterprise Cloud можно прямо с дистрибутивного CD Ubuntu Server. Более того, Canonical выпустила образы UEC для Ubuntu 9.10 Server, и его не только можно запустить на вашем личном облаке, но также и на Amazon EC2, без всяких изменений. Это очень упрощает хостинг образов на вашем личном облаке и выгрузку их на EC2, когда нагрузка на ваши серверы станет слишком большой.
Проверьте оборудование
Прежде чем настраивать облако, давайте сделаем паузу и взглянем на требования. Нам нужны как минимум две системы: фронтальный компьютер-интерфейс [front-end] и один или более узлов [nodes]. На интерфейсе будут работать контроллер облака, контроллер кластера, хранилище типа Amazon S3 (известное как Walrus) и его контроллер. Такое количество сервисов на одной машине потребует достаточно мощного компьютера (см. таблицу аппаратных требований. Быстрый процессор и жесткий диск, достаточно скоростной и вместительный для хранения образов и кэша, будут самыми важными требованиями.
Узлы – это системы, на которых будут запускаться виртуальные машины. На их процессорах, предпочтительно 64‑битных и многоядерных, должно быть включено расширение VT: 64‑битный узел Eucalyptus может работать и в режиме i386, и amd64, но по умолчанию Eucalyptus позволит запустить только одну ВМ на ядро процессора узла. Узлы также должны быть относительно прилично оснащены, так как на них будет идти интенсивная работа с диском.
Третий компонент, про который нельзя забывать – сеть: виртуальные машины потребляют тысячи мегабайт дискового пространства, и все это копируется с фронтального компьютера на узлы при их запуске. 100‑Мбитная сеть будет работать, но тогда для старта ВМ потребуется несколько минут. Чтобы получить готовность ВМ на вашем облаке сразу же после включения, нужна гигабитная сеть.
Первый шаг
Кто установил Ubuntu Enterprise Cloud, тот уже готов к его использованию. Но сперва обзаведитесь полномочиями администратора на интерфейсе:
cluster:~$ mkdir ~/.euca cluster:~$ chmod 700 ~/.euca cluster:~$ cd ~/.euca cluster:~/.euca$ sudo euca_conf --get-credentials mycreds.zip cluster:~/.euca$ unzip mycreds.zip cluster:~/.euca$ cd
Это обеспечит сохранение всех реквизитов в директории .euca вашего домашнего каталога. Чтобы быть готовым поиграть с вашим облаком, вы должны подгрузить конфигурационный файл eucarc, который настраивает все необходимые Eucalyptus переменные окружения, командой source:
cluster:~$ source ~/.euca/eucarc
Если вы хотите, чтобы это происходило каждый раз при вашем входе в систему, пропишите данные строки в конце файла ~/.bashrc.
Для проверки правильности всех настроек, запросим данные о доступности вашего личного облака:
cluster:~$ euca-describe-availability-zones verbose AVAILABILITYZONE zoo 192.168.1.140 AVAILABILITYZONE |- vm types free / max cpu ram disk AVAILABILITYZONE |- m1.small 0004 / 0004 1 128 2 AVAILABILITYZONE |- c1.medium 0004 / 0004 1 256 5 AVAILABILITYZONE |- m1.large 0002 / 0002 2 512 10 AVAILABILITYZONE |- m1.xlarge 0002 / 0002 2 1024 20 AVAILABILITYZONE |- c1.xlarge 0001 / 0001 4 2048 20
Если выводится нечто вроде этого, ваше личное облако работает! Имя zoo соответствует тому, что мы дали нашему облаку при настройке фронтальной машины, а 192.168.0.140 – это ее IP-адрес. И то, и другое в вашей установке может отличаться. Более интересная часть – это список типов ВМ. В нем показано, сколько ВМ каждого типа вы можете запустить на вашем облаке. Это зависит от числа и мощности ваших узлов. В данном примере вывода показано мое слабенькое личное облако, способное управиться только с четырьмя небольшими ВМ. Но если я докуплю дополнительный компьютер, установлю и зарегистрирую его как второй узел UEC в моем облаке, их число, благодаря гибкости облака, возрастет автоматически.
Простейшим способом установить образ UEC и запустить его на вашем облаке является встроенный web-интерфейс. Перейдите на https://192.168.1.140:8443 (изменив IP-адрес на правильный) и войдите с реквизитами admin/admin. На следующей странице измените этот пароль по умолчанию и введите свой адрес электронной почты: он будет использоваться для сообщений.
Находясь в web-интерфейсе, нажмите на вкладку Store [Хранилище]. Вам предъявят список официальных образов, которые Canonical предлагает для запуска на Ubuntu Enterprise Cloud. На момент написания статьи этот список был ограничен 32‑и 64‑битными версиями Ubuntu 9.10 RC Server и демонстрационным MediaWiki. Щелкните на Install [Установить] у выбранного образа. Когда он скачается и установится, нажмите на ‘How to run?’, чтобы увидеть необходимые для запуска команды, которые нужно ввести в командной строке. Образ теперь также будет отображаться в вкладке Image, которая показывает все образы, доступные для запуска на вашем облаке.
Шаг за шагом: Установим Ubuntu Enterprise Cloud
- 1 Установите интерфейс
- Скачайте ISO-образ Ubuntu 9.10 Server и запишите его на CD. Начните инсталляцию на фронтальной машине. Выберите ‘Install Ubuntu Enterprise Cloud’ в загрузочном меню. В ответ на вопрос установщика о режиме установки облака, выберите ‘Cluster’ [Кластер], введите имя своего кластера и задайте диапазон неиспользуемых IP-адресов в вашей локальной сети, которые интерфейс может назначать виртуальным машинам, вида 192.168.1.150–192.168.1.249. После установки, перезагрузите фронтальную машину и обновите пакеты на ней до последних версий:
cluster:~$ sudo apt-get update cluster:~$ sudo apt-get upgrade
- 2 Установите узел(ы)
- Установка узлов еще проще. Просто убедитесь, что вы подключены к той же сети, что и фронтальный компьютер, который должен быть запущен. Если вы выберете ‘Install Ubuntu Enterprise Cloud’ в меню загрузки, машина обнаружит его в сети и выберет режим установки облака ‘Node’ [Узел]. В процессе установки не будет задано никаких вопросов про UEC. После установки, перезагрузите узел и обновите его:
node:~$ sudo apt-get update node:~$ sudo apt-get upgrade
- Повторите процесс для каждого узла вашего образа.
- 3 Зарегистрируйте узел(ы)
- После установки фронтального компьютера и всех узлов нужно зарегистрировать последние на интерфейсе. Войдите в него и запустите процесс регистрации:
cluster:~$ sudo euca_conf --no-rsync --discover-nodes
- Если все пройдет хорошо, интерфейс исследует все узлы в одной локальной сети и попросит вас подтвердить регистрацию каждого узла по его IP-адресу. После этого личное облако готово к использованию.
Создаем свой образ
Более трудоемким, но все равно простым способом установки образа является его самостоятельная сборка и загрузка. Однако если вы скачаете ветку uec-tools с Launchpad (https://code.launchpad.net/~ubuntu-on-ec2/ubuntu-on-ec2/uec-tools), то можете использовать скрипт register-uec-tarball, автоматизирующий этот процесс. Например, можно скачать официальный образ Ubuntu UEC c http://uec-images.ubuntu.com/releases/karmic/release на фронтальный компьютер и затем поместить его в свое облако всего одной командой:
cluster:~$ ./register-uec-tarball ubuntu-9.10-uec-amd64.tar.gz ubuntu-9.10-uec-release-amd64
Она распакует архив tar.gz, соберет ядро в Eucalyptus Kernel Image (EKI), а Ram-диск – в Eucalyptus Ramdisk Image (ERI), и напоследок разместит сам образ в Eucalyptus Machine Image (EMI). Весь процесс займет несколько минут.
После этого три образа будут доступны через web-интерфейс во вкладке Images. Вы также можете проверить их доступность из командной строки:
cluster:~$ euca-describe-images IMAGE eri-46A316D1 ubuntu-9.10-uec-release- amd64/karmic-uec-amd64-initrd-virtual.manifest.xml admin available public x86_64 ramdisk IMAGE emi-3F2F123F ubuntu-9.10-uec-release- amd64/karmic-uec-amd64.img.manifest.xml admin available public x86_64 machine IMAGE eki-63D61762 ubuntu-9.10-uec-release- amd64/karmic-uec-amd64-vmlinuz-virtual.manifest.xml admin available public x86_64 kernel
Запускаем свои движки
Вы можете также установить контроллер кластера UEC или узел на имеющейся системе Ubuntu. Вики UEC подскажет, как это сделать.
Теперь-то и пойдет потеха! Мы запустим на нашем облаке несколько ВМ. Но для этого надо сперва создать SSH-ключ и открыть порт 22 для будущих экземпляров.
cluster:~$ euca-add-keypair mykey > ~/.euca/mykey.priv cluster:~$ chmod 600 ~/.euca/mykey.priv cluster:~$ euca-describe-groups # без этого, как ни странно, следующая команда завершается с ошибкой cluster:~$ euca-authorize default -P tcp -p 22 -s 0.0.0.0/0
Ключ сохранится в файле mykey.priv, так что сделать это нужно только один раз. Теперь запустите экземпляр ВМ типа c1.medium, используя ID EMI, найденный в выводе euca-describe-images:
cluster:~$ euca-run-instances -k mykey emi-3F2F123F -t c1.medium RESERVATION r-46DE0817 admin admin-default INSTANCE i-40A607C3 emi-3F2F123F 0.0.0.0 0.0.0.0 pending mykey 2009-11-01T17:34:41.822Z eki-63D61762 eri-46A316D1
Подождите, пока состояние не сменится с pending на running. В зависимости от скорости вашей сети, это может занять несколько минут для первого запускаемого экземпляра. Изменения состояния можно наблюдать с помощью команды с уместным именем – watch:
ElasticFox, расширение Firefox, предоставляет удобный web-интерфейс для администрирования облака EC2. Оно также работает с Ubuntu Enterprise Cloud. Поищите подробности на вики UEC.
cluster:~$ watch -n 5 euca-describe-instances RESERVATION r-46DE0817 admin default INSTANCE i-40A607C3 emi-3F2F123F 192.168.1.150 172.19.1.2 running mykey 0 c1.medium 2009-11-01T17:34:41.822Z zoo eki-63D61762 eri-46A316D1
Когда экземпляр будет в состоянии running, посмотрите на первый IP-адрес, упомянутый в выводе euca-describe-instances: это публичный IP-адрес. Затем вы сможете зайти в него с именем ubuntu и ранее созданным SSH-ключом:
cluster:~$ ssh -i ~/.euca/mykey.priv ubuntu@192.168.1.150
Теперь вы работаете на сервере в вашем личном облаке! При желании завершить работу данной ВМ, вы сможете это сделать, используя правильный ID экземпляра:
cluster:~$ euca-terminate-instances i-40A607C3
Предоставьте облако другим
Если вы аккуратно следовали нашим инструкциям, то теперь имеете свое личное облако; но есть вероятность, что вы не собираетесь делать его единоличным. Возможно, вы используете Ubuntu Enterprise Cloud в малом бизнесе и хотите, чтобы ваши коллеги тоже поживились облаком. К счастью, управление доступом пользователей в Ubuntu Enterprise Cloud также несложно. Просто скажите вашим коллегам зайти на https://192.168.1.140:8443/ (или на должный IP-адрес фронтального компьютера) и кликнуть на ‘Apply’ [Применить]. Затем они должны ввести имя пользователя, пароль и немного информации о себе, такой как имя и адрес электронной почты. После этого, кликнув на ‘Sign up’ [Регистрация], они пошлют администратору облака сообщение о своем запросе.
Если при установке фронтального компьютера вы правильно настроили почтовый сервер, то получите от ваших коллег письмо с запросом учетной записи. Затем они получат по почте ответ с подтверждением запроса. Ваши новые пользователи могут теперь зайти в web-интерфейс интерфейса UEC, используя заданные имя пользователя и пароль. Кликнув на ‘Download Credentials’ [Скачать реквизиты], они получат zip-файл. После его распаковки они увидят примерно то же содержимое, что и мы в начале этой статьи. Применив source к файлу eucarc, добавив SSH-ключ и авторизовав SSH, они смогут запускать новые экземпляры и заходить в них, как описано выше.
Будущее Ubuntu: в облаках?
Начиная с Ubuntu 9.10, Canonical предлагает консультации, онлайн-обучение, поддержку и инструменты управления, и если вы захотите использовать Ubuntu Enterprise Cloud в вашей компании, в профессиональном сервисе недостатка не будет. В этом году мы увидим в Cloud Store больше образов, в том числе коммерческих.
Однако основа всегда будет свободной. Как обычно, имеется прекрасная онлайн-документация (на https://help.ubuntu.com/community/UEC). И если вам нравится Ubuntu на EC2, а процессоры вашего собственного оборудования недогружены, Ubuntu Enterprise Cloud будет хорошим выбором. Оно полностью функционально, если вы готовы потратить на него некоторое время. И если вы сравните этот урок с предыдущим, про Ubuntu на EC2, то увидите, что основы их одинаковы, так что ваш опыт с EC2 или Eucalyptus удвоился!
Что такое Amazon EC2?
Amazon’s Elastic Compute Cloud (EC2) – это гибкая альтернатива традиционному хостингу. По существу, это не более чем пачка серверов, запущенных в ВМ под гипервизором Xen. Но способ вашей работы с ними по-настоящему гибок: вы можете запустить собственные ВМ за пару минут и столь же быстро остановить их, и плата за все это будет базироваться на трех параметрах: времени работы машин, генерируемом сетевом трафике и типе установки (от маленьких до больших). Это подлинные вычисления по требованию: если ваш сервер испытывает перегрузку, вы сможете добавить столько экземпляров, сколько нужно. Как пользователь EC2, вы можете создавать или скачивать так называемые Amazon Machine Image (AMI). Это преднастроенные пакеты ОС и ПО, которые можно установить как виртуальные машины на EC2. Amazon EC2 стал де-факто стандартом облачных вычислений.
Совместимость EC2: мощная идея
Роб Твид [Rob Tweed], директор британской компании M/Gateway Developments Ltd, работал с Canonical над добавлением клона базы данных Amazon SimpleDB с открытым кодом, M/DB, в UEC Image Store. В процессе работы он решил получше изучить UEC. Вот некоторые его отзывы об Ubuntu Enterprise Cloud: «Основывать личные облака на ставшем де-факто стандартом API от Amazon – мощная идея. Например, иметь одинаковый интерфейс клиента, типа ElasticFox, и на Amazon, и на моем локальном облаке UEC и запускать сервера одним способом – это замечательно. Кстати, ElasticFox – великолепный web-интерфейс для облачных вычислений. Меня смутила только одна область – настройка безопасности, пар ключей и т.п. Кроме того, путем проб и ошибок я обнаружил, что контроллер кластера не любит работать в VMware. У меня было множество проблем с сетью, которые исчезли при помещении его на отдельную машину».
Аппаратные требования для фронтального компьютера
Оборудование | Минимум | Рекомендуется |
---|---|---|
ЦПУ | 1 ГГц | 2×2 ГГц |
ОЗУ | 512 МБ | 2 ГБ |
Тип и скорость диска | IDE, 5400 об/мин | SATA, 7200 об/мин |
Дисковая память | 40 ГБ | 200 ГБ |
Сеть | 100 Мбит | 1 Гбит |
Аппаратные требования для узла
Оборудование | Минимум | Рекомендуется |
---|---|---|
ЦПУ | Поддержка VT | Поддержка VT, 64 бит, многоядерность |
ОЗУ | 1 ГБ | 4 ГБ |
Тип и скорость диска | IDE, 5400 об/мин | SATA, 7200 об/мин |
Дисковая память | 40 ГБ | 100 ГБ |
Сеть | 100 Мбит | 1 Гбит |