Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Программное обеспечение для Linux

Создаем свои собственные облачные сервера с помощью Ubuntu

Оригинал: "Grow Your Own Cloud Servers With Ubuntu"
Автор: Эрик Гайер (Eric Geier)
Дата публикации: January 15, 2010
Перевод: Н.Ромоданов
Дата перевода: февраль 2010 г.

Хотели бы вы полетать в облаке и поэкспериментировать с облачными вычислениями? Теперь у вас есть шанс. С помощью этой статьи вы шаг за шагом изучите процесс настройки своей личной облачной системы, в которой используется пакет Ubuntu Enterprise Cloud (UEC), базирующийся на платформе Eucalyptus.

Система состоит из одного облачного контроллера (также называемого front-end сервером) и одного или нескольких контроллеров узлов. Облачный контроллер управляет средой облака. Вы можете по умолчанию использовать образы ОС Ubuntu или создать свой собственный образ, который будет использоваться в виртуальной среде. В контроллерах узлов вы можете запустить отдельные экземпляры виртуальных машин (VM) для работы с образами.

Системные требования

Для того чтобы можно было работать с облаком, для него нужно выделить, по крайней мере, два компьютера:

  • Один — для front-end сервера (облачного контроллера или контроллера кластеров) со следующими минимальными требованиями: CPU с частотой в 1 ГГц, 512 Мбайт оперативной памяти, CD-ROM, 40 Гбайт дискового пространства и сетевым Ethernet адаптером.
  • Один или несколько для контроллеров узлов с CPU, поддерживающим технологию виртуализации Virtualization Technology (VT), 1Гбайт оперативной памяти, CD-ROM, 40 Гбайт дискового пространства и сетевым Ethernet адаптером.

Вы можете посмотреть список процессоров Intel, поддерживающих технологию VT. Либо в Windows вы можете запустить утилиту SecurAble. В Linux вы можете выполнить проверку следующим образом — посмотреть, если в файле /proc/cpuinfo параметры "vmx" или "svm". Запустите команду egrep '(vmx|svm)' /proc/cpuinfo. Однако имейте в виду, что вы получите результат, если эта возможность включена: она может быть отключена в BIOS.

Подготовка к инсталляции

Во-первых, скачайте образ CD для версии Ubuntu Server remix (мы используем версию 9.10) на любой компьютер, на котором есть устройство записи CD или DVD. Затем запишите образ ISO на CD или DVD. Если вы хотите использовать DVD, убедитесь в том, что компьютеры, которые будут использоваться в облаке, могут читать DVD. Если вы используете Windows 7, вы можете открыть ISO файл и использовать утилиту записи, входящую в состав ОС. Если вы используете Windows Vista или более ранние версии, вы можете скачать стороннее приложение, такое как DoISO.

Перед началом установки убедитесь, что на всех компьютерах, которые используются при установке, настроено все необходимое периферийное оборудование (например, монитор, клавиатура и мышь). Кроме того, убедитесь, что они подключены к сети, поскольку все сетевые настройки будут сконфигурированы автоматически.

Установка Front-End сервера

Установка front-end сервера сравнительно проста. Для того, чтобы начать установку, просто вставьте компакт-диск с инсталлятором и в загрузочном меню выберите пункт "Install Ubuntu Enterprise Cloud", а затем нажмите клавишу ENTER. При необходимости укажите язык и раскладку клавиатуры. Укажите настройки сети, когда появится запрос.

При появлении запроса на выбор режима установки Cloud Installation Mode, нажмите Enter для того, чтобы выбрать установку по умолчанию, т. е. "Cluster" ("кластер"). Затем вам нужно сконфигурировать часовой пояс и задать настройки раздела. После того, как раздел будет подготовлен, установка будет, наконец, запущена. В самом конце, вам будет предложено создать учетную запись пользователя.

Затем вам нужно будет настроить параметры прокси, автоматическое обновление и электронную почту. Кроме того, вам нужно будет задать имя кластера Eucalyptus Cluster. Вам также потребуется настроить IP-адресацию с тем, чтобы пользователи получали динамически назначаемые им адреса.

Установка и регистрация контроллеров узлов

Установка узлов еще проще. Снова вставьте установочный диск, в меню загрузки выберите "Install Ubuntu Enterprise Cloud" и нажмите клавишу Enter. По мере необходимости указывайте требуемые настройки.

Когда дело дойдет до выбора режима установки Cloud Installation Mode, инсталлятор должен автоматически обнаружить существующий кластер и задать вариант установки "Node" ("Узел"). Для того, чтобы продолжить, просто нажмите на клавишу Enter. Останется только задать настройку раздела.

Регистрация контроллеров узлов

Прежде, чем продолжить дальше, вы должны знать IP адрес узла (узлов). Узнать его можно с помощью следующей команды:

/sbin/ifconfig

Затем вам потребуется установить на контроллере узла открытый ssh ключ, взятый с front-end сервера:

  1. С помощью следующей команды установите временный пароль для пользователя eucalyptus:
  2. sudo passwd eucalyptus
  3. На front-end сервере введите следующую команду для того, чтобы скопировать SSH ключ:
  4. sudo -u eucalyptus ssh-copy-id -i ~eucalyptus/.ssh/id_rsa.pub eucalyptus@
  5. Затем с помощью следующей команды вы можете удалить пароль учетной записи eucalyptus:
  6. sudo passwd -d eucalyptus
  7. После того, как узлы будут подняты и ключ скопирован, запустите на front-end сервере следующую команду и добавьте узлы:
  8. sudo euca_conf --no-rsync --discover-nodes

Получение и установка идентификационной информации пользователя

На front-end сервере выполните приведенные ниже команды для того, чтобы создать новую директорию, экспортировать в него заархивированную идентификационную информацию пользователя, а затем распаковать файлы:

mkdir -p ~/.euca
chmod 700 ~/.euca
cd ~/.euca
sudo euca_conf --get-credentials mycreds.zip (It takes a while for this to complete; just wait)
unzip mycreds.zip
cd -

Идентификационную информацию пользователя можно также добавить через конфигурационную утилиту с веб интерфейсом. Однако в этом случае потребуется больше работы, чем выгрузить данные пользователя, а затем переместить их на сервер.

Настройка EC2 API и инструментального пакета AMI

Теперь вы должны настроить на front-end сервере пакет EC2 API и инструментальный пакет AMI. Во-первых, все настройки вашей среды Eucalyptus берутся из файла eucarc, поэтому введите:

~/.euca/eucarc

Для того, чтобы при входе в систему это происходило автоматически, введите следующую команду, которая запишет предыдущую команду в ваш файл ~/.bashrc

echo "[ -r ~/.euca/eucarc ] && . ~/.euca/eucarc" >> ~/.bashrc

Теперь для того, чтобы установить инструментальные пакеты пользователя облачной системы, введите:

sudo apt-get install ^31vmx32^4

Для того, чтобы удостовериться в том, что все работает, введите следующую команду и получите детальную информацию об имеющемся кластере:

. ~/.euca/eucarc
euca-describe-availability-zones verbose

Доступ к панели управления с веб интерфейсом

Теперь вы можете получить доступ к конфигурационной утилите, имеющей веб интерфейс. С любого компьютера, находящимся в той же самой сети, перейдите по URL, https://:8443. Сразу после того, как вы зарегистрируетесь front-end сервере, будет показан IP адрес облачного контроллера. Обратите внимание, что это безопасное соединение происходит по протоколу HTTPS, а не с помощью HTTP. Вполне вероятно, вы получите от браузера предупреждение, касающееся безопасности, поскольку в сервере используется самоподписываемый сертификат вместо сертификата, предоставляемого какой-нибудь из известных служб сертификации Certificate Authority (CA). Игнорируйте это предупреждение, добавив его в список исключений. Подключение будет безопасным.

По умолчанию в качестве имя пользователя и пароля пользователя используется значение "admin". После первой регистрации вам следует ввести новый пароль и email.

Установка образов

Теперь, когда у вас есть настроенное основное облако, вы можете установить образы. Откройте панель управления с веб интерфейсом, выберите вкладку Store, а затем щелкните по кнопке Install (Установить) для установки нужного образа. Начнется загрузка, а затем автоматически начнется установка, которая занимает много времени.

Запуск образов

Перед первым запуском образа на узле, выполните следующие команды с тем, чтобы создать пару ключей для 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

Наконец, вы можете запустить зарегистрированный образ. Команду для запуска образа можно выполнить через веб интерфейс. Войжите в систему через веб интерфейс, щелкните по вкладке Store, а затем выберите ссылку How to Run с тем, чтобы запустить нужный образ. Появится окошко, в котором будет указана нужная команда.

Когда происходит первый запуск, вероятно, будет затрачено некоторое время для кеширования образа. Состояние запущенного образа можно узнать с помощью следующей команды:

watch -n5 euca-describe-instances

При переходе из состояния "pending" ("ожидание") в "running" ("выполнение") определите назначенный IP адрес и подключитесь к нему:

IPADDR=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk '{print $4}')
ssh -i ~/.euca/mykey.priv ubuntu@$IPADDR

Для того, чтобы завершить подключение по SSH:

INSTANCEID=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk '{print $2}')
euca-terminate-instances $INSTANCEID

Обслуживание облака

Теперь у вас в сети имеется работающее облако. Если при его работе возникнут проблемы, то нужно обратиться к официальным документам или на форум. Напоследок, несколько практических советов:

  • Для того, чтобы перезапустить front-end сервер, выполните следующую команду: sudo service eucalyptus [start|stop|restart]
  • Для того, чтобы восстановить работу узла, выполните следующую команду: sudo service eucalyptus-nc [start|stop|restart]
  • Есть следующие несколько файлов с важными данными:
    • Файлы журналов
      /var/log/eucalyptus
    • Конфигурационные файлы
      /etc/eucalyptus
    • База данных
      /var/lib/eucalyptus/db
    • Ключи
      /var/lib/eucalyptus
      /var/lib/eucalyptus/.ssh

Смотрите следующие статьи: