»·¾³½éÉÜ
OS: Ubuntu Server 12.04.1 64-bit
Server:
10.6.203.10 cloudstack-server-1
- CloudStack Management Server
- CloudStack Agent
- NFS Server
- MySQL Server
×¢£ºCloudStackÖ§³ÖºÜºÃµÄ·Ö²¼Ê½¼Ü¹¹£¬ÉÏÃæ - ´ú±íµÄËùÓнÇÉ«¶¼¿ÉÒÔ²¿ÊðÔÚ²»Í¬µÄ»úÆ÷ÉÏ£¬µ«ÔÚ²âÊÔ»·¾³ÖÐÒòΪÌõ¼þÓÐÏÞÎÒÈ«²¿¶¼²¿Êðµ½ÁËһ̨»úÆ÷ÉÏ¡£
1. ʲôÊÇCloudStack
CloudStackÊÇÒ»¸ö¿ªÔ´µÄ¾ßÓи߿ÉÓÃÐÔ¼°À©Õ¹ÐÔµÄÔÆ¼ÆËãÆ½Ì¨¡£
Ìáµ½¿ªÔ´µÄÔÆ¼ÆËãÆ½Ì¨£¬ÏàÐÅ´ó¼ÒÊ×ÏÈÏëµ½µÄ¿ÉÄÜÊÇOpenStack£¬Ä¿Ç°¹úÄڵÒÔÆ¼ÆËãÆ½Ì¨Èç°¢ÀïÔÆ¡¢Ê¢´óÔÆÒÔ¼°ÐÂÀËSAEÃ²ËÆ¶¼»ùÓÚOpenStack×öÁ˶þ´Î¿ª·¢¡£
µ«Ê¹ÓùýCloudStackÖ®ºó£¬Äã»á·¢ÏÖÆäʵCloudStack¸üÏñÊÇÒ»¸öÉÌÒµ»¯¹ýºóµÄ²úÆ·£¬ÓÐ×ŷdz£ºÃµÄÓû§½çÃæ£¬¸÷¸öÄ£¿éĬÈϼ¯³ÉµÄºÜºÃ£¬ÇÒ°²×°Ó벿Êð¹ý³ÌÒ²Ïà¶ÔÈÝÒ×һЩ¡£
ÊÂʵÉÏ£¬CloudStackµÄǰÉíÊÇCloud.com£¬ºóÀ´±»Ë¼½ÜÊÕ¹º¡£2011Äê7Ô£¬CitrixÊÕ¹ºCloud.com£¬½«CloudStack
100%¿ªÔ´²¢½»¸øApacheÈí¼þ»ù½ð»á¹ÜÀí¡£
ͬʱ£¬CloudStackÒѾÓÐÁËÐí¶àÉÌÓÿͻ§£¬°üÀ¨GoDaddy¡¢Ó¢¹úµçÐÅ¡¢ÈÕ±¾µç±¨µç»°¹«Ë¾¡¢ËþËþ¼¯ÍÅ¡¢º«¹úµçÐŵȡ£
Òò´Ë£¬CloudStack±¾ÉíÆäʵ¾ÍÊÇÒ»¸öÉÌÒµ»¯¹ýºóµÄ²úÆ·£¬È»ºóÔÚÃæ¶ÔOpenStackµÈ¿ªÔ´ÏµÍ³µÄ¾Þ´ó¾ºÕùѹÁ¦µÄÇé¿öÏÂÑ¡ÔñÁËͬÑùµÄ¿ªÔ´¡£
ĿǰCloudstackÖ§³Ö¹ÜÀí´ó²¿·ÖÖ÷Á÷µÄhypervisors£¬ÈçKVM£¬XenServer£¬VMware£¬Oracle
VM£¬XenµÈ¡£
CloudStack¾ßÓÐÉÌÒµÈí¼þËùÓµÓеÄÍêÉÆµÄÓû§È¨ÏÞ¹ÜÀí£¬¿ÉÒÔÈÃÓû§¹¹½¨Ò»¸ö°²È«µÄ¶à×â»§ÔÆ¼ÆËã»·¾³¡£
ͬʱ¼æÈÝAmazon AWS API ½Ó¿Ú£¬¿ÉÓÃÀ´¹ÜÀíAWSµÄ×ÊÔ´¡£¡¡¡¡
CloudStackµÄ¹Ù·½ÍøÖ·ÈçÏÂ(Ŀǰ»¹´¦ÓÚApache»ù½ð»áµÄ·õ»¯Æ÷ÖÐ)£º
http://incubator.apache.org/cloudstack/
ÒÔÏÂÊÇCloudStackµÄϵͳ¼Ü¹¹£¬»ù±¾ÉÏÓëÆäËûÔÆ¼ÆËãÆ½Ì¨Ïàͬ£º

2. ËÞÖ÷»úµÄϵͳÐèÇó
ÓÉÓÚCloudStack 4.0 ÏÞ¶¨ÁËlibvirt°æ±¾ > 0.9.4£¬²¢ÔÚÉçÇøÐû³ÆËùÖ§³ÖµÄOSΪ
CentOS/RHEL 6.2 ÒÔÉÏ»ò Ubuntu Server 12.04¡£
Òò´Ë£¬ÕâÀïÎÒÃÇÑ¡Ôñ Ubuntu Server 12.04.1 ×÷ΪÎÒÃǵIJÙ×÷ϵͳ¡£
¹Ù·½ÏÂÔØµØÖ·£ºhttp://releases.ubuntu.com/precise/ubuntu-12.04.1-server-amd64.iso
ÁíÍ⣬¹Ù·½ÒªÇóÓ²¼þÖÁÉÙÂú×ãÒÔÏÂÌõ¼þ£º
1) Ö§³ÖÓ²¼þÐéÄ⻯(Intel-VT »ò AMD-V)
2) 64λµÄx86 CPU
3) 4GÄÚ´æ
4) 36GBÓ²ÅÌ
5) 1ÕÅÍø¿¨
3. ÅäÖð²×°Ô´
ÅäÖùúÄÚµÄÍøÒ×¾µÏñÔ´
$ sudo sed -i s/us.archive.ubuntu.com/mirrors.163.com/g /etc/apt/sources.list
$ sudo sed -i s/security.ubuntu.com/mirrors.163.com/g /etc/apt/sources.list |
ÅäÖÃCloudStack¹Ù·½Ô´
$ sudo vim /etc/apt/sources.list.d/cloudstack.list
deb http://cloudstack.apt-get.eu/ubuntu precise 4.0 |
ÅäÖÃCloudStack¹Ù·½Ô´Ö¤Êé
$ wget -O - http://cloudstack.apt-get.eu/release.asc| sudo apt-key add - |
¸üÐÂϵͳµÄ°²×°Ô´
4. °²×°Management Server
4.1 ×¼±¸ºÃ²Ù×÷ϵͳ»·¾³
²é¿´Ö÷»úÃû
$ hostname --fqdn
cloudstack-server-1
$ sudo vim /etc/hosts |
Ìí¼ÓÒÔϼǼ
10.6.203.10 cloudstack-server-1 |
°²×°Ê±¼ä·þÎñÆ÷
$ sudo apt-get install openntpd |
4.2 ÏÂÔØ°²×° CloudStack Management Server
Óë vhd-util
°²×°CloudStack Management Server
$ sudo apt-get install cloud-client |
½«Óû§cloud¼ÓÈëµ½sudoÓû§×é //CloudStackĬÈÏÒÔcloudÓû§Æô¶¯£¬µ«Ä¬ÈÏ»áͨ¹ýsudoÒÔrootÉí·Ý¹ÜÀíÏà¹ØÎļþÓëĿ¼
$ sudo adduser cloud sudo |
ÅäÖÃsudoÓû§×éÃâÃÜÂëÇл» //ͬÑùÊÇΪÁ˽â¾öºÍÉÏÃæÏàͬµÄȨÏÞÎÊÌâ
$ sudo visudo %sudo ALL=(ALL:ALL) NOPASSWD:ALL |
³õʼ»¯rootÓû§ÃÜÂ룬Èçcloudstack //CloudStackĬÈÏÐèÒªrootȨÏÞÔ¶³ÌSSHÁ¬½Óµ½Agent
$ sudo -i # passwd 1 Enter new UNIX password: 2 Retype new UNIX password: 3 passwd: password updated successfully # chmod 777 /root //ΪÁ˽â¾öÒ»¸öbug£¬¼´CloudStackĬÈÏÒÔcloudÓû§Æô¶¯£¬
µ«È´¶ÁÈ¡µÄÊÇÆô¶¯·þÎñµÄÓû§µÄhomeĿ¼ÓÃÀ´´æ·ÅһЩÁÙʱÎļþ£¬´Ó¶øµ¼ÖÂȨÏÞÎÊÌâ
$ exit |
ÏÂÔØvhd-util
$ sudo wget http://download.cloud.com.s3.amazonaws.com/tools/vhd-util
$ sudo mv vhd-util /usr/lib/cloud/common/scripts/vm/hypervisor/xenserver/ |
4.3 °²×°ÅäÖÃMySQLÊý¾Ý¿â
$ sudo apt-get install mysql-server |
ÔÚµ¯³öµÄ½çÃæÖÐÊäÈëÃÜÂ룬Èç: cloudstack
ÐÞ¸ÄMySQLÅäÖÃÎļþ²ÎÊý
$ sudo vim /etc/mysql/my.cnf |
ÔÚ[mysqld]Ä£¿éÖмÓÈëÒÔϲÎÊý
1 innodb_rollback_on_timeout=1 2 innodb_lock_wait_timeout=600
3 max_connections=350 4 log-bin=mysql-bin 5 binlog-format = 'ROW' |
ÖØÆôMySQL
$ sudo service mysql restart |
³õʼ»¯Êý¾Ý¿âcloud
$ sudo cloud-setup-databases cloud:cloudstack@localhost
--deploy-as=root:cloudstack -e file -m cloudstack -k cloudstack |

4.4 ÅäÖÃNFS¹²Ïí
CloudStack ÐèÒªÒ»¸öµØ·½À´´æ·ÅPrimarºÍSecondary Storage£¬¹Ù·½ÍƼöʹÓÃNFS¹²Ïí¡£
°²×°NFS
$ sudo apt-get install nfs-common nfs-kernel-server |
´´½¨Ä¿Â¼
$ sudo mkdir -p /export/primary
$ sudo mkdir -p /export/secondary |
±à¼NFSÅäÖÃÎļþ
$ sudo vim /etc/exports 1 /export *(rw,async,no_root_squash,no_subtree_check) |
Ë¢ÐÂÅäÖÃ
¹ÒÔØ²âÊÔNFS¹²Ïí
$ sudo mkdir /mnt/primary $ sudo mount -t nfs 10.6.203.10:/export/primary /mnt/primary $ sudo mkdir /mnt/secondary $ sudo mount -t nfs 10.6.203.10:/export/secondary /mnt/secondary $ df -h 1 Filesystem Size Used Avail Use% Mounted on 2 ... 3 10.6.203.10:/export/primary 434G 7.8G 404G 2% /mnt/primary 4 10.6.203.10:/export/secondary 434G 7.8G 404G 2% /mnt/secondary $ sudo vim /etc/fstab |
Ôö¼ÓÒÔÏÂÄÚÈÝ
1 10.6.203.10:/export/primary /mnt/primary nfs rw,tcp,intr 0 1 2 10.6.203.10:/export/secondary /mnt/secondary nfs rw,tcp,intr 0 1 |
4.5 ×¼±¸System VM Template
ÎÒÃÇÑ¡ÔñKVM×÷ΪÐéÄ⻯ÒýÇæ
$ sudo /usr/lib/cloud/common/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary \ -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F |
Õû¸ö¹ý³Ì´ó¸ÅÐèÒª»¨·Ñ°ë¸öСʱ
01 --2012-11-12 14:49:18-- http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 02 Resolving download.cloud.com (download.cloud.com)... 207.171.189.81 03 Connecting to download.cloud.com (download.cloud.com)|207.171.189.81|:80... connected. 04 HTTP request sent, awaiting response... 200 OK 05 Length: 286036668 (273M) [binary/octet-stream] 06 Saving to: `/usr/lib/cloud/common/scripts/storage/secondary/4aae2546-33e1-4784-9e69-09e1ef9d6fb4.qcow2' 07 08 100%[===>] 286,036,668 188K/s in 24m 53s 09 10 2012-11-12 15:14:13 (187 KB/s) -
`/usr/lib/cloud/common/scripts/storage/secondary/
4aae2546-33e1-4784-9e69-09e1ef9d6fb4.qcow2' saved [286036668/286036668] 11 12 Uncompressing to /usr/lib/cloud/common/scripts/storage/secondary
/4aae2546-33e1-4784-9e69-09e1ef9d6fb4.qcow2.tmp (type bz2)...could take a long time 13 Moving to /mnt/secondary/template/tmpl/1/3///4aae2546-33e1-4784-9e69-09e1ef9d6fb4.qcow2...could take a while 14 Successfully installed system VM template to /mnt/secondary/template/tmpl/1/3/ |
5. °²×°ÅäÖÃKVMÐéÄ⻯HostÖ÷»ú
5.1 °²×°ÅäÖÃAgent
$ sudo apt-get install cloud-agent |
5.2 °²×°ÅäÖÃlibvirt
$ sudo vim /etc/libvirt/libvirtd.conf |
ÐÞ¸ÄÒÔÏÂÅäÖÃ
1 listen_tls = 0 2 listen_tcp = 1 3 tcp_port = "16059" 4 auth_tcp = "none" 5 mdns_adv = 0 |
²é¿´ÅäÖÃ
$ cat /etc/libvirt/libvirtd.conf | grep -v '#' | grep -v "^$" 1 listen_tls = 0 2 listen_tcp = 1 3 tcp_port = "16509" 4 mdns_adv = 0 5 unix_sock_group = "libvirtd" 6 unix_sock_rw_perms = "0770" 7 auth_unix_ro = "none" 8 auth_unix_rw = "none" 9 auth_tcp = "none" $ sudo vim /etc/init/libvirt-bin.conf |
ÐÞ¸ÄÒÔϲÎÊý
1 env libvirtd_opts="-d -l" # sudo vim /etc/libvirt/qemu.conf |
ÐÞ¸ÄÒÔϲÎÊý
ÖØÆô·þÎñ
$ sudo service libvirt-bin restart |
5.3 ÅäÖð²È«²ßÂÔ
$ sudo dpkg --list "apparmor" 1 Desired=Unknown/Install/Remove/Purge/Hold 2 | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend 3 |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) 4 ||/ Name Version Description 5 +++-========================================== 6 ii apparmor 7 2.7.102-0ubuntu3.1 User-space parser utility for AppArmor $ sudo ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable/ $ sudo ln -s /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper /etc/apparmor.d/disable/ $ sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.libvirtd $ sudo apparmor_parser -R /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper |
5.4 ÅäÖÃÍøÇÅ
ÐèҪעÒâµÄÊÇ£¬¹Ù·½Îĵµ¸ø³öµÄÅäÖòÎÊý»áµ¼ÖÂÍøÂç²»¿ÉÓá£
ÕýÈ·µÄÅäÖÃÊǽ«ÎïÀíÍø¿¨ÉèÖÃΪmanual£¬È»ºóÔÚÐéÄâÍø¿¨ÉÏÉèÖÃIP²¢ÇŽӵ½ÎïÀíÍø¿¨ÉÏ¡£
$ sudo vim /etc/network/interfaces 01 # This file describes the network interfaces available on your system 02 # and how to activate them. For more information, see interfaces(5). 03 04 # The loopback network interface 05 auto lo 06 iface lo inet loopback 07 08 # The primary network interface 09 auto eth0 10 iface eth0 inet manual 11 12 # Public network 13 auto cloudbr0 14 iface cloudbr0 inet static 15 address 10.6.203.10 16 netmask 255.255.0.0 17 gateway 10.6.255.1 18 bridge_ports eth0 19 bridge_fd 5 20 bridge_stp off 21 bridge_maxwait 1 22 dns-nameservers 10.6.255.253 61.139.2.69 23 24 # Private network 25 auto cloudbr1 26 iface cloudbr1 inet manual 27 bridge_ports eth0 28 bridge_fd 5 29 bridge_stp off 30 bridge_maxwait 1 $ sudo /etc/init.d/networking restart $ sudo /etc/init.d/networking start |
5.5 ÅäÖ÷À»ðǽ
$ sudo ufw allow proto tcp from any to any port 22 $ sudo ufw allow proto tcp from any to any port 80 $ sudo ufw allow proto tcp from any to any port 1798 $ sudo ufw allow proto tcp from any to any port 16509 $ sudo ufw allow proto tcp from any to any port 5900:6100 $ sudo ufw allow proto tcp from any to any port 49152:49216 |
6. Óû§½çÃæ
½ûÓÃϵͳĬÈϵÄtomcat·þÎñ
$ sudo /etc/init.d/tomcat6 stop 1 * Stopping Tomcat servlet engine tomcat6 [ OK ] $ sudo update-rc.d -f tomcat6 remove 1 Removing any system startup links for /etc/init.d/tomcat6 ... 2 /etc/rc0.d/K08tomcat6 3 /etc/rc1.d/K08tomcat6 4 /etc/rc2.d/S92tomcat6 5 /etc/rc3.d/S92tomcat6 6 /etc/rc4.d/S92tomcat6 7 /etc/rc5.d/S92tomcat6 8 /etc/rc6.d/K08tomcat6 |
Æô¶¯cloud-management
$ cd ~ $ sudo /etc/init.d/cloud-management restart 1 * Starting CloudStack-specific Tomcat servlet engine cloud-management [ OK ] |
µÇ½Óû§½çÃæ
http://10.6.203.10:8080/client/ |
ĬÈÏÕ˺ÅÃÜÂë

¿ÉÒÔ¿´µ½ÈçÏÂͼËùʾÏòµ¼½çÃæ

Ñ¡Ôñ×ó±ßµÄ°´Å¥"I have used CloudStack
before, skip this guide"¡£
¼´½øÈëÈçÏÂͼËùʾÓû§½çÃæ

7. ÅäÖÃManagement Server
Õû¸öManagement ServerµÄ¼Ü¹¹ÈçÏÂ


7.1 ÐÞ¸ÄWeb¹ÜÀíԱĬÈÏÃÜÂë
怫 http://10.6.203.10:8080/client
½øÈë Accounts - admin - View Users - admin
Ò³Ãæ£¬µã»÷ Change Password

½Ó×ÅÎÒÃǽøÈëµ½ Infrastructure ½çÃæ£¬¿ÉÒÔ¿´µ½Ä¿Ç°Ã»ÓÐÈκÎÉèÖã¬ËùÓÐÊýÄ¿¶¼ÊÇ0¡£

7.2 ´´½¨Ïà¹ØÅäÖÃ
ÔÚÓû§½çÃæÖÐͨ¹ýÏòµ¼£¬ÒÀ´Î´´½¨
"Zone" - "Add Zone" - "Physical Network" - "Pod" - "Guest Traffic" - "Storage Traffic" - "Cluster" - "Host" - "Primary Storage" - "Secondary Storage" |
ÈçÏÂÁÐͼƬËùʾ£º
Ñ¡ÔñBasic°²×°Ïòµ¼

ÅäÖÃZone

ÅäÖÃPhysical Network

ÅäÖÃPod£¬´Ë´¦µÄÍøÂçÉèÖÃÖ÷ÒªÓÃÓÚCloudStackÄÚ²¿µÄ¹ÜÀíͨÐÅ

ÅäÖÃGuest Traffic£¬´Ë´¦µÄÍøÂçÉèÖÃÓÃÓÚ¸øInstance·ÖÅäIP

ÅäÖÃStorage Traffic£¬´Ë´¦µÄÍøÂçÉèÖÃÓÃÓڴ洢ϵͳ

ÅäÖÃCluster

ÅäÖÃHost£¬¼´AgentÖ÷»ú£¬ÐéÄâ»úµÄËÞÖ÷»ú£¬Óû§ÃûÃÜÂëÓëSSHÏàͬ

ÅäÖÃÖ÷´æ´¢¿Õ¼ä£¬ÎÒÑ¡ÔñÁ˱¾µØmountµã£¬¼´mount¹ýºóµÄ±¾µØÂ·¾¶£¬·Ö²¼Ê½²¿Êðʱ¿ÉÒÔÑ¡ÔñNFSģʽ

ÅäÖø½Êô´æ´¢¿Õ¼ä£¬½öÖ§³ÖNFSģʽ

ÅäÖÃÍê³É£¬µã»÷"Launch zone"

¿ÉÒÔ¿´µ½Õû¸ö´´½¨¹ý³Ì£¬×îºó´´½¨Íê³ÉÖ®ºóÌáʾÊÇ·ñÆôÓÃZone£¬Ñ¡ÔñYes

|