云计算-openstack简介
云计算
云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。
可以理解为:把任何IT资源(包括网络,服务器硬件,存储,开发平台,应用软件,服务等)整合到一起,为用户提供按需分配。象自来水,电这种资源一样,用多少付多少钱。但这里面包括了大量的运算(比如用多少资源,如何分配指定的资源,如何计费等)
--重点关键词:资源整合(资源高效利用),弹性按需分配(计费)
一个刚成立的公司,需要做简单的网站或其它基本服务,从以前到现在的选择有
1,服务器拖管
2,服务器租用
3,虚拟主机 --一般来说只能用于web
2,VPS --把物理服务器虚拟化成多个虚拟机,租给用户使用
5,云主机 --相当于在VPS的基础上做了加强,如:随时在线修改资源
Iaas infrastructure as a service,基础架构即服务(给客户提供基础架构,以虚拟化技术为基础);上面的云主机就属于这一种。这一类的用户一般为系统管理员。
Paas platfrom as a service ,平台即服务(用户是看不到虚拟机的,虚拟的是类似开发库,开发接口,开发工具;能自动开发,调试及安装应用程序);简单来说,就是把开发框架,开发架构做成云资源。这一类的用户一般为开发人员。
Saas software as a service,软件即服务 (提供给一个如浏览器的客户端,就可以做文本编辑,玩游戏,搭建你的服务);这一类的用户一般为普通用户。
iaas 之 虚拟机
saas 之 vsftp
paas 之 lnmp
公有云
私有云
混合云
openstack(python语言开发)就是iaas的一种,可以理解成一种虚拟化管理工具(如果公司有强大的二次开发能力,可以开发出不同的自动化管理工具)
apache基金会也有cloudstack
还有一些如:eucalyptus,opennebula,nimbus,openQRM等
redhat有两种:
iaas:openstack
paas:openshift
红帽的云计算平台,可以免费申请使用(也有付费空间)
https://www.openshift.com/
http://www.openstack.org/
http://docs.openstack.org/
版本发展(差不多半年就发布一次)
A
B
C
D
E
F
G
H
Icehouse
juno
kilo
liberty
Mitaka
Newton
Ocata
-------------------------------------------------------------------------------------------------------
kvm准备一台centos7.3 (硬盘最好50G或以上,内存最好5G或以上)
准备工作:
1,ip静态(关闭NetworkManager),并且要能上公网
2,主机名配置和绑定
# hostnamectl set-hostname --static openstack.cluster.com
# vim /etc/hosts
172.16.2.10 openstack.cluster.com --主机名和ip地址一定要对应正确
3,时间同步
4,关闭防火墙,selinux
5,配置yum (本地iso源和163源)
但因为公网速度慢,我这里全部都下载下来了,所以都配置下面的yum配置文件
# vim /etc/yum.repos.d/openstack.repo
[openstack]
name=openstack
baseurl=ftp://172.16.2.5/openstack
enabled=1
gpgcheck=0
[centos163]
name=centos163
baseurl=ftp://172.16.2.5/centos163
enabled=1
gpgcheck=0
第一步:安装openstack-packstack包
# yum clean all
# yum makecache fast
# yum install openstack-packstack
第二步:开始openstack(单节点rdo)安装
# packstack --allinone
开始一键安装,但是很可能会出现各种错误,可以通过报错或者把报错贴到网上查看解决方法,解决完后,就不要直接再使用packstack --allinone来装了,可以使用安装的answer-file来再次安装
只要你开始安装过,会在当前目录产生一个answer-file,解决完问题,就使用类似下面的命令再次继续安装
# packstack --answer-file=packstack-answers-xxxxxxxx.xxxxx.txt (xxxxx代表你产生answer-file的时间)
最后报如下的信息就表示安装成功了
**** Installation completed successfully ******
Additional information:
* Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
* File /root/keystonerc_admin has been created on OpenStack client host 172.16.2.10. To use the command line tools you need to source the file.
* To access the OpenStack Dashboard browse to http://172.16.2.10/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
* The installation log file is available at: /var/tmp/packstack/20170630-114336-1X4GJN/openstack-setup.log
* The generated manifests are available at: /var/tmp/packstack/20170630-114336-1X4GJN/manifests
====================================================
安装完成后
[root@openstack ~]# cat /root/keystonerc_admin
unset OS_SERVICE_TOKEN
export OS_USERNAME=admin --图形登陆界面的用户名admin
export OS_PASSWORD=143acf3c84084b1a --图形登陆界面的admin用户密码
export OS_AUTH_URL=http://172.16.2.10:5000/v2.0
export PS1='[\u@\h \W(keystone_admin)]\$ '
export OS_TENANT_NAME=admin
export OS_REGION_NAME=RegionOne
可以使用url路径地址http://172.16.2.10/dashboard来进行图形管理登录界面
用户名:admin
密码: --对应在上面的keystonerc_admin去找
-----------------------------------------------------------------------------------------------------------------
dashboard界面操作
--ocata版本dashboard界面创建云主机看不到实例类型(应该是浏览器版本兼容问题,rhel6.5的firefox访问不到,centos7.3的firefox可以)
下面使用命令来启动一个实例(云主机)
第一步:创建一个自定义的类型
[root@openstack ~]# source /root/keystonerc_admin --使用此用户登录进行操作
[root@openstack ~(keystone_admin)]# openstack flavor create --id 0 --vcpus 2 --ram 1024 --disk 10 m1.nano --创建一个实例类型(定义cpu核数为1,内存大小为512M,磁盘大小为1G)
# openstack flavor list
+----+-----------+-------+------+-----------+-------+-----------+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+-----------+-------+------+-----------+-------+-----------+
| 0 | m1.nano | 1024 | 10 | 0 | 2 | True |
| 1 | m1.tiny | 512 | 1 | 0 | 1 | True |
| 2 | m1.small | 2048 | 20 | 0 | 1 | True |
| 3 | m1.medium | 4096 | 40 | 0 | 2 | True |
| 4 | m1.large | 8192 | 80 | 0 | 4 | True |
| 5 | m1.xlarge | 16384 | 160 | 0 | 8 | True |
+----+-----------+-------+------+-----------+-------+-----------+
第二步:创建ssh登录的空密码密钥
# ssh-keygen -q -N ""
Enter file in which to save the key (/root/.ssh/id_rsa):
# openstack keypair create --public-key ~/.ssh/id_rsa.pub keypair1
# openstack keypair list
+----------+-------------------------------------------------+
| Name | Fingerprint |
+----------+-------------------------------------------------+
| keypair1 | f8:33:06:04:af:bf:85:13:08:35:8d:3f:04:8a:f2:8a |
+----------+-------------------------------------------------+
第三步:默认情况下,创建的云主机,不允许ping,也不允许ssh,所以需要修改默认的安全组策略,加上允许ping和允许ssh
# openstack security group rule create --proto icmp default
# openstack security group rule create --proto tcp --dst-port 22 default
# openstack security group list
+--------------------------------------+---------+------------------------+---------+
| ID | Name | Description | Project |
+--------------------------------------+---------+------------------------+---------+
| 0413f058-2ce7-42af-838d-f11e05aa3fbc | default | Default security group | |
+--------------------------------------+---------+------------------------+---------+
第四步:创建镜像(可选)
我宿主机共享了一个fedora22的测试镜像,地址如下:
http://172.16.2.9/arch/openstack_image/Fedora-Cloud-Base-22-20150521.x86_64.qcow2
将其拷到openstack服务器上,比如放到/root/目录,则可以使用下面的命令创建新的image
# openstack image create fedora22 --file /root/Fedora-Cloud-Base-22-20150521.x86_64.qcow2
# openstack image list
+--------------------------------------+----------+--------+
| ID | Name | Status |
+--------------------------------------+----------+--------+
| f9c5e3e4-25df-4c4e-b9e8-d4936a5d9d5f | cirros | active |
| 2632de0b-184d-45d6-adcf-d7eb9e737d47 | fedora22 | active |
+--------------------------------------+----------+--------+
第五步:创建云主机实例
下面创建一个云主机实例(名称为instance01;类型为m1.nano;镜像为cirros;安全组为default;密钥对为keypair1)
# openstack server create --flavor m1.nano --image fedora22 --security-group default --key-name keypair1 instance01
# openstack server list