一、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 做下面这几件事情:

  1. 管理用户及其权限
  2. 维护 OpenStack Services 的 Endpoint
  3. 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服务的更多相关文章

  1. openstack项目【day24】:OpenStack mitaka部署

    前言: openstack的部署非常简单,简单的前提建立在扎实的理论功底,本人一直觉得,玩技术一定是理论指导实践,网上遍布个种搭建方法都可以实现一个基本的私有云环境,但是诸位可曾发现,很多配置都是重复 ...

  2. 二、NOSQL之Memcached缓存服务实战精讲第一部

    1.Memcached是一套数据缓存系统或软件. 用于在动态应用系统中缓存数据库的数据,减少数据库的访问压力,达到提升网站系统性能的目的:Memcached在企业应用场景中一般是用来作为数据库的cac ...

  3. 第16章 使用Squid部署代理缓存服务

    章节概述: 本章节从代理缓存服务的工作原理开始讲起,让读者能够清晰理解正向代理(普通模式.透明模式)与反向代理的作用. 正确的使用Squid服务程序部署代理缓存服务可以有效提升访问静态资源的效率,降低 ...

  4. OpenStack控制节点上搭建Q版keystone服务(step3)

    keystone服务监听两个端口:5000和35357 一.安装和配置 1.安装keystone组件 yum install openstack-keystone httpd mod_wsgi -y ...

  5. OpenStack 安装:keystone服务

    在前面的章节里面,我们配置了基本环境,也安装keystone服务,并且创建了keystone的数据库,在这一篇里面,我们说怎么配置keystone. 首先编辑keystone服务,需要修改如下数据 编 ...

  6. 基于Ubuntu部署 memcached 服务

    系统要求:Ubuntu 16.04.1 LTS 64 位操作系统 安装并启动 memcached 服务 安装 memcached 使用apt-get安装 memcached sudo apt-get ...

  7. [网站日志]当Memcached缓存服务挂掉时性能监视器中的表现

    我们用的Memcached缓存服务是阿里云OCS,今天晚上遇到了一次OCS挂掉的情况(计划中的升级),看一下性能监视器中的表现,也许对分析黑色1秒问题有帮助. 应用日志中错误: 2014-06-05 ...

  8. Linux基础学习-使用Squid部署代理缓存服务

    使用Squid部署代理缓存服务 Squid是Linux系统中最为流行的一款高性能代理服务软件,通常作为Web网站的前置缓存服务,能够代替用户向网站服务器请求页面数据并进行缓存.Squid服务配置简单. ...

  9. 《Linux就该这么学》培训笔记_ch16_使用Squid部署代理缓存服务

    <Linux就该这么学>培训笔记_ch16_使用Squid部署代理缓存服务 文章最后会post上书本的笔记照片. 文章主要内容: 代理缓存服务 配置Squid服务程序 正向代理 标准正向代 ...

随机推荐

  1. Java B

    3.继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么? 答:父类: package test; public class FatherClass { public FatherClass( ...

  2. 02Hibernate基本配置

    Hibernate基本配置 1.引入jar 2.建立项目 3.创建实体类 package com.sqlserver.domain; public class Customer { long cust ...

  3. 用node写个简单的静态服务器

    直接上代码吧,我把它命名为 app.js, 只要在该文件所在目录下,控制台运行 node app.js 即可启动一个本地服务器了. /** * 服务器 * Author jervy * Date */ ...

  4. [C语言]输入一行整数,用空格分开,回车结束。

    在屏幕一行中的字符会保留在缓冲区,例如 1 2 3 4 5 6 ; i < n; i++) { scanf("%d",&cur); array[i] = cur; c ...

  5. pip 打包项目配置库

    打包项目中配置库(filename为文件名,可修改) pip freeze > filename.txt 安装配置文件中所有的库包 pip install -r filename.txt 如提示 ...

  6. STM32串口程序的一般配置方法

    #include "stm32f10x.h" /************************************************ 该程序讲解串口程序的一般配置方法: ...

  7. Uva 12657 移动盒子(双向链表)

    题意: 你有一行盒子,从左到右依次编号为1, 2, 3,…, n.可以执行以下4种指令:1 X Y表示把盒子X移动到盒子Y左边(如果X已经在Y的左边则忽略此指令).2 X Y表示把盒子X移动到盒子Y右 ...

  8. Qt笔记——各种组件和其他细碎用法

    LineEdit 获取文本:ui->usrLineEdit->text() 清空内容:ui->pwdLineEdit->clear(); 定位光标:ui->usrLine ...

  9. Mybatis 处理日期格式自动转换

    java.lang.String和java.util.Date之间自动转换 @DateTimeFormat(pattern="yyyy-MM-dd")//页面写入数据库时格式化 @ ...

  10. NYOJ-58最少步数,广搜思想!

    最少步数 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 ->   Link  <- 这个题深搜广搜都是可以的,迷宫已经给出了,就看怎么做了:一般起点终点确定用广搜 ...