openstack ---------部署memcached緩存服務,keystone服務

1、memcached概念

  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

2、keystone介紹:

      keystone 是OpenStack的組件之一,用於爲OpenStack家族中的其它組件成員提供統一的認證服務,包括身份驗證、令牌的發放和校驗、服務列表、用戶權限的定義等等。雲環境中全部的服務之間的受權和認證都須要通過 keystone. 所以 keystone 是雲平臺中第一個即須要安裝的服務。web

 

做爲 OpenStack 的基礎支持服務,Keystone 作下面這幾件事情:redis

  1. 管理用戶及其權限
  2. 維護 OpenStack Services 的 Endpoint
  3. Authentication(認證)和 Authorization(鑑權)

3、環境準備

一、三臺機器:主機名: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

4、安裝openstackclient  並安裝數據庫

#版本源以宕到本地因此直接下載

一、控制節點:   

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

5、搭建memcached緩存服務

一、  控制節點:

 yum install memcached python-memcached -y      安裝memcached

二、控制節點: 編輯/etc/sysconfig/memcached文件

vim  /etc/sysconfig/memcached

 

#

 

注:寫主機名前提作了靜態域名解析

例:

 

三、控制節點:啓動memcached 並設置爲開機自啓

systemctl enable memcached.service
systemctl restart memcached.service

6、搭建keystone 服務

一、控制節點:登陸數據庫

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

7、控制節點:   簡單演示 keystone(建立域、項目、用戶和角色)

一、宣告環境變量

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

相關文章
相關標籤/搜索