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