Создание своей облачной системы за час

В последнее время появилось возможность создать свой облочный сервис (IaaS) без усилий и программирования. В простейшем случае можно создать Cloud-In-A-Box используя всего один компьютер с процессором который поддерживает виртуализацию. Данное облако имеет свои ограничения и, по-моему, подходит только для тренировки. Если у вас есть две машины с процессорами которые поддерживают виртуализацию, то можно создать полноценное облако пригодное для тестирования и разработки облачных решений. Недавно компания Eucalyptus представило новую версию своего продукта Eucalyptus 3.4. С помощью программы FastStart можно создать полноценную AWS и S3 совместимую IaaS систему без усилий и глубоких знаний продукта.

Я использовал два Intel NUC машины для установки Eucalyptus. Так как у NUC нет дисковода, то я воспользовался CentOS 6.2 машиной для создания загрузочного USB ключа. Для начала надо получить FastStart ISO зайдя на www.eucalyptus.com/eucalyptus-cloud/get-started/try#faststart. После этого создать загрузочный ключ. Я использовал UNetbootin для создания ключа. Не забудьте скопировать FastStart ISO на ключ после окончания работы UNetbootin. На моей машине UNetbootin оставил файловую систему на ключе в read-only режиме после окончания работы и надо было сделать umount и mount ключа для записи файла.

Перед началом инсталляции решите какие IP вы присвоите машинам и какие будите использовать для виртуальных машин в вашем облаке. Я решил присвоить 192.168.10.1 Frontend машине, 192.168.10.2 Node Controller(NC) и использовать 192.168.9.1-192.168.9.100 для публичных адресов виртуальных машин. Убедитесь, что ваши сетевые настройки позволяют задавать машинам статические IP. Если это невозможно вам придется использовать DHCP, что чревато проблемами если сервер получит новый IP после инсталляции системы. Так, что я бы рекомендовал использовать статические IP.

После создания ключа загрузите первую машину с USB. Сначала я установил Node Controller. При инсталляции помимо нескольких стандартных вопросов CentOS мне надо было ввести IP сервера, маску сети, Default Gateway и DNS.

После создания NC я загрузил вторую машину с USB и выбрал Install CentOS 6 with Eucalyptus Frontend в меню. При инсталляции было задано несколько дополнительных вопросов про сетевые настройки и публичные и закрытые адреса для виртуальных машин. Для публичных я выбрал вышеуказанный диапазон, а для закрытых предложенных системой 172.31.Х.Х диапазон. После, когда система предложила зарегистрировать NC, я указал адрес первой созданной машины 192.168.10.2. И это все. После перезагрузки я получил работающую облачную систему.

Для работы с ней можно использовать как UI так и командную строку. После инсталляции система сообщает все параметры для работы с облаком. Если вы что-то забыл просто зайдите на Frontend машину по ssh и вы получите напоминание как это:

 [vasya@localhost ~]$ ssh root@192.168.10.1 root@192.168.10.1's password: Last login: Wed Oct 30 14:45:12 2013 from 192.168.1.183 User Console URL (for managing instances, volumes, etc.):     https://192.168.10.1:8888/  User Credentials:   * Account:  demo   * Username: admin   * Password: password  Admin Console URL (for managing user accounts, VM types, etc.):     https://192.168.10.1:8443  Admin Credentials:   * Account:  eucalyptus   * Username: admin   * Password: admin 

Для работы через UI перейдите по адресу указанному выше

https://192.168.10.1:8888/

Введите ваши данные для demo пользователя и можно начать запускать машины и создавать диски.
По умолчанию в системе уже есть один образ на базе CentOS 6.4 и созданы несколько ключей. Так что можно сразу запустить виртуальную машину.

Для работы с командной строкой зайдите по ssh на Frontend машину. И загрузите переменные окружения для одного из двух созданных по умолчанию пользователей. Например:

 . ~/credentials/admin/eucarc 

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

 [root@Box1 ~]# euca-describe-availability-zones verbose AVAILABILITYZONE    CLUSTER01    192.168.10.1 arn:euca:eucalyptus:CLUSTER01:cluster:cc_01/   AVAILABILITYZONE    |- vm types    free / max   cpu   ram  disk   AVAILABILITYZONE    |- m1.small    0005 / 0008   1    256     5   AVAILABILITYZONE    |- t1.micro    0005 / 0008   1    256     5   AVAILABILITYZONE    |- m1.medium    0005 / 0006   1    512    10   AVAILABILITYZONE    |- c1.medium    0002 / 0004   2    512    10   AVAILABILITYZONE    |- m1.large    0002 / 0004   2    512    10   AVAILABILITYZONE    |- m1.xlarge    0002 / 0004   2   1024    10   AVAILABILITYZONE    |- c1.xlarge    0002 / 0004   2   2048    10   AVAILABILITYZONE    |- m2.xlarge    0002 / 0004   2   2048    10   AVAILABILITYZONE    |- m3.xlarge    0001 / 0002   4   2048    15   AVAILABILITYZONE    |- m2.2xlarge    0001 / 0002   2   4096    30   AVAILABILITYZONE    |- m3.2xlarge    0001 / 0002   4   4096    30   AVAILABILITYZONE    |- cc1.4xlarge    0000 / 0001   8   3072    60   AVAILABILITYZONE    |- m2.4xlarge    0000 / 0001   8   4096    60   AVAILABILITYZONE    |- hi1.4xlarge    0000 / 0000   8   6144   120   AVAILABILITYZONE    |- cc2.8xlarge    0000 / 0000  16   6144   120   AVAILABILITYZONE    |- cg1.4xlarge    0000 / 0000  16   12288   200   AVAILABILITYZONE    |- cr1.8xlarge    0000 / 0000  16   16384   240   AVAILABILITYZONE    |- hs1.8xlarge    0000 / 0000  48   119808  24000 

На моей NC машине стоит 4 ядерный процессор и 128 GB диск. По умолчанию, после установки я мог бы запустить до 4 виртуальных машин. Но как вы видите, система предлагает запустить до 8 виртуальных машин. Что бы этого добиться зайдите по ssh на NC машину и отредактируйте несколько переменных в /etc/eucalyptus/eucalyptus.conf файле. Я поставил:

 MAX_CORES="8" NC_WORK_SIZE=70000 

После этого надо перезапустить NC процес /etc/init.d/eucalyptus-nc restart и в моем распоряжении оказалось в двое больше ресурсов. Я бы не стал злоупотреблять с изменением числа процессоров, но удвоить их, думаю, смело можно если виртуальные машины не будут использовать 100% своих процессорных мощностей.

Если вам привычнее использовать русскоязычный интерфейс, то можно поменять настройки консоли. Для этого зайдите по ssh на Frontend машину и отредактируйте /etc/eucalyptus-console/console.ini файл. Надо поменять locale language=ru_RU
После этого перезапустите eucalyptus-console процесс /etc/init.d/eucalyptus-console restart

Зайдя опять в UI вы увидите, что меню и многие сообщения переведены на русский язык.

На всю инсталляцию двух машин и настройки я потратил меньше часа.

ссылка на оригинал статьи http://habrahabr.ru/post/200326/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *