• 完整部署OpenStack-memcache配置


    一、
    [root@openstack-server ~]# nova list
    ERROR (CommandError): You must provide a username or user id via --os-username, --os-user-id, env[OS_USERNAME] or env[OS_USER_ID]
    解决办法:
    source一下环境变量来获取 token
    [root@openstack-server src]# source admin-openrc.sh
    [root@openstack-server src]# nova list
    +--------------------------------------+--------------+--------+------------+-------------+--------------------+
    | ID | Name | Status | Task State | Power State | Networks |
    +--------------------------------------+--------------+--------+------------+-------------+--------------------+
    | 056c37a4-3e94-4280-96dd-5bc003469647 | kvmserver-01 | ACTIVE | - | Running | flat=192.168.1.121 |
    +--------------------------------------+--------------+--------+------------+-------------+--------------------+

    二、
    在进行keystone认证的时候,出现下面的报错:
    Maximum lock attempts on _lockusertokens-0b75ff3ce97a40caa6bf6753c962c82b occurred. (Disable debug mode to suppress these details.) (HTTP 500) (Request-ID: req-bb1c465e-33bc-412a-8ac2-c0d0a7e168ad)
    或者
    An unexpected error prevented the server from fulfilling your request. (HTTP 500) (Request-ID: req-bb1c465e-33bc-412a-8ac2-c0d0a7e168ad)
    问题产生的可能原因及解决办法:
    1)admin_token用户环境变量错误引起的。
    解决办法:
    [root@linux-node1 ~]# export OS_TOKEN=35d6e6f377a889571bcf
    [root@linux-node1 ~]# export OS_URL=http://192.168.1.17:35357/v3
    [root@linux-node1 ~]# export OS_IDENTITY_API_VERSION=3
    2)keystone数据同步失败,没有获取到正确的token值引起的。
    解决办法:
    删除mysql数据库中的keystone库,重新创建keystone库;
    重新生成一个token,在keystone.conf中重新指定admin_token对应的新的token指;
    然后初始化keystone数据,重启memcaced服务,重新进行keystone的认证;
    3)获取的token无效引起的。
    解决办法:修改keystone.conf文件中的[token]区域。
    之前的配置,将token存放在memcache缓存中
    [token]
    provider = uuid                 //或者是provider = keystone.token.providers.uuid.Provider
    driver = memcache            //或者是driver = keystone.token.persistence.backends.memcache.Token
    修改后的配置,将token存放在sql数据库中
    [token]
    provider = uuid
    driver = keystone.token.persistence.backends.sql.Token
    ----------------------------------------------------------------------------------------------------------------------------------------------
    说明下:
    keystone默认使用SQL数据库存储token,token默认有效期为1天(24h)。
    Openstack中每个组件执行的每次命令(请求)都需要token来验证,每次访问都会创建token,增长速度非常快,token表数据也会越来越多。
    随着时间的推移,无效的记录越来越多,企业私有云几天的量就可以几万条、几十万条。这么多无效的token导致针对token表的SQL语句变慢,性能也会变差!
    这就需要手动写个定时脚本来清理token表。
    但是更好的方法当然是将token存放在memcache缓存中,利用memcached特性,自动删除不使用的缓存:
    [memcache]
    servers = localhost:11211
    [token]
    provider = keystone.token.providers.uuid.Provider
    driver = keystone.token.persistence.backends.memcache.Token

    默认的配置是:
    [token]
    provider = keystone.token.providers.uuid.Provider
    driver = keystone.token.persistence.backends.sql.Token
    --------------------------------------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    OOAD-2 UML建模、类、接口、类图的详细介绍
    OOAD-1 GOF中的23种设计模式的分类和功能
    java核心技术第四章疑问点
    数据结构中的遇到的一些小知识整理
    springboot中一次坑爹的打包体验
    mybatis中@param的使用与否
    mybatis 防止sql注入
    java窗口
    java异常处理
    第三次上级作业
  • 原文地址:https://www.cnblogs.com/gzxbkk/p/7423029.html
Copyright © 2020-2023  润新知