Chapter 5 镜像服务(Image service)

5.1 镜像服务的概念

OpenStack镜像服务能够使用户发现、注册(导入)、查询虚拟机镜像。它通过REST API来查询虚拟机镜像的元数据从而获取镜像文件。这里镜像服务安装在控制节点上,默认存储镜像的路径为/var/lib/glance/images/,可以在/etc/glance/glance-api.conf文件来修改路径参数filesystem_store_datadir。注意,镜像文件将存放在之前配置的共享存储上。

OpenStack镜像服务包括以下几个组件:

glance-api:接受关于镜像发现、检索、存储的API调用

glance-registry:存储、处理和检索关于镜像的元数据,元数据包括如大小,类型等选项

数据库

镜像文件存储仓库

5.2 安装配置镜像服务(Image service)

5.2.1 配置预先环境

1. 创建镜像服务数据库、用户及权限:

[[email protected] ~]# mysql -uroot -piforgot

MariaDB [(none)]> CREATE DATABASE glance;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO ‘glance‘@‘localhost‘ IDENTIFIED BY ‘glancepw‘;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO ‘glance‘@‘%‘ IDENTIFIED BY ‘glancepw‘;

MariaDB [(none)]> flush privileges;

2. 创建镜像服务用户、角色、服务实体以及API终端:

[[email protected] ~]# source admin-openrc.sh

[[email protected] ~]# openstack user create --password glancepw glance

[[email protected] ~]# openstack role add --project service --user glance admin

[[email protected] ~]# openstack service create --name glance \

--description "OpenStack Image service" image

[[email protected] ~]# openstack endpoint create \

--publicurl http://controller:9292 \

--internalurl http://controller:9292 \

--adminurl http://controller:9292 \

--region RegionOne \

image

5.2.2 安装配置镜像服务组件

1. 安装相关软件包:

[[email protected] ~]# yum -y install openstack-glance python-glance python-glanceclient glusterfs-fuse

由于镜像文件存储在GluterFS存储系统发布的共享空间里,所以需要安装glusterfs-fuse客户端。

2. 编辑/etc/glance/glance-api.conf文件:

[[email protected] ~]# cp /etc/glance/glance-api.conf{,.bak}

[[email protected] ~]# > /etc/glance/glance-api.conf

[[email protected] ~]# vi /etc/glance/glance-api.conf

[DEFAULT]

notification_driver = noop

verbose = True

[database]

connection = mysql://glance:[email protected]/glance

[keystone_authtoken]

auth_uri = http://controller:5000

auth_url = http://controller:35357

auth_plugin = password

project_domain_id = default

user_domain_id = default

project_name = service

username = glance

password = glancepw

[paste_deploy]

flavor = keystone

[glance_store]

default_store = file

filesystem_store_datadir = /var/lib/glance/images/

backup-volfile-servers = compute2

另外,根据设置需求将glusterfs文件系统设置为开机自动挂载:

[[email protected] ~]# vi /etc/fstab

compute1:/glance-volume /var/lib/glance/images glusterfs defaults,_netdev 0 0

3. 编辑/etc/glance/glance-registry.conf文件:

[[email protected] ~]# cp /etc/glance/glance-registry.conf{,.bak}

[[email protected] ~]# > /etc/glance/glance- registry.conf

[[email protected] ~]# vi /etc/glance/glance- registry.conf

[DEFAULT]

notification_driver = noop

verbose = True

[database]

connection = mysql://glance:[email protected]/glance

[keystone_authtoken]

auth_uri = http://controller:5000

auth_url = http://controller:35357

auth_plugin = password

project_domain_id = default

user_domain_id = default

project_name = service

username = glance

password = glancepw

[paste_deploy]

flavor = keystone

4. 填充镜像服务数据库:

[[email protected] ~]# su -s /bin/sh -c "glance-manage db_sync" glance

5. 启动镜像服务并将其设置为开机自启:

[[email protected] ~]# systemctl start openstack-glance-api openstack-glance-registry

[[email protected] ~]# systemctl enable openstack-glance-api openstack-glance-registry

5.3 虚拟机镜像介绍

虚拟机镜像(virtual machine image)其实就是一个单独的文件,包含一个已安装了可引导的操作系统的磁盘。虚拟机镜像可以是多种格式(后面章节将介绍如何进行格式转换):

Raw:原始镜像是最简单的格式,KVM和Xen Hypervisor都可以支持这种格式。可以认为它就是一个块设备文件。这里不推荐使用dd命令生成一个块设备文件来创建原始镜像

qcow2:qcow2(QEMU copy-on-write version 2)是KVM hypervisor最常用的一种镜像格式。它具有一些原始镜像所不具备的特性:

使用稀疏表示(sparse representation),使镜像文件更小,这也意味着在上传时速度更快

支持快照功能,因此在必要时OpenStack会自动将原始镜像(raw image)转换成qcow2格式

VMDK:VMware ESXi使用VMDK镜像格式

VDI:VirtualBox使用VDI镜像格式

ISO:ISO是标准的磁盘镜像格式,通过CD或DVD来启动系统

5.3.1 磁盘镜像格式

虚拟机镜像磁盘格式其实就是底层磁盘镜像格式。虚拟厂商提供了不同的格式,常见的有:

raw:一种非结构化的磁盘镜像格式,如果一个文件不具备扩展性,它可能就是原始格式(raw format)

qcow2:QEMU仿真器(emulator)所支持的、可动态扩展并可进行拷贝(Copy on Write)的格式

5.4 手动创建镜像

获得镜像最快的方式就是下载官方发布的镜像文件、或者别人已创建的镜像文件。如果需要定制个性化的镜像文件,可根据需求手动创建镜像文件。

5.4.1 预设环境

在使用libvirt启动一台虚拟机之前,确认libvirt默认网络"default"是否已开启,这个网络必须是激活状态,并能连接到网络。通过virsh net-list命令来进行查看:

[[email protected]_env ~]# virsh net-list

Name      State  Autostart   Persistent

------------------------------------------------------------------------------

default      active  yes       yes

如果网络没有启动,可以通过下面命令将其开启:

[[email protected]_env ~]# virsh net-start default

注意,test_env是实验环境的宿主机,安装了CentOS6.5-x86_64系统,因此支持KVM虚拟机创建。

5.4.2 使用virt-manager X11 GUI图像界面安装CentOS虚拟机

如果使用图形界面进行虚拟机的安装,可以通过virt-manager命令开启图形配置界面来设置虚拟机安装所需参数:

[[email protected]_env ~]# virsh manager

接下来配置安装环境,这里安装的操作系统是CentOS6.5 x86_64:

存放位置为/var/lib/libvirt/images/目录下,名称为CentOS6-x86_64-test.img。

启动虚拟机后,通过图形界面完成操作系统的安装:

重启之后,需要完成下面几个步骤:

清空/etc/udev/rules.d/70-persistent-net.rules文件的内容

(如有该文件的话)清空/lib/udev/rules.d/75-persistent-net-generator.rules文件的内容,该文件用于生成上面的70-persistent-net.rules文件

移除/etc/sysconfig/network-scripts/ifconfigeth0中配置参数HWADDR和UUID,并确认参数ONBOOT为yes

另外,如有必要请关闭防火墙和SELinux服务

5.4.3 上传镜像到OpenStack镜像服务

首先将宿主机上的镜像文件上传到控制节点,然后通过glance命令创建OpenStack Image:

[[email protected]_env ~]# cd /var/lib/libvirt/images/

[[email protected]_env images]# scp CentOS6-x86_64-test.img 10.0.0.11:~

[[email protected]_env images]# ssh 10.0.0.11

[[email protected] ~]# source admin-openrc.sh

[[email protected] ~]# glance image-create --name "CentOS6-x86_64-test" --file CentOS6-x86_64-test.img \

--disk-format qcow2 --container-format bare --visibility public --progress

[[email protected] ~]# glance image-list

| ID                              | Name                |

| 534d920c-02eb-4c17-beb9-918650e92bb9 | CentOS6-x86_64-test |

5.5 修改镜像文件

当获取了一个镜像文件,在上传到OpenStack Image服务之前可能需要对其进行修改,这时需要使用特定工具来执行。

5.5.1 guestfish

guestfish是一个出自libguestfs项目用于修改虚拟机内部文件的工具。guestfish不能直接将镜像文件挂载到本地文件系统,取而代之,它提供了一个shell交互接口,允许用户查看、编辑、删除文件等操作。

其功能在于,当需要修改一些配置信息(而不是直接启动虚拟机来进行修改),通过它来完成更加地方便实用。例如在上传镜像文件到OpenStack镜像服务时,需要修改一些特定的文件,包括清空/etc/udev/rules.d/70-persistent-net.rules等:

[[email protected] ~]# guestfish --rw -a CentOS6-x86_64-test.img

><fs> run

><fs> list-filesystems

/dev/sda1: ext4

/dev/vgsys/lvroot: ext4

/dev/vgsys/lvswap: swap

><fs> mount /dev/vgsys/lvroot /

><fs> vi /etc/udev/rules.d/70-persistent-net.rules

(清空文件内容,然后rw保存退出)

...

><fs> vi /etc/sysconfig/network-scripts/ifcfg-eth0

...

ONBOOT=yes

BOOTPROTO=dhcp

...

><fs> exit

时间: 2024-12-28 21:04:23

Chapter 5 镜像服务(Image service)的相关文章

openstack-4glance(镜像服务)

openstack openstack-4glance(镜像服务) Image service overview Image服务(glance)使用户能够发现,注册和检索虚拟机映像.它提供了一个 REST API,使您可以查询虚拟机图像元数据并检索实际图像.您可以将通过Image服务提供的虚拟机映像存储在各种位置,从简单的文件系统到OpenStack Object Storage等对象存储系统. Glance 是 OpenStack 镜像服务组件,glance 服务默认监听在 9292 端口,其

OpenStack镜像服务(Image service)的安装部署

OpenStack镜像服务(glance)允许用户发现.注册和恢复虚拟机镜像.Glance提供Rest API可以查询虚拟机镜像的metadata并且可以获取镜像.通过Glance,虚拟机镜像可以被存储到多种存储上,比如简单的文件存储或者对象存储(比如OpenStack中swift项目).一.OpenStack 镜像服务包含组件                                    图1.1. OpenStack glance组件  二.OpenStack 镜像服务安装    下

【N版】openstack——镜像服务glance(四)

[N版]openstack--镜像服务glance 一.openstack之glance镜像服务 1.1glance介绍 glance主要是由三部分组成 glance-api:接收云系统镜像的创建,删除,读取请求,类似nova-api,通过其他模块(glance-registry及image store)来完成诸如镜像的查找.获取.上传.删除等操作,api监听端口9292. glance-registry:云系统的镜像注册服务,用于与mysql数据库交互,存储或获取镜像的元数据(metadata

OpenStack 镜像服务Glance [三]

OpenStack 镜像服务Glance [三] openstack 时间:2016年11月28日 OpenStack镜像服务Glance介绍 创建虚拟机我们需要有glance的支持,因为glance是提供镜像服务 glance有两个比较重要的服务 Glance-api接受云系统镜像的构建.删除.读取请求 Glance-Registry云系统的镜像注册服务 我们需要配置glance-api的配置文件和glance-registry配置文件 glance不需要配置消息队列,但是glance需要配置

OpenStack —— 镜像服务Glance(三)

一.Glance介绍 Image service (glance)允许用户发现.注册和检索虚拟机映像.它提供了一个REST API,它允许你查询虚拟机镜像元数据来获取实际的镜像文件.你可以将Glance提供的虚拟机镜像像存储在各种位置,从简单的文件系统到对象存储系统. 在OpenStack整个云环境中,如果没有虚拟机镜像,就无法再计算节点上生成虚拟机,OpenStack基本上也是没有意义的,所以说镜像服务是OpenStack的一个核心服务. 生成虚拟机时,从Glance获取镜像也是比较简单的.当

5.添加镜像服务

添加镜像服务 这里是安装在控制器上 创建数据库 mysql -uroot -ptoyo123 CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'toyo123'; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'toyo123'; exit 创建服务凭据 source admi

openstack-mitaka之镜像服务管理安装配置部署

1.以root用户登陆,创建glance数据库,并为glance数据库授权 2.加载admin-openrc环境变量,用户证书 3.创建服务证书需要完成如下操作: 1)创建glance用户 2)添加 admin 角色到 glance 用户和 service 项目上. 3)创建glance服务实体 4.创建镜像服务的 API 端点: 5.安装glance软件包 6.编辑/etc/glance/glance-api.conf,具体配置如下: 1)[database]配置如下(系统文件的641行左右)

Openstack-glance镜像服务

Openstack-glance镜像服务 教程大纲 1. glance的服务组件介绍2. glance的安装部署 3. 上传镜像测试 1.创建glance的数据库 mysql -u root -p -e "create database glance;" mysql -u root -p -e "grant all privileges on glance.* to 'glance'@'localhost' identified by 'glance';" mysq

openstack部署安装(Icehouse版本)-控制节点(Controller)-镜像服务(glance)

Glance是OpenStack镜像服务组件,该组件提供虚拟机镜像的发现,注册,取得服务.通过Glance,虚拟机镜像可以被存储到多种存储上,比如简单的文件存储或者对象存储.Glance 组件完成镜像模板.快照的存储工作.Glance 主要包括了glance-api 和glaneregistry两个服务. 3.1 Install the Image Service(安装镜像服务) 3.1.1 在控制节点上安装glance服务 # yum install openstack-glance pyth