В последнее время появилось возможность создать свой облочный сервис (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 вы увидите, что меню и многие сообщения переведены на русский язык.
На всю инсталляцию двух машин и настройки я потратил меньше часа.
Автор: vasiliykochergin