• 第二步:安装openstack-glance服务


    简介

    Glance 是 OpenStack 镜像服务组件,glance 服务默认监听在 9292 端口,其接收 REST API 请求,然后通过其他模块(glance-registry 及 image store)来完成诸如镜像的获取、上传、删除等操作,Glance 提供 restful API 可以查询虚拟机镜像的 metadata,并且可以获得镜像,通过 Glance,虚拟机镜像可以被存储到多种存储上,比如简单的文件存储或者对象存储(比如 OpenStack 中 swift 项目)是在创建虚拟机的时候,需要先把镜像上传到 glance,对镜像的列出镜像、删除镜像和上传镜像都是通过 glance 进行理,glance 有两个主要的服务,一个是 glace-api 接收镜像的删除上传和读取,一个是 glance-Registry(新版本的openstack中,glance-Registry已经被废弃)。
    
    glance-registry 负责与 mysql 数据交互,用于存储或获取镜像的元数据(metadata),提供镜像元数据相关的 REST 接口,通过 glance-registry 可以向数据库中写入或获取镜像的各种数据,glance-registyr 监听的端口是 9191,glance 数据库中有两张表,一张是 glance 表,一张是 imane property 表,image 表保存了镜像格式、大小等信息,image property 表保存了镜像的定制化信息。
    
    image store 是一个存储的接口层,通过这个接口 glance 可以获取镜像,image store 支持的存储有 Amazon 的 S3、openstack 本身的 swift、还有 ceph、glusterFS、sheepdog 等分布式存储,image store 是镜像保存与读取的接口,但是它只是一个接口,具体的实现需要外部的支持,glance 不需要配置消息队列,但是需要配置数据库和 keystone。
    
    虚拟机镜像就是已经装好虚拟机系统的磁盘文件;
    镜像的元数据,如镜像名称、大小和id等都是存放到mysql中的;
    

    在controller节点安装glance服务

    https://docs.openstack.org/glance/train/install/install-rdo.html #安装文档

    glance可以单独安装在一台服务器上,也可以和controler安装在同一台服务器上
    
    1、source admin-openrc.sh     #让admin用户的认证信息生效,这样才可以在openstack中执行后续操作
    
    2、openstack user create --domain default --password-prompt glance  
    #在openstack中创建glance用户
    
    3、openstack role add --project service --user glance admin
    #将glance用户添加到service项目中,并且针对这个项目拥有admin权限;注册glance的API,需要对service项目有admin权限
    
    4、openstack service create --name glance --description "OpenStack Image" image
    #创建一个service服务,service名称为glance,类型为image;创建完成后可以通过 openstack service list 查看
    
    5、openstack endpoint create --region RegionOne image public http://openstack-vip.linux.local:9292
    openstack endpoint create --region RegionOne image internal http://openstack-vip.linux.local:9292
    openstack endpoint create --region RegionOne image admin http://openstack-vip.linux.local:9292  #创建glance service的endpoint
    
    #将glance的API注册到glance的service中;service是包含API的,所以需要把glance的API注册到glance的service中;openstack中的endpoint相当于k8s中的service,即openstack中的service是用于注册后端服务器;
    当访问glance service的9292端口,就转发到endpoint的地址处理;endpoint相当于是给service创建了一个端口,也不完全等同于k8s中的service,k8s中的service是有端口的,但是openstack中的service是没有端口的,需要通过endpoint注册
    
    6、yum install openstack-glance -y
    
    7、vim /etc/glance/glance-api.conf  #glance有两个配置文件,还有一个glance-registry.conf
    [database]
    connection = mysql+pymysql://glance:glance123@openstack-vip.linux.local/glance
    
    [keystone_authtoken]
    www_authenticate_uri  = http://openstack-vip.linux.local:5000  #指定认证的keystone的URL
    auth_url = http://openstack-vip.linux.local:5000
    memcached_servers = openstack-vip.linux.local:11211  #指定memcached的地址
    auth_type = password    #认证方式采用密码
    project_domain_name = Default
    user_domain_name = Default
    project_name = service   #glance用户针对service项目拥有admin权限
    username = glance        #指定glance用户
    password = glance        #密码为glance
    
    [paste_deploy]
    flavor = keystone     #指定提供认证的服务器为keystone
    
    [glance_store]
    stores = file   #指定存储类型为文件存储;还有http类型,基于api调用方式,把镜像放到其他存储上
    default_store = file
    filesystem_store_datadir = /var/lib/glance/images/  #指定镜像存放的本地目录
    
    注意:
    整个openstack的各个服务的配置文件中,不能有中文,包括注释,如果有中文,会直接导致python解析配置文件失败而报错
    
    8、su -s /bin/sh -c "glance-manage db_sync" glance  
    #初始化glance数据库,生成相关表结构;不管有多少个controler,只需要初始化一次即可
    
    9、systemctl start openstack-glance-api.service
    
    10、systemctl enable openstack-glance-api.service
    
    11、systemctl stop openstack-glance-api.service   #之前glance启动服务是为了生成存放镜像的目录
    
    12、mount -t nfs 172.31.7.105:/data/glance/ /var/lib/glance/images/
    #将nfs挂载到存放镜像的目录下的
    
    13、id glance
    
    14、chown 161.161 /var/lib/glance/images -R
    #指定所有者及所属组时必须指定的是glance用户的uid及gid,这样nfs共享出来的目录的所有者及所属组也会变为161
    
    15、systemctl start openstack-glance-api.service
    
    16、vim /etc/fstab       #存放到fstab文件中,开机自动挂载
    172.31.7.105:/data/glance/ /var/lib/glance/images/ nfs defaults,_netdev 0 0
    
    17、tail -f /var/log/glance/api.log  #通过日志查看glance是否启动
    
    
    ###测试验证
    1、wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img  #下载镜像
    
    2、glance image-create --name "cirros-0.4.0"   #创建镜像,指定镜像名称
      --file cirros-0.4.0-x86_64-disk.img   #指定源镜像文件,如果不在当前目录下,需要指定绝对路径
      --disk-format qcow2 --container-format bare   #指定磁盘文件格式qcow2,磁盘格式为裸磁盘
      --visibility public    #在当前openstack中,此镜像是共享的,不需要登录就可以下载
    #此步骤是上传所下载的镜像到存储中 、
    
    3、openstack image list     #列出openstack中的所有镜像
       glance image-list   #此命令也可以查看镜像
       
    4、glance image-delete 镜像ID   #删除指定镜像,存储中的镜像也会被删除
    

    https://docs.openstack.org/glance/train/install/verify.html #验证参考文档

    mysql服务器配置

    1、CREATE DATABASE glance;   #创建数据库,用于存储镜像的元数据
    
    2、GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance123';
    

    haproxy配置

    1、vim /etc/haproxy/haproxy.cfg
    listen openstack-glance-9292
     mode tcp
     bind 172.31.7.248:9292
     server 172.31.7.101 172.31.7.101:9292 check inter 3s fall 3 rise 5
     
    2、systemctl restart haproxy.service 
    

    准备NFS服务器

    镜像是放在controler节点本地磁盘上的,所以其他controler节点是无法查看存放镜像的controler节点上的所有镜像,所以一般镜像存放到NAS存储上,方便所有controler节点都可以查看到镜像;
    
    1、yum install nfs-utils -y
    
    2、mkdir /data/glance -p
    
    3、vim /etc/exports
    /data/glance *(rw,no_root_squash)
    
    4、systemctl restart nfs
    
    5、systemctl enable nfs
    
    
    ###管理端验证
    1、yum install nfs-utils -y
    
    2、showmount -e 172.31.7.105
    
  • 相关阅读:
    Java 7如何操纵文件属性
    MS Server中varchar与nvarchar的区别
    【Unity3D】【NGUI】UICamera
    2007LA 3902 网络(树+贪心)
    读取图片的几种方式
    AssetsLibrary 实现访问相册,选取多张照片显示
    UIImagePickerController的用法
    画板的实现
    最近的状态
    富文本的使用-----实现图文混排 文字的检索 (正则表达式)
  • 原文地址:https://www.cnblogs.com/dongzhanyi123/p/13299841.html
Copyright © 2020-2023  润新知