Memcached 是一个开源的、高性能的分布式内存对象缓存系统。经过在内存中缓存数据和对象来减小读取数据库的次数,从而提升网站访问速度,加速动态WEB应用、减轻数据库负载。html
Memcached是一种内存缓存,把常常须要存取的对象或数据缓存在内存中,内存中,缓存的这些数据经过API的方式被存取,数据通过利用HASH以后被存放到位于内存上的HASH表内,HASH表中的数据以key-value的形式存放,因为Memcached没有实现访问认证及安全管理控制,所以在面向internet的系统架构中,Memcached服务器一般位于用户的安全区域。java
当Memcached服务器节点的物理内存剩余空间不足,Memcached将使用最近最少使用算法(LRU,LastRecentlyUsed)对最近不活跃的数据进行清理,从而整理出新的内存空间存放须要存储的数据。python
Memcached在解决大规模集群数据缓存的诸多难题上有具备很是明显的优点而且还易于进行二次开发,所以愈来愈多的用户将其做为集群缓存系统,此外,Memcached开放式的API,使得大多数的程序语言都能使用Memcached,如javac、C/C++C#,Perl、python、PHP、Ruby 各类流行的编程语言。mysql
因为Memcached的诸多优点,其已经成为众多开源项目的首选集群缓存系统。如openstacksd的keystone身份认证项目。就会利用Memcached来缓存租户的Token等身份信息,从而在用户登录验证时无需查询存储在MySQL后端数据库中的用户信息,这在数据库高负荷运行下的大型openstack集群中可以极大地提升用户的身份验证过程,在如web管理界面Horizon和对象存储Swift项目也都会利用Memcached来缓存数据以提升客户端的访问请求响应速率。linux
keystone 是OpenStack的组件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务,包括身份验证、令牌的发放和校验、服务列表、用户权限的定义等等。云环境中全部的服务之间的受权和认证都须要通过 keystone. 所以 keystone 是云平台中第一个即须要安装的服务。web
做为 OpenStack 的基础支持服务,Keystone 作下面这几件事情:redis
一、三台机器:主机名:lichaohost1 (控制节点)集群网ip:192.168.206.137 租户网ip: 192.168.206.142 外网ip:192.168.206.143算法
主机名:lichaohost2 (计算节点)集群网ip:192.168.206.138 租户网ip: 192.168.206.144sql
主机名:lichaohost3 (储存节点) 集群网ip :192.168.206.139数据库
二、控制节点端三块网卡:
ens33: 集群网 (组件相互通讯)
ens37:租户网 (实例相互通讯)
ens38:外网
三、计算节点两块网卡
ens33:集群网
ens37:租户网
四、储存节点一块网卡
ens33:集群网
五、每台机器最少4G内存
六、静态域名解析
七、免密登陆
八、搭建好ntp
九、搭建好rabbitmq
openstacke ocata版 官方网站:https://docs.openstack.org/ocata/index.html
#版本源以宕到本地因此直接下载
一、控制节点:
yum install python-openstackclient -y (安装 openstackclient )
二、 控制节点:
yum install openstack-selinux -y (安装 openstack-selinux 组件)
三、 控制节点:
yum install mariadb mariadb-server python2-PyMySQL -y ( 安装数据库)
四、控制节点: 建立并编辑/etc/my.cnf.d/openstack.cnf文件,建立一个[mysqld]节,并将绑定地址键设置为控制器节点的管理IP地址,以容许其余节点经过管理网络访问。设置额外的键来启用有用的选项和UTF-8字符集。
#1
vim /etc/my.cnf.d/openstack.cnf
#2 编辑如下内容
[mysqld] bind-address = 192.168.206.137 default-storage-engine = innodb innodb_file_per_table = on max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8
5:、 控制节点:启动mariadb.service并设置开机自启
systemctl restart mariadb.service
systemctl enable mariadb.service
六、 控制节点: 初始化数据库
mysql_secure_installation
一、 控制节点:
yum install memcached python-memcached -y 安装memcached
二、控制节点: 编辑/etc/sysconfig/memcached文件
vim /etc/sysconfig/memcached
#
注:写主机名前提作了静态域名解析
例:
三、控制节点:启动memcached 并设置为开机自启
systemctl enable memcached.service
systemctl restart memcached.service
一、控制节点:登陆数据库
mysql -uroot -plichao123
二、 控制节点:建立keystone数据库
create database keystone;
三、控制节点:授予适当的访问keystone数据库的权限
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \ IDENTIFIED BY 'KEYSTONE_DBPASS'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \ IDENTIFIED BY 'KEYSTONE_DBPASS';
四、控制节点:安装keystone 服务
yum install openstack-keystone httpd mod_wsgi -y
五、编辑/etc/keystone/keystone.conf
#1 备份原文件
#2 编辑/etc/keystone/keystone.conf
vim /etc/keystone/keystone.conf
编辑如下内容:
[DEFAULT] [assignment] [auth] [cache] [catalog] [cors] [cors.subdomain] [credential] [database] connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@lichaohost1/keystone [domain_config] [endpoint_filter] [endpoint_policy] [eventlet_server] [federation] [fernet_tokens] [healthcheck] [identity] [identity_mapping] [kvs] [ldap] [matchmaker_redis] [memcache] [oauth1] [oslo_messaging_amqp] [oslo_messaging_kafka] [oslo_messaging_notifications] [oslo_messaging_rabbit] [oslo_messaging_zmq] [oslo_middleware] [oslo_policy] [paste_deploy] [policy] [profiler] [resource] [revoke] [role] [saml] [security_compliance] [shadow_users] [signing] [token] provider = fernet [tokenless_auth] [trust]
#3
#4
六、控制节点: 查看属组
ll
七、控制节点:同步数据库 (导入keystone表)
#1
su -s /bin/sh -c "keystone-manage db_sync" keystone
#2 查看
八、 控制节点: 初始化Fernet密钥存储库
#1
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone ( 建立keystone的 用户)
#2
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone(设置keystone 角色)
九、控制节点:配置 keystone 服务端点
以下:
keystone-manage bootstrap --bootstrap-password admin \ --bootstrap-admin-url http://lichaohost1:35357/v3/ \ --bootstrap-internal-url http://lichaohost1:5000/v3/ \ --bootstrap-public-url http://lichaohost1:5000/v3/ \ --bootstrap-region-id RegionOne
十、控制节点:配置Apache HTTP服务器
#1 编辑/etc/httpd/conf/httpd.conf文件
#2 配置ServerName选项来引用控制器节点
十一、控制节点:建立到/usr/share/keystone/wsgi-keystone.conf文件的连接
#查看
十二、控制节点:启动 httpd 并设置开机自启 ( 这样 keystone 服务 就能够调用 httpd 服务 从而使其正常工做了)
systemctl restart httpd.service
systemctl enable httpd.service
1三、控制节点:配置管理账户 (建立admin 用户环境变量)
#1 在/root 下编辑文件
vim openrc
#2 编辑如下内容
export OS_USERNAME=admin export OS_PASSWORD=admin export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://lichaohost1:35357/v3 export OS_IDENTITY_API_VERSION=3
一、宣告环境变量
source openrc
二、建立server 项目
openstack project create --domain default --description "Service Project" service
三、查看项目列表
openstack project list
#补充:
查看 用户列表
openstack user list
#补充2
查看 服务端点列表
openstack endpoint list
# 补充3
查看角色列表
openstack role list
四、建立 demo 项目
openstack project create --domain default --description "Demo Project" demo
五、建立demo用户并查看
openstack user create --domain default --password-prompt demo
#查看
六、建立用户角色
openstack role create user
七、将user角色添加到demo项目的demo用户中
openstack role add --project demo --user demo user