openstack (3)---------部署memcached缓存服务,keystone服务
一、memcached概念
Memcached 是一个开源的、高性能的分布式内存对象缓存系统。通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高网站访问速度,加速动态WEB应用、减轻数据库负载。
Memcached是一种内存缓存,把经常需要存取的对象或数据缓存在内存中,内存中,缓存的这些数据通过API的方式被存取,数据经过利用HASH之后被存放到位于内存上的HASH表内,HASH表中的数据以key-value的形式存放,由于Memcached没有实现访问认证及安全管理控制,因此在面向internet的系统架构中,Memcached服务器通常位于用户的安全区域。
当Memcached服务器节点的物理内存剩余空间不足,Memcached将使用最近最少使用算法(LRU,LastRecentlyUsed)对最近不活跃的数据进行清理,从而整理出新的内存空间存放需要存储的数据。
Memcached在解决大规模集群数据缓存的诸多难题上有具有非常明显的优势并且还易于进行二次开发,因此越来越多的用户将其作为集群缓存系统,此外,Memcached开放式的API,使得大多数的程序语言都能使用Memcached,如javac、C/C++C#,Perl、python、PHP、Ruby 各种流行的编程语言。
由于Memcached的诸多优势,其已经成为众多开源项目的首选集群缓存系统。如openstacksd的keystone身份认证项目。就会利用Memcached来缓存租户的Token等身份信息,从而在用户登陆验证时无需查询存储在MySQL后端数据库中的用户信息,这在数据库高负荷运行下的大型openstack集群中能够极大地提高用户的身份验证过程,在如web管理界面Horizon和对象存储Swift项目也都会利用Memcached来缓存数据以提高客户端的访问请求响应速率。
二、keystone介绍:
keystone 是OpenStack的组件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务,包括身份验证、令牌的发放和校验、服务列表、用户权限的定义等等。云环境中所有的服务之间的授权和认证都需要经过 keystone. 因此 keystone 是云平台中第一个即需要安装的服务。
作为 OpenStack 的基础支持服务,Keystone 做下面这几件事情:
- 管理用户及其权限
 - 维护 OpenStack Services 的 Endpoint
 - Authentication(认证)和 Authorization(鉴权)
 
三、环境准备
1、三台机器:主机名: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.144
主机名:lichaohost3 (储存节点) 集群网ip :192.168.206.139
2、控制节点端三块网卡:
ens33: 集群网 (组件相互通信)
ens37:租户网 (实例相互通信)
ens38:外网
3、计算节点两块网卡
ens33:集群网
ens37:租户网
4、储存节点一块网卡
ens33:集群网
5、每台机器最少4G内存
6、静态域名解析
7、免密登录
8、搭建好ntp
9、搭建好rabbitmq
openstacke ocata版 官方网站:https://docs.openstack.org/ocata/index.html
四、安装openstackclient 并安装数据库
#版本源以宕到本地所以直接下载
1、控制节点:
yum install python-openstackclient -y (安装 openstackclient )

2、 控制节点:
yum install openstack-selinux -y (安装 openstack-selinux 组件)

3、 控制节点:
yum install mariadb mariadb-server python2-PyMySQL -y ( 安装数据库)

4、控制节点: 创建并编辑/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 =
collation-server = utf8_general_ci
character-set-server = utf8

5:、 控制节点:启动mariadb.service并设置开机自启
systemctl restart mariadb.service
systemctl enable mariadb.service

6、 控制节点: 初始化数据库
mysql_secure_installation

五、搭建memcached缓存服务
1、 控制节点:
yum install memcached python-memcached -y 安装memcached

2、控制节点: 编辑/etc/sysconfig/memcached文件
vim /etc/sysconfig/memcached

#

注:写主机名前提做了静态域名解析
例:

3、控制节点:启动memcached 并设置为开机自启
systemctl enable memcached.service
systemctl restart memcached.service

六、搭建keystone 服务
1、控制节点:登录数据库
mysql -uroot -plichao123

2、 控制节点:创建keystone数据库
create database keystone;

3、控制节点:授予适当的访问keystone数据库的权限
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \ IDENTIFIED BY 'KEYSTONE_DBPASS'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \ IDENTIFIED BY 'KEYSTONE_DBPASS';

4、控制节点:安装keystone 服务
yum install openstack-keystone httpd mod_wsgi -y

5、编辑/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

6、控制节点: 查看属组
ll

7、控制节点:同步数据库 (导入keystone表)
#1
su -s /bin/sh -c "keystone-manage db_sync" keystone

#2 查看

8、 控制节点: 初始化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 角色)

9、控制节点:配置 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

10、控制节点:配置Apache HTTP服务器
#1 编辑/etc/httpd/conf/httpd.conf文件

#2 配置ServerName选项来引用控制器节点

11、控制节点:创建到/usr/share/keystone/wsgi-keystone.conf文件的链接

#查看

12、控制节点:启动 httpd 并设置开机自启 ( 这样 keystone 服务 就可以调用 httpd 服务 从而使其正常工作了)
systemctl restart httpd.service
systemctl enable httpd.service

13、控制节点:配置管理帐户 (创建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=

七、控制节点: 简单演示 keystone(创建域、项目、用户和角色)
1、宣告环境变量
source openrc

2、创建server 项目
openstack project create --domain default --description "Service Project" service

3、查看项目列表
openstack project list

#补充:
查看 用户列表
openstack user list

#补充2
查看 服务端点列表
openstack endpoint list

# 补充3
查看角色列表
openstack role list

4、创建 demo 项目
openstack project create --domain default --description "Demo Project" demo

5、创建demo用户并查看
openstack user create --domain default --password-prompt demo

#查看

6、创建用户角色
openstack role create user

7、将user角色添加到demo项目的demo用户中
openstack role add --project demo --user demo user

openstack (3)---------部署memcached缓存服务,keystone服务的更多相关文章
- openstack项目【day24】:OpenStack mitaka部署
		
前言: openstack的部署非常简单,简单的前提建立在扎实的理论功底,本人一直觉得,玩技术一定是理论指导实践,网上遍布个种搭建方法都可以实现一个基本的私有云环境,但是诸位可曾发现,很多配置都是重复 ...
 - 二、NOSQL之Memcached缓存服务实战精讲第一部
		
1.Memcached是一套数据缓存系统或软件. 用于在动态应用系统中缓存数据库的数据,减少数据库的访问压力,达到提升网站系统性能的目的:Memcached在企业应用场景中一般是用来作为数据库的cac ...
 - 第16章 使用Squid部署代理缓存服务
		
章节概述: 本章节从代理缓存服务的工作原理开始讲起,让读者能够清晰理解正向代理(普通模式.透明模式)与反向代理的作用. 正确的使用Squid服务程序部署代理缓存服务可以有效提升访问静态资源的效率,降低 ...
 - OpenStack控制节点上搭建Q版keystone服务(step3)
		
keystone服务监听两个端口:5000和35357 一.安装和配置 1.安装keystone组件 yum install openstack-keystone httpd mod_wsgi -y ...
 - OpenStack 安装:keystone服务
		
在前面的章节里面,我们配置了基本环境,也安装keystone服务,并且创建了keystone的数据库,在这一篇里面,我们说怎么配置keystone. 首先编辑keystone服务,需要修改如下数据 编 ...
 - 基于Ubuntu部署 memcached 服务
		
系统要求:Ubuntu 16.04.1 LTS 64 位操作系统 安装并启动 memcached 服务 安装 memcached 使用apt-get安装 memcached sudo apt-get ...
 - [网站日志]当Memcached缓存服务挂掉时性能监视器中的表现
		
我们用的Memcached缓存服务是阿里云OCS,今天晚上遇到了一次OCS挂掉的情况(计划中的升级),看一下性能监视器中的表现,也许对分析黑色1秒问题有帮助. 应用日志中错误: 2014-06-05 ...
 - Linux基础学习-使用Squid部署代理缓存服务
		
使用Squid部署代理缓存服务 Squid是Linux系统中最为流行的一款高性能代理服务软件,通常作为Web网站的前置缓存服务,能够代替用户向网站服务器请求页面数据并进行缓存.Squid服务配置简单. ...
 - 《Linux就该这么学》培训笔记_ch16_使用Squid部署代理缓存服务
		
<Linux就该这么学>培训笔记_ch16_使用Squid部署代理缓存服务 文章最后会post上书本的笔记照片. 文章主要内容: 代理缓存服务 配置Squid服务程序 正向代理 标准正向代 ...
 
随机推荐
- 玩一把redis源码(一):为redis添加自己的列表类型
			
2019年第一篇文档,为2019年做个良好的开端,本文档通过step by step的方式向读者展示如何为redis添加一个数据类型,阅读本文档后读者对redis源码的执行逻辑会有比较清晰的认识,并且 ...
 - 使用GetLogicalDriveStrings获取卷标
			
#include <windows.h> #include <stdio.h> #define BUFSIZE 512 int main() { TCHAR szTemp[BU ...
 - java.lang.NoClassDefFoundError: org.springframework.beans.FatalBeanException
			
在进行Spring和Hibernate整合的时候遇到了这个问题, 问题描述如下 问题原因? Spring的Bean的XML配置文件存在错误 解决方法: 正确的配置XML文件,例如下面的代码 < ...
 - 问题:执行[root@node01 hadoop-2.6.0-cdh5.14.0]# sbin/start-dfs.sh 后,namenode未启动
			
执行[root@node01 hadoop-2.6.0-cdh5.14.0]# sbin/start-dfs.sh 后,namenode未启动. 解决步骤: 查看/export/servers/had ...
 - UTF-8,UTF-16
			
UTF是 Unicode Translation Format,即把Unicode转做某种格式的意思. 在Unicode基本多文种平面定义的字符(无论是拉丁字母.汉字或其他文字或符号),一律使用2字节 ...
 - 笔试算法题(25):复制拥有多个指针的链表 & 判断二元树B是否为A的子树
			
出题:定义一个复杂链表:在单向链表的基础上,每个节点附加一个指向链表中其他任意节点的指针sibling,实现CNode* Clone(Cnode *head)函数复制这个复杂链表: 分析: 解法1:将 ...
 - CentOS7安装Tomcat9并设置开机启动
			
1.下载 Tomcat 9 CentOS 7 下创建目录并下载文件: cd /usr/local/ mkdir tomcat cd tomcat wget http://mirrors.hust.ed ...
 - heroku安装(win7x64)
			
Jdk安装:官网地址 http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html下载要安装的jdk版本. ...
 - stark组件之处理函数动态url构造(五)
			
在这个组件中有内置的4个处理函数,它们都有自己对应的url,那么它们的url是怎么构造的呢? ... urlpatterns = [ re_path('list/$', self.wrapper(se ...
 - jQuery实现上传进度条效果
			
效果:(点击上传按钮) See the Pen pjGNJr by moyu (@MoYu1991) on CodePen. html代码: <!DOCTYPE html> <h ...