Openstack计算-存储-控制分离与计算节点的在线添加node
实验环境:red hat linux 6.5mysql
Host: 192.168.122.19 server19.example.comlinux
Compute node 1:192.168.122.3 server3.example.comweb
Compute node 2 : 192.168.122.4 server4.example.comsql
Storage node : 192.168.122.5 server5.example.com数据库
要求:iptable -Fswift
架构解释:vim
计算节点:即虚拟机最终跑的节点,主要进程:openstcak-nova-compute安全
这个节点资源消耗主要是cpu和内存。因此能够在实际部署的时候调大点网络
存储节点:这里我单指块存储方案(cinder),主要进程:openstack-cinder-volume
这里是未来云主机启动后,云主机所添加的额外的磁盘的资源池(就是虚 拟机添加多大的磁盘消耗的都是这个)。openstack采用了lvm的磁盘管理 方式。云主机只认名为cinder-volumes的vg卷【即只在这个名字的卷下划分 存储空间给云主机】,若是你Host安装的时候没有分这个卷,它默认会从 根磁盘上削减一部分出来,而后建立这个卷。
控制节点:有不少控制进程都在这里个节点上。这里主要想强调,网络即neutron部分。
计算节点上的云主机的数据包都会被转发到neutron-server所启动的节点上。
Neutron-sevrer通常会启动在网络控制节点。因此网络控制节点必须使用be- ex的桥接接口,所采用的网络结构必须是vlan。【local网络只在你玩all in one的时候生效】火墙策略在创建后会自动帮你重写。
1.配置好两台机子的yum源[目录地址由你本身实际放的位置设定]:【All】
#vim /etc/yum.repo.d/openstack.repo
...
[openstack]
name=openstack
baseurl=ftp://192.168.122.1/pub/openstack/openstack
gpgcheck=0
…
2.更新机子的iproute:【All】
#yum update -y
注:若是缺乏这一步,可能你机子上有关路由的进程起不来。如:neutron-l3-agent这个nuetron的网络进程。neutron-l3-agent是主要创建在三层网络上的,主要完成对数据包的转发【DNAT和SNAT】。因此它对路由软件有要求。
让内核从新加载
#reboot
3.安装pakcstack【Host】
#yum install openstack-packstack -y
4.虚拟机添加网卡并设定网络 【All】
#cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
#vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
重启网卡
#service network restart
5..生成定制文件和修改定制文件 【Host】
#packstack –gen-answer-file=/root/answer.txt
#vim /root/answer.txt
…
#确认安装swift对象存储
CONFIG_SWIFT_INSTALL=y
...
#设置ntp时间同步【这一步很重要,若是时间不一样步两边的信息确定不对称】
CONFIG_NTP_SERVERS=192.168.122.1
...
#指定计算节点
CONFIG_NOVA_COMPUTE_HOSTS=192.168.122.3
…
#由于控制节点与外端有链接,数据库放上面不安全,因此我放到了存储节点
CONFIG_MYSQL_HOST=192.168.122.5
…
#设定mysql用户密码
CONFIG_MYSQL_PW=redhat
#肯定admin用户的密码
CONFIG_KEYSTONE_ADMIN_PW=redhat
…
#配置网络
CONFIG_NEUTRON_OVS_TENANT_NETWORK_TYPE=vlan
CONFIG_NEUTRON_OVS_VLAN_RANGES=physnet1:1:4094
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-eth1
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-eth1:eth1
6.计算节点设定时间同步:【Compute node 1 , Compute node 2 and Storage Node】
#yum install -y ntp
#vim /etc/ntp.conf
…
restrict 192.168.122.1
server 192.168.122.1 iburst
#/etc/init.d/ntpd start
7.存储节点配置iscsi磁盘共享:【Storage Node】
#yum install -y scsi-target-utils-1.0.24-10.el6.x86_64
添加一块磁盘
#fdisk -cu /dev/vda #分处一块vda1
#pvcreate /dev/vda1
#vgcreate vg1 /dev/vda1
#lvcreate -L 20G /dev/vg1 -n lv1
#mkfs.ext4 /dev/vg1/lv1
以后写策略文件:
#vim /etc/tgt/targets.conf
...
<target iqn.2014-08.com.example:server.target1>
#the disk you want to share
backing-store /dev/vg1/lv1
#the ip who allow to connet with you
initiator-address 192.168.122.19
</target>
…
#tgt-adm -s#查看共享信息
8.Host注册和使用iscsi磁盘 【Host】
安装iscsi工具
#yum install -y iscsi-initiator-utils-6.2.0.873-10.el6.x86_64
#iscsiadm -m discovery -s st -p 192.168.122.5
#iscsiadm -m node -l -p 192.168.122.5
#fdisk -l#查看是否成功获取磁盘【看大小,个人是vda】
#fdisk -cu /dev/vda #创建一个vda1
#pvcreate /dev/vda1
#vgcreate cinder-volumes /dev/vda1 #vg名字不能变
9.安装openstack :【Host】
#packstack --answer-file=/root/answer.txt
【输入密码后就正确安装】
10.安装完成后现象:
【Host】
#nova-manage service list 2> /dev/null
Binary Host Zone Status State Updated_At
nova-consoleauth server19.example.com internal enabled :-) 2014-08-14 15:23:50
nova-scheduler server19.example.com internal enabled :-) 2014-08-14 15:23:55
nova-conductor server19.example.com internal enabled :-) 2014-08-14 15:23:51
nova-cert server19.example.com internal enabled :-) 2014-08-14 15:23:51
nova-compute server3.example.com nova enabled :-) 2014-08-14 15:23:13
【Compute Node】
#nova-manage service list 2> /dev/null
Binary Host Zone Status State Updated_At
nova-consoleauth server19.example.com internal enabled :-) 2014-08-14 15:23:50
nova-scheduler server19.example.com internal enabled :-) 2014-08-14 15:23:55
nova-conductor server19.example.com internal enabled :-) 2014-08-14 15:23:51
nova-cert server19.example.com internal enabled :-) 2014-08-14 15:23:51
nova-compute server3.example.com nova enabled :-) 2014-08-14 15:23:13
11.尝试用Firefox登陆web管理界面:
成功启动云主机并能够远程登陆--成功
12.在线添加Compute Node 2: 【Compute Node 2】
#yum install -y openstcak-nova-compute
#cp /etc/nova/nova.conf /etc/nova/nova.conf.orig
#scp 192.168.122.3:/etc/nova/nova.conf /etc/nova/
#vim /etc/nova/nova.conf
…
vncserver_listen=192.168.122.4
…
vncserver_proxyclient_address=192.168.122.4
…
sql_connection=mysql://nova:redhat@192.168.122.5/nova
#/etc/init.d/openstack-nova-compute start
#nova-manage service list 2> /dev/null
Binary Host Zone Status State Updated_At
nova-consoleauth server19.example.com internal enabled :-) 2014-08-14 15:23:50
nova-scheduler server19.example.com internal enabled :-) 2014-08-14 15:23:55
nova-conductor server19.example.com internal enabled :-) 2014-08-14 15:23:51
nova-cert server19.example.com internal enabled :-) 2014-08-14 15:23:51
nova-compute server3.example.com nova enabled :-) 2014-08-14 15:23:13
nova-compute server4.example.com nova enabled :-) 2014-08-14 15:23:13
13.配置Compute Node2 的网络结构:【Compute Node2】
确保你的机子已经有eth1的网络接口
安装neutron-openvswitch
#yum install -y openstack-neutron-openvswitch
作备份
#cp /etc/neutron/neutron.conf /etc/neutron/neutron.conf.orig
#cp /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini.orig
直接拷贝过来
#scp 192.168.122.3:/etc/neutron/neutron.conf /etc/neutron/neutron.conf
#scp 192.168.122.3:/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
启动
#/etc/init.d/openvswitch start
#chkconfig openvswitch on
添加网络接口
#ovs-vsctl add-br br-int
#ovs-vsctl add-br br-eth1
#ovs-vsctl add-port br-eth1 eth1
#service neutron-openvswitch-agent start
#chkconfig neutron-openvswitch-agent on
#chkconfig neutron-ovs-cleanup on
14.测试Compute Node2
首先关闭原来的Compute Node1
#nova-mange service disable --host server3.example.com --service nova-manage
以后web启动另外一个云主机,正常启动后
#virsh list
应该能够看见一台虚拟机正在运行,若是能远程登陆--成功