• 安装环境

    Memcached编译安装环境 L:Linux(centos 7.2)

    主机信息:

    CPU >=2C,开启支持虚拟化

    内存 >=3072MB

    HD =100GB

    部署规划: 172.24.77.221linux1-host.jay.com):运行

    172.24.77.222linux2-host.jay.com):运行

    查看 openstack yum 版本

    yum list centos-release-openstack*

    centos-release-openstack-queens.noarch 1-2.el7.centos extras centos-release-openstack-rocky.noarch 1-1.el7.centos extras centos-release-openstack-stein.noarch 1-1.el7.centos extras centos-release-openstack-train.noarch 1-1.el7.centos extras

    各服务器安装 ocata 的 yum 源

    yum install centos-release-openstack-ocata #旧版本安装,需要yum源支持

    yum install –y centos-release-openstack-queens.noarch

    yum install -y https://rdoproject.org/repos/rdo-release.rpm

    安装文档

    https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/

    各服务器安装 openstack 客户端

    yum install -y python-openstackclient

    各服务器安装 openstack SElinux 管理包

    yum install -y openstack-selinux

    安装数据库服务器:224

    可以单独安装至其他服务器, openstack 的各组件都要使用数据库保存数据, 除了nova 使用 API 与其他组件进行调用之外

    控制端安 python 连接 SQL 模块:用于控制端连接数据库

    安装 mariadb

    yum install -y mariadb python2-PyMySQL

    yum install -y mariadb mariadb-server

    配置数据库

    vim /etc/my.cnf.d/openstack.cnf

    [mysqld] bind-address = 172.24.77.224 default-storage-engine = innodb innodb_file_per_table = on max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8

    配置 my.cnf

    vim /etc/my.cnf

    datadir=/data/mysql socket=/var/lib/mysql/mysql.sock user=mysql symbolic-links=0 innodb_file_per_table=1 relay-log=/data/mysql server-id=10 log-error=/data/mysql-log/mysql_error.txt log-bin=/data/mysql-bin/master-log long_query_time=5 slow_query_log=1 slow_query_log_file=/data/mysql-log/slow_mysql.txt max_connections=1000 bind-address=172.24.77.224 port=3306 socket=/var/lib/mysql/mysql.sock log-error=/data/mysql-log/mysqld-safe.log pid-file=/var/lib/mysql/mysql.sock

    创建数据目录并授权

    mkdir -pv /data/{mysql,mysql-log,mysql-binlog}

    chown mysql.mysql /data/*

    启动 Mariadb 并验证

    systemctl start mariadb

    systemctl enable mariadb

    初始化设置

    mysql_secure_installation

    root password:123456

    部署 keepalived:在两台负载服务器同时执行以下操作

    wget http://www.keepalived.org/software/keepalived-1.3.6.tar.gz

    tar xvf keepalived-1.3.6.tar.gz

    cd keepalived-1.3.6

    yum install libnfnetlink-devel libnfnetlink ipvsadm libnl libnl-devel libnl3 libnl3-devel lm_sensors-libs net-snmp-agent-libs net-snmp-libs openssh-server openssh-clients openssl openssl-devel tree sudo psmisc lrzsz gcc gcc-c++ automake pcre pcredevel zlib zlib-devel openssl openssl-devel iproute

    ./configure --prefix=/usr/local/keepalived --disable-fwmark make && make install

    准备 keepalived 配置文件 :master 服务器

    mkdir /etc/keepalived

    vim /etc/keepalived/keepalived.conf

    vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 1 priority 100 advert_int 1 unicast_src_ip 172.24.77.224 unicast_peer { 172.24.77.225 } authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 172.24.77.226/25 dev eth0 label eth0:0 } }

    启动keepalive

    systemctl start keepalived

    systemctl enable keepalived

    [root@linux4-host keepalived-1.3.6]# ps -ef |grep keepalive root 8478 1 0 01:08 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D root 8479 8478 0 01:08 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D root 8480 8478 0 01:08 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D root 8499 2645 0 01:09 pts/0 00:00:00 grep --color=auto keepalive

    准备 keepalived 配置文件 :backup服务器

    mkdir /etc/keepalived

    vim /etc/keepalived/keepalived.conf

    vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 1 priority 100 advert_int 1 unicast_src_ip 172.24.77.225 unicast_peer { 172.24.77.224 } authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 172.24.77.226/25 dev eth0 label eth0:0 } }

    启动keepalive

    systemctl start keepalived

    systemctl enable keepalived

    [root@localhost keepalived-1.3.6]# ps -ef |grep keepalive root 9961 1 0 01:11 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D root 9962 9961 0 01:11 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D root 9963 9961 0 01:11 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D root 9982 3165 0 01:12 pts/0 00:00:00 grep --color=auto keepalive

部署 haproxy

分别在两台负载服务器同时执行以下操作安装 haproxy(版本自定)

wget http://www.haproxy.org/download/1.7/src/haproxy-1.7.9.tar.gz

tar xvf haproxy-1.8.20.tar.gz

cd haproxy-1.8.20

make TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 PREFIX=/usr/local/haproxy

make install PREFIX=/usr/local/haproxy

准备 haproxy 启动脚本

vim /usr/lib/systemd/system/haproxy.service

[Unit] Description=HAProxy Load Balancer After=syslog.target network.target [Service] EnvironmentFile=/etc/sysconfig/haproxy ExecStart=/usr/sbin/haproxy-systemd-wrapper -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid $OPTIONS ExecReload=/bin/kill -USR2 $MAINPID [Install] WantedBy=multi-user.target

cp ./haproxy-systemd-wrapper /usr/sbin/haproxy-systemdwrapper#1.8版本无此文件

cp ./haproxy /usr/sbin/haproxy

准备系统配置文件

vim /etc/sysconfig/haproxy

# Add extra options to the haproxy daemon here. This can be useful for # specifying multiple configuration files with multiple -f options. # See haproxy(1) for a complete list of options. OPTIONS=""

配置主配置文件

mkdir /var/lib/haproxy

mkdir /etc/haproxy

vim /etc/haproxy/haproxy.cfg

global maxconn 100000 uid 99 gid 99 daemon nbproc 1 log 127.0.0.1 local0 info chroot /usr/local/haproxy stats socket /var/lib/haproxy/haproxy.socket mode 600 level admin defaults option redispatch option abortonclose option http-keep-alive option forwardfor maxconn 100000 mode http timeout connect 10s timeout client 20s timeout server 30s timeout check 5s listen stats mode http bind 0.0.0.0:9999 stats enable log global stats uri /haproxy-status stats auth haadmin:3344521 frontend test bind 172.24.77.226:80 mode http default_backend test_http_nodes backend test_http_nodes mode http balance source server 127.0.0.1 127.0.0.1:80 check inter 2000 fall 3 rise 5

各负载服务器配置内核参数

vim /etc/sysctl.conf

net.ipv4.ip_nonlocal_bind = 1 net.ipv4.ip_forward = 1

sysctl -p

启动 haproxy 并验证

systemctl start haproxy

或者

/usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg

systemctl enable haproxy

[root@linux4-host ~]# ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 50 172.24.77.224:3306 :
LISTEN 0 128 :9999 :
LISTEN 0 128 172.24.77.226:80 :
LISTEN 0 128 :22 :
LISTEN 0 100 127.0.0.1:25 :
LISTEN 0 128 [::]:22 [::]:

LISTEN 0 100 [::1]:25 [::]:

[root@linux-host5 ~]# ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :9999 :
LISTEN 0 128 172.24.77.226:80 :
LISTEN 0 128 :22 :
LISTEN 0 100 127.0.0.1:25 :
LISTEN 0 128 [::]:22 [::]:

LISTEN 0 100 [::1]:25 [::]:

安装 rabbitMQ 服务器225

可以单独安装至其他服务器:各组件通过消息发送与接收是实现组件之间的通信

yum install ncurses ncurses-base ncurses-devel ncurses-libs ncurses-static ncurses-term ocaml-curses ocaml-curses-devel openssl-devel zlib-devel make ncurses-devel gcc gcc-c++ unixODBC unixODBC-devel openssl openssl-devel -y cd /usr/local/src

安装erlang wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm

安装rpm仓库 rpm -Uvh erlang-solutions-1.0-1.noarch.rpm

安装erlang yum -y install erlang

安装RabbitMQ

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el6.noarch.rpm yum -y install rabbitmq-server-3.6.6-1.el6.noarch.rpm

启动rabbitmq服务:
service rabbitmq-server start

[root@linux-host5 ~]# service rabbitmq-server start Starting rabbitmq-server (via systemctl): [ OK ]

安装插件 启动web管理界面 rabbitmq-plugins enable rabbitmq-management

增加访问用户,默认用户guest只能本地访问。 rabbitmqctl add_user admin passwd

设置角色: rabbitmqctl set_user_tags admin administrator

设置默认vhost("/")访问权限 rabbitmqctl set_permissions -p "/" admin "." "." ".*"

浏览器访问:http://IP:15672

用户名admin,密码passwd进行登录

最好登录console的时候,删除默认账户guest

安装 memcached-225

yum install memcached -y

openstack 安装 python 模块

yum install python-memcached –y

编辑配置文件

vim /etc/sysconfig/memcached PORT="11212" USER="memcached" MAXCONN="1024" CACHESIZE="512" OPTIONS="-l 172.24.77.225"

systemctl start memcached

systemctl enable memcached

[root@linux-host5 ~]# ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:11212 :

未完待续。。。