一、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. python学习(day2)

    1.常用数据类型及内置方法 1.列表(list) 定义:在中括号[]内存放任意多个值,用逗号隔开. 具体函数和内置方法如下: #定义学生列表,可存放多个学生 students=['a','b','c' ...

  2. comm - 逐行比较两个已排序的文件

    总览 (SYNOPSIS) ../src/comm [OPTION]... LEFT_FILE RIGHT_FILE 描述 (DESCRIPTION) 逐行比较 已排序的 文件 LEFT_FILE 和 ...

  3. ubuntu 12.04 配置iscsi共享及挂载iscsi共享

    一.配置ubuntu 下iscsi下的target 1.配置iscsi-target: sudo apt-get install iscsi* 2.配置一个简单的iscsi target: iscsi ...

  4. CSS工具、CSS重置(CSS Reset)

    样式重置的目的是减少浏览器的不一致性,例如line-height,margin,标题的font-size大小等等.样式重置经常在CSS框架中出现. 这里的重置样式故意写的很一般,例如没有为body元素 ...

  5. mysql基准测试与sysbench工具

    一.基准测试简介  1.什么是基准测试 数据库的基准测试是对数据库的性能指标进行定量的.可复现的.可对比的测试. 基准测试与压力测试 基准测试可以理解为针对系统的一种压力测试.但基准测试不关心业务逻辑 ...

  6. PHP 数组使用之道

    本文首发于 PHP 数组使用之道,转载请注明出处. 这个教程我将通过一些实用的实例和最佳实践的方式列举出 PHP 中常用的数组函数.每个 PHP 工程师都应该掌握它们的使用方法,以及如何通过组合使用来 ...

  7. Oracle创建 表空间 用户 给用户授权命令

    //创建表空间 create tablespace ACHARTSdatafile 'D:\oradata\orcl\ACHARTS01.DBF' size 800mautoextend on nex ...

  8. 集训第六周 数学概念与方法 计数 排列 L题

    Description 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了! 做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样. 话 ...

  9. bootloader的移植

    jz2440开发板 在介绍bootloader里边的内容的时候,需要知道的是: bootloader的引入的目的就是启动linux内核,一个简单的bootloader编写需要以下的步骤: ①初始化硬件 ...

  10. 在jupyter notebook 中编辑公式

    jupyter notebook是一个python的交互式开发环境,广泛应用于数据分析的场景下. 在jupyter notebook中,还可以很方便的编辑数学公式. 1.Markdown状态 编辑公式 ...