大家好,欢迎来到IT知识分享网。
Openstack
一、Glance镜像服务基本概念
1.什么是Glance,它的作用是什么?
Glance是openstack的镜像服务。它提供了虚拟镜像的查询、注册和传输等服务。Glance本身并不实现对镜像的存储的存储功能。Glance只是一个代理。它充当了镜像存储服务与Openstack的其他组件之间的纽带。Glance共支持两种镜像存储机制:简单文件系统和Swift服务存储镜像机制。简单文件系统是指将镜像保存在Glance节点的文件系统中。这种机制相对比较简单,但是存在不足。比如,由于没有备份机制,当文件系统损伤是麻将导致所有的镜像不可用。Swift服务存储镜像机制,是指将镜像以对象的形式保存在Swift对象存储服务器中,由于Swift具有非常健壮的备份还原机制,因此可以降低因为文件系统损伤而造成的镜像不可用情况。
Glance服务支持多种格式的虚拟磁盘镜像。其中包括raw/qcow2、VHD、VDI、VMDK、OVF、kernel和ramdisk。
可以把Glance当做一个对象存储代理服务。可以通过Glance存储任何其他格式的文件。
2.OpenStack镜像简介
OpenStack镜像是一个文件,能够运行、启动虚拟盘
OpenStack的虚拟服务器就是一个镜像的运行实例
镜像包含一个操作系统
OpenStack缺省支持Linux和Windows操作系统
OpenStack镜像还包括其他的管理软件如cloud-init
OpenStack镜像还包括中间件或者应用软件,象NGINX, MySQL, VNFs
Glance存储这些大型二=进制的镜像
3.OpenStack镜像服务管理和存储镜像
- 虚拟服务器镜像
- 裸金属服务器镜像
- 容器镜像
glance-api: Glance提供的基本接口,通过它可以保存和获取磁盘镜像
gance-registry:用于将与镜像相关的元数据保存到关
系数据库中。元数据包括: - 镜像名称
- 镜像保存的位置信息
- 镜像的大小
- 镜像的唯一标识号
- 容器类型: bare
- 磁盘镜像格式类型
- 状态.
- 是否可见
- 所有者等等
Glance将镜像保存在各种类型的数据存储系统,如本地存储文件系统(LVM), Swift对象存储、 支持HTTP的远端存储(AMAZON S3)
OpenStack如何将镜像加载成服务器的运行实例?
从Glance镜像到虚拟服务器实例的过程示意图
4.OpenStack镜像的类型和格式
OpenStack镜像服务支持下列的磁盘格式
- QCOW2 (QEMU Copy-On-Write):精简分配的磁盘格式,用于QEMU & QEMUKVM
- VMDK (Virtual Machine Disk): Vmware通用的磁盘格式,其他虚拟机管理软件也支持
- VHD (Virtual Hard Drive): Hyper-V通用磁盘格式,其他虚拟机管理软件也支持
- VDI (Virtual Disk lmage): Oracle’s VirtualBox 的磁盘格式.
- ISO (International Organization for Standardization, IS09660):光盘打包的格式
- RAW:没有压缩的非结构化的镜像磁盘格式
- VHDX: VHD的增强版本
- OVA (Open Virtual Appliance ): Vmware定义的开发虚拟应用磁盘格式
- aki, ami, ari:亚马逊公司的内核(kernel)、主机(machine)、 内存磁盘(ramdisk)的镜像格式
OpenStack镜像的容器格式指的是镜像文件的封装类型,即虚拟机映像文件是否包含和封装
那种有关实际虚拟机的元数据。OpenStack支持镜像容器格式有:
- Bare: 没有容器或元数据信封。目前OpenStack主要是这种
- docker: Docker容器格式。Openstack镜像服务 支持docker容器的注册
- OVA (Open Virtual Appliance ): Vmware定义的开发虚拟应用元数据封装格式
- OVF (Open Virtualization Format):开放虚拟化格式,-种容器格式,支持的有Vwmare, Hyper-V
- aki, ami, ari:亚马逊公司的内核(kemnel)、主机(machine)、 内存磁盘(ramdisk)的元数据封装格式
5.Glance镜像的元数据
OpenStack镜像元数据描述了与实例运行时环境相关的镜像属性和要求
OpenStack镜像元数据的作用如下
- 镜像属性可用于覆盖为Nova Flavors定义的特定行为
- 镜像属性可用于影响Nova调度程序(ImagePropertiesFllter) 的行为,
- 镜像属性可用于影响特定NOVA管理程序 (Hypvisor) 的行为
OpenStack镜像元数据的属性主要有: - CPU结构(architecture): 镜x86_ _64, amd64, arm, sparc64,等
- 虚拟管理程序类型(hypervisor_ _type): KVM, QEMU, Vmware, Hyper-v, lxc, xen, uml, ironic
- 操作系统发布的版本名(os_ _distro): ubuntu, centos, windows, debian, rhel,等
- 操作新统的版本号(os_ _version)
- 操作系统关闭等待时间(os_ shutdown _timeout)
- 虚拟机模式(vm_ mode): hvm, xen, uml, exe
OpenStack镜像元数据支持客户化定制
二、Glance的搭建
1.创建数据库实例和数据库用户
[root@ct ~]# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE glance;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit
2.创建用户、修改配置文件
创建OpenStack的Glance用户
[root@ct ~]# openstack user create --domain default --password GLANCE_PASS glance ###创建glance用户
[root@ct ~]# openstack role add --project service --user glance admin #将glance用户添加到service项目中,并且针对这个项目拥有admin权限;注册glance的API,需要对service项目有admin权限
[root@ct ~]# openstack service create --name glance --description "OpenStack Image" image 创建一个service服务,service名称为glance,类型为image;创建完成后可以通过 openstack service list 查看
创建镜像服务 API 端点,OpenStack使用三种API端点代表三种服务:admin、internal、public
[root@ct ~]# openstack endpoint create --region RegionOne image public http://ct:9292
[root@ct ~]# openstack endpoint create --region RegionOne image internal http://ct:9292
[root@ct ~]# openstack endpoint create --region RegionOne image admin http://ct:9292
安装 openstack-glance 软件包
[root@ct ~]# yum -y install openstack-glance
修改glance配置文件,glance有两个配置文件:/etc/glance/glance-api.conf
/etc/glance/glance-registry.conf
备份、过滤注释信息
[root@ct ~]# cp -a /etc/glance/glance-api.conf{
,.bak}
[root@ct ~]# grep -Ev '^$|#' /etc/glance/glance-api.conf.bak > /etc/glance/glance-api.conf
添加glance.api配置文件
openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@ct/glance
传入修改的参数
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken www_authenticate_uri http://ct:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://ct:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers ct:11211
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_type password
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_name service
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken username glance
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken password GLANCE_PASS
openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone
openstack-config --set /etc/glance/glance-api.conf glance_store stores file,http
openstack-config --set /etc/glance/glance-api.conf glance_store default_store file
openstack-config --set /etc/glance/glance-api.conf glance_store filesystem_store_datadir /var/lib/glance/images/
cat glance-api.conf
备份、过滤注释信息
cp -a /etc/glance/glance-registry.conf{
,.bak}
grep -Ev '^$|#' /etc/glance/glance-registry.conf.bak > /etc/glance/glance-registry.conf
修改glance-registry.conf 配置文件(配置与glance-api.conf相同)
openstack-config --set /etc/glance/glance-registry.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@ct/glance
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken www_authenticate_uri http://ct:5000
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_url http://ct:5000
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken memcached_servers ct:11211
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_type password
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_name service
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken username glance
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken password GLANCE_PASS
openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
openstack-config --set /etc/glance/glance-registry.conf glance_store stores file,http
openstack-config --set /etc/glance/glance-registry.conf glance_store default_store file
openstack-config --set /etc/glance/glance-registry.conf glance_store filesystem_store_datadir /var/lib/glance/images/
初始化glance数据库,生成相关表结构;(不管有多少个controler,只需要初始化一次即可)
su -s /bin/sh -c "glance-manage db_sync" glance
开启glance服务(此处开启之后会生成存放镜像的目录/var/lib/glance/image)
[root@ct ~]# systemctl enable openstack-glance-api.service
[root@ct ~]# systemctl start openstack-glance-api.service
查看端口(也可以使用lsof -i:9292 )
[root@ct glance]# ss -anpt | grep 9292
赋予openstack-glance-api.service服务对存储设备的可写权限(-h:值对符号连接/软链接的文件修改)
[root@ct ~]# chown -hR glance:glance /var/lib/glance/
镜像导入
先上传cirros镜像到控制节点的/root,然后导入glance,最后查看是否创建成功
[root@ct ~]# openstack image create --file cirros-0.3.5-x86_64-disk.img --disk-format qcow2 --container-format bare --public cirros
查看镜像的两种方式:
openstack image list 可以看到镜像状态
glance image-list无法查看镜像状态
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/14696.html