设为首页 收藏本站
查看: 1565|回复: 0

[经验分享] OpenStack controller HA

[复制链接]

尚未签到

发表于 2015-4-12 16:17:32 | 显示全部楼层 |阅读模式
  主机分配:
  主机名             IP(Static)                        系统                                           配置                          角色

  controller01    192.168.20.21    CentOS-6.4-x86_64-minimal         2CPU,4G,50G,1网卡          控制节点01

  controller02    192.168.20.22    CentOS-6.4-x86_64-minimal         2CPU,4G,50G,1网卡          控制节点02
  myslserver      192.168.20.25    CentOS-6.4-x86_64-minimal         2CPU,4G,50G,1网卡          数据库
  VIP:192.168.20.20
  1.数据库配置
  (1).yum安装mysql
  [iyunv@myslserver ~]# yum -y install mysql mysql-server
  (2).启动数据库,设置开机启动
  [iyunv@myslserver ~]# service mysqld start
  [iyunv@myslserver ~]# chkconfig mysqld on
  (3).设置数据库密码
  [iyunv@myslserver ~]# mysqladmin -uroot password 'passwd'
  (4).创建keystone、glance、nova、glance数据库
  [iyunv@myslserver ~]# mysql -u root -ppasswd
  mysql> create database keystone;
  mysql> grant all on keystone.* to 'keystone'@'%' identified by 'keystone';
  mysql> create database glance;
  mysql> grant all on glance.* to 'glance'@'%' identified by 'glance';
  mysql> create database nova;
  mysql> grant all on nova.* to 'nova'@'%' identified by 'nova';
  mysql> create database cinder;
  mysql> grant all on cinder.* to 'cinder'@'%' identified by 'cinder';
  mysql> flush privileges;
  mysql> quit;
  2.控制节点配置
  以下为Controller配置,两个节点配置基本相同,在此以controller01配置举例:
  配置说明:
  黑色:表示controller01,02相同配置。
  蓝色:表示controller01的配置。
  绿色:表示controller02的配置。
  橙色:只在一个节点上执行即可。
  2.1.初始化配置
  (1).设置hosts文件
  [iyunv@controller01 ~]# vi /etc/hosts
  192.168.20.20   controller
  192.168.20.21   controller01
  192.168.20.22   controller02
  192.168.20.25   mysqlserver
  (2).设置dns解析,便于yum更新
  [iyunv@controller01 ~]# vi /etc/resolv.conf
  nameserver 202.106.0.20
  nameserver 202.96.69.38
  nameserver 8.8.8.8
  (3).yum管理工具
  [iyunv@controller01 ~]# yum -y install wget parted ntpdate
  (4).磁盘分区,用于gluster存储
  [iyunv@controller01 ~]# parted /dev/vda
  GNU Parted 2.1
  使用 /dev/vda
  Welcome to GNU Parted! Type 'help' to view a list of commands.
  (parted) print free
  Model: Virtio Block Device (virtblk)
  Disk /dev/vda: 53.7GB
  Sector size (logical/physical): 512B/512B
  Partition Table: msdos
  Number  Start   End     Size    Type     File system     标志
          32.3kB  1049kB  1016kB           Free Space
   1      1049kB  211MB   210MB   primary  ext4            启动
   2      211MB   20.4GB  20.2GB  primary  ext4
   3      20.4GB  21.5GB  1074MB  primary  linux-swap(v1)
          21.5GB  53.7GB  32.2GB           Free Space
  (parted) mkpart                                                           
  分区类型?  primary/主分区/extended/扩展分区? extended                    
  起始点? 21.5G                                                            
  结束点? 53.7G                                                            
  警告: WARNING: the kernel failed to re-read the partition table on /dev/vda (设备或资源忙).  As a result, it may not reflect all of your changes until after reboot.
  (parted) mkpart                                                           
  分区类型?  logical/逻辑分区? logical                                    
  文件系统类型?  [ext2]? ext4                                             
  起始点? 21.5G                                                            
  结束点? 42.7G                                                            
  警告: WARNING: the kernel failed to re-read the partition table on /dev/vda (设备或资源忙).  As a result, it may not reflect all of your changes until after reboot.
  (parted) mkpart                                                           
  分区类型?  logical/逻辑分区? logical                                    
  文件系统类型?  [ext2]? ext4                                             
  起始点? 42.7G                                                            
  结束点? 53.7G                                                            
  警告: WARNING: the kernel failed to re-read the partition table on /dev/vda (设备或资源忙).  As a result, it may not reflect all of your changes until after reboot.
  (parted) print free                                                      
  Model: Virtio Block Device (virtblk)
  Disk /dev/vda: 53.7GB
  Sector size (logical/physical): 512B/512B
  Partition Table: msdos
  Number  Start   End     Size    Type      File system     标志
          32.3kB  1049kB  1016kB            Free Space
   1      1049kB  211MB   210MB   primary   ext4            启动
   2      211MB   20.4GB  20.2GB  primary   ext4
   3      20.4GB  21.5GB  1074MB  primary   linux-swap(v1)
   4      21.5GB  53.7GB  32.2GB  extended                  lba
   5      21.5GB  42.7GB  21.2GB  logical
   6      42.7GB  53.7GB  11.0GB  logical
  (parted) quit      
  [iyunv@controller01 ~]# reboot
  
  [iyunv@controller01 ~]# mkfs -t ext4 /dev/vda5
  [iyunv@controller01 ~]# mkdir /data
  [iyunv@controller01 ~]# echo '/dev/vda5                                 /data                   ext4    defaults        0 0' >> /etc/fstab
  [iyunv@controller01 ~]# mount /dev/vda5 /data
  2.2.安装配置Gluster
  (1).设置gluster源
  [iyunv@controller01 ~]# wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo
  (2).yum安装gluster
  [iyunv@controller01 ~]# yum -y install glusterfs-server glusterfs
  (3).启动gluster服务,设置开机启动
  [iyunv@controller01 ~]# service glusterd start
  [iyunv@controller01 ~]# chkconfig glusterd on
  (4).添加存储节点
  [iyunv@controller01 ~]# gluster peer probe controller02
  [iyunv@controller02 ~]# gluster peer probe controller01
  (5).查看节点状态
  [iyunv@controller01 ~]# gluster peer status
  (6).创建volume并启动
  [iyunv@controller01 ~]# gluster volume create vol-storage replica 2 controller01:/data/gluster controller02:/data/gluster
  [iyunv@controller01 ~]# gluster volume start vol-storage
  
(7).关闭gluster的nfs属性
[iyunv@controller01 ~]# gluster volume set vol-storage nfs.disable on
  (8).挂载volume
  [iyunv@controller01 ~]# mkdir -p /openstack
  [iyunv@controller01 ~]# mount -t glusterfs controller01:/vol-storage /openstack
  [iyunv@controller01 ~]# echo "controller01:/vol-storage /openstack glusterfs defaults,_netdev 0 0" >> /etc/fstab
  [iyunv@controller02 ~]# mount -t glusterfs controller02:/vol-storage /openstack
  [iyunv@controller02 ~]# echo "controller02:/vol-storage /openstack glusterfs defaults,_netdev 0 0" >> /etc/fstab
  2.3.安装配置haproxy,keepalived
  (1).修改sysctl.conf配置文件
  [iyunv@controller01 ~]# vi /etc/sysctl.conf
  
  net.ipv4.ip_forward = 1
  net.ipv4.ip_nonlocal_bind = 1
  net.ipv4.conf.all.rp_filter = 0
  net.ipv4.conf.default.rp_filter = 0
  [iyunv@controller01 ~]# sysctl -p

  (2).yum安装haproxy,keepalived
  [iyunv@controller01 ~]# yum -y install keepalived haproxy
  (3).配置keepalived
  [iyunv@controller01 ~]# cp -av /etc/keepalived/keepalived.conf  /etc/keepalived/keepalived.conf_bak
  [iyunv@controller01 ~]# echo "" > /etc/keepalived/keepalived.conf
  [iyunv@controller01 ~]# vi /etc/keepalived/keepalived.conf
  
  vrrp_script haproxy-check {
      script "killall -0 haproxy"
      interval 2
      weight 10
  }
  vrrp_instance openstack-vip {
      state BACKUP
      priority 102
      interface eth0
      virtual_router_id 80
      advert_int 3
      virtual_ipaddress {
          192.168.20.20
      }
      track_script {
          haproxy-check
      }
  }
  (4).配置haproxy
  [iyunv@controller01 ~]# cp -av /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg_bak
  [iyunv@controller01 ~]# echo "" > /etc/haproxy/haproxy.cfg
  [iyunv@controller01 ~]# vi /etc/haproxy/haproxy.cfg
  
  global
      daemon
  

  defaults
      mode http
      maxconn 10000
      timeout connect 10s
      timeout client 10s
      timeout server 10s
  

  frontend horizon-http-vip
      bind 192.168.20.20:80
      default_backend horizon-http-api
  

  frontend keystone-admin-vip
      bind 192.168.20.20:35357
      default_backend keystone-admin-api
  

  frontend keystone-public-vip
      bind 192.168.20.20:5000
      default_backend keystone-public-api
  

  frontend quantum-vip
      bind 192.168.20.20:9696
      default_backend quantum-api
  

  frontend glance-vip
      bind 192.168.20.20:9191
      default_backend glance-api
  

  frontend glance-registry-vip
      bind 192.168.20.20:9292
      default_backend glance-registry-api
  

  frontend nova-ec2-vip
      bind 192.168.20.20:8773
      default_backend nova-ec2-api
  

  frontend nova-novnc-vip
      bind 192.168.20.20:6080
      default_backend nova-novnc-api
  

  frontend nova-compute-vip
      bind 192.168.20.20:8774
      default_backend nova-compute-api
  

  frontend nova-metadata-vip
      bind 192.168.20.20:8775
      default_backend nova-metadata-api
  

  frontend cinder-vip
      bind 192.168.20.20:8776
      default_backend cinder-api
  

  backend horizon-http-api
      balance roundrobin
      server controller01 192.168.20.21:80 check inter 10s
      server controller02 192.168.20.22:80 check inter 10s
  

  backend keystone-admin-api
      balance roundrobin
      server controller01 192.168.20.21:35357 check inter 10s
      server controller02 192.168.20.22:35357 check inter 10s
  

  backend keystone-public-api
      balance roundrobin
      server controller01 192.168.20.21:5000 check inter 10s
      server controller02 192.168.20.22:5000 check inter 10s
  

  backend quantum-api
      balance roundrobin
      server controller01 192.168.20.21:9696 check inter 10s
      server controller02 192.168.20.22:9696 check inter 10s
  

  backend glance-api
      balance roundrobin
      server controller01 192.168.20.21:9191 check inter 10s
      server controller02 192.168.20.22:9191 check inter 10s
  

  backend glance-registry-api
      balance roundrobin
      server controller01 192.168.20.21:9292 check inter 10s
      server controller02 192.168.20.22:9292 check inter 10s
  

  backend nova-ec2-api
      balance roundrobin
      server controller01 192.168.20.21:8773 check inter 10s
      server controller02 192.168.20.22:8773 check inter 10s
  

  backend nova-novnc-api
      balance roundrobin
      server controller01 192.168.20.21:6080 check inter 10s
      server controller02 192.168.20.22:6080 check inter 10s
  

  backend nova-compute-api
      balance roundrobin
      server controller01 192.168.20.21:8774 check inter 10s
      server controller02 192.168.20.22:8774 check inter 10s
  

  backend nova-metadata-api
      balance roundrobin
      server controller01 192.168.20.21:8775 check inter 10s
      server controller02 192.168.20.22:8775 check inter 10s
  

  backend cinder-api
      balance roundrobin
      server controller01 192.168.20.21:8776 check inter 10s
      server controller02 192.168.20.22:8776 check inter 10s
  (5).启动haproxy、keepalived服务
  [iyunv@controller01 ~]# chkconfig haproxy on
  [iyunv@controller01 ~]# chkconfig keepalived on
  [iyunv@controller01 ~]# service haproxy start
  [iyunv@controller01 ~]# service keepalived start
  (6).查看服务状态
  [iyunv@controller01 ~]# netstat -antp | grep haproxy
  [iyunv@controller01 ~]# ip -o -f inet addr show
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56394-1-1.html 上篇帖子: ubuntu openstack 下篇帖子: openstack ovs-gre 网速慢解决方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表