测试通过Openstack Dashboard和Openstack CLI两种方式进行镜像下载、创建、注册以及镜像格式转换等基本操作。参考《HCIP-Cloud_Computing-OpenStack_V1.0_实验手册》

实验流程如下:
openstack学习-镜像管理

openstack dashboard操作

创建镜像

cirros镜像是一个比较小(12M左右)的Linux镜像,镜像格式为QCOW2,下载后可以直接注册使用
下载地址http://donload.cirros-cloud.net/0.4.0/
选择“cirros-0.4.0-x86_64-disk.img"
openstack学习-镜像管理

在使用admin用户登陆Openstack Dashboard界面,在左侧导航栏选择"项目-计算-镜像”,进入镜像列表,单击创建“创建镜像”
openstack学习-镜像管理

按照如下信息创建镜像
镜像名称,Img_web
镜像格式,选择QCOW2-QEMU Emulator
最小磁盘,选择1GB
最小RAM,选择128MB
镜像共享,选择公开表示该镜像可以被其他项目共享,私有表示只被所属的项目使用,此处选择 私有
受保护性,选择是表示该镜像不允许被删除,选择否表示该镜像可以被删除,此处选择是
openstack学习-镜像管理
单击“创建镜像“,完成镜像的创建
返回镜像列表,等待镜像状态变为 ”运行中“,表示镜像注册成功
openstack学习-镜像管理

修改镜像

选择”项目-计算-镜像”,在操作列表中选择“编辑镜像”
openstack学习-镜像管理

在如下弹出的界面可以完成镜像信息的修改

openstack学习-镜像管理

openstack cli操作

下载镜像

下载镜像(cirros), 在宿主机中将镜像文件上传到controller节点

scp -P 2230 cirros-0.4.0-x86_64-disk.img osbash@127.0.0.1:/home/osbash

登陆controller节点查看镜像文件详细信息

qemu-img info cirros-0.4.0-x86_64-disk.img

openstack学习-镜像管理

创建注册镜像

导入admin用户环境变量
openstack镜像相关命令是openstack image

创建镜像“Img_cli",镜像格式为”QCOW2",镜像设置为“Private”和“Protected"

openstack image create --disk-format qcow2 --container-format bare --min-disk 1 --min-ram 128 --private --protected --file ./cirros-0.4.0-x86_64-disk.img Img_cli

openstack学习-镜像管理
然后查看镜像列表

openstack image list

openstack学习-镜像管理

修改镜像

将镜像设置为”public"

openstack image set --public --unprotected Img_cli

查看镜像详细信息

openstack image show Img_cli

openstack学习-镜像管理

共享镜像

将镜像设置为"shared"

openstack image set --shared Img_cli

导入用户“User_cli_01"的环境变量,查看镜像列表中是否会显示镜像”Img_cli"

. User_cli_01-openrc.sh
openstack image list

openstack学习-镜像管理
可以看到,改为共享后,镜像Img_cli会被用户User_cli_01-openrc.sh看到

导入admin的环境变量,并查看镜像列表和项目列表

. admin-openrc.sh
openstack image list
openstack project list

openstack学习-镜像管理
记录镜像“Img_cli"和”Project_cli"的ID
将镜像“Img_cli"添加到项目”Project_cli"中

openstack image add project <IMAGE_ID> <PROJECT_ID>

openstack学习-镜像管理
执行完成后,查看状态为“pending"

导入用户”User_cli_01"的环境变量,查看能否显示共享镜像

. User_cli_01-openrc.sh
openstack image list

openstack学习-镜像管理

转换镜像格式

QCOW2格式支持镜像的压缩,所以通常会将其他格式的镜像转换成QCOW2格式在上传到openstack中。
本次将测试VMDK格式的Ubuntu镜像转换为QCOW2格式
首先下载ubuntu镜像

wget http://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.vmdk

然后将镜像文件复制到Controller节点的/home/osbash目录下

scp -P 2230 bionic-server-cloudimg-amd64.vmdk osbash@127.0.0.1:/home/osbash

然后进入controller节点,导入用户admin环境变量,并查看镜像文件

ssh -p 2230 osbash@127.0.0.1
. admin_openrc.sh
qemu-img info bionic-server-cloudimg-amd64.vmdk

openstack学习-镜像管理
执行以下命令,将镜像从VMDK格式转换为QCOW2格式

qemu-img convert -f vmdk -O qcow2 -c -p bionic-server-cloudimg-amd64.vmdk bionic-server-cloudimg-amd64.qcow2

其中:
-f 指定输入磁盘的镜像格式
-O 指定输出格式
-c 目标只能被压缩成QCOW2格式
-p 显示转换进度
等待镜像格式转换完成
openstack学习-镜像管理
执行以下命令,查看转换后镜像格式信息

qemu-img info bionic-server-cloudimg-amd64.qcow2 

openstack学习-镜像管理
执行以下命令,创建镜像Ubuntu_cli,格式为QCOW2,镜像状态为Public和Unprotected

openstack image create --disk-format qcow2 --container-format bare --min-disk 1 --min-ram 128 --public --unprotected --file ./bionic-server-cloudimg-amd64.qcow2 Ubuntu_cli

openstack学习-镜像管理

导出镜像

查看镜像列表

openstack image list

openstack学习-镜像管理
保存镜像“Ubuntu_cli"到本地
openstack image save --file Ubuntu.qcow2 Ubuntu_cli

然后查看保存的镜像文件
openstack学习-镜像管理