《云操作系统(OpenStack)第二版》学习笔记05-第五章:镜像服务Glance
《云操作系统(OpenStack)第二版》学习笔记05-第五章:镜像服务Glance
对着《云操作系统(OpenStack)》第五章做的。
一、5.1 Glance基本概念
Glance包含四个组件:
- Glance-api
- Database
- Storage repository for image files
- Metadata definition service
Glance部署在控制节点上。
二、5.2 数据库配置
1. 登录MySQL数据库
- mysql -uroot -p
2. 创建Glance数据库
- CREATE DATABASE glance;
3. 设置授权用户和密码
这里所指定的密码要和后面设置的密码以及配置文件中所定的密码相一致。
- GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '000000';
- GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY '000000';
- exit

enter description here
三、5.3 创建服务凭证和API端点
1. 使admin用户的环境变量生效
- cd /root
- source admin-openrc
2. 创建服务凭证
2-1. 创建名为glance的用户(user):
- openstack user create --domain default --password-prompt glance
输入两遍密码,我给glance设置的密码是000000。

2-2. 进行关联,即添加admin角色到glance用户和service项目
- openstack role add --project service --user glance admin
2-3. 创建Glance服务实体认证
- openstack service create --name glance --description "OpenStack Image" image

enter description here
3. 创建镜像服务的API端点
3-1. 创建公共端点
- openstack endpoint create --region RegionOne image public http://controller:9292

enter description here
3-2. 创建外部端点
- openstack endpoint create --region RegionOne image internal http://controller:9292

enter description here
3-3. 创建管理端点
- openstack endpoint create --region RegionOne image admin http://controller:9292

enter description here
四、5.4 安装并配置Glance
1. 安装Glance所需软件包
- yum install openstack-glance -y

enter description here
2. 配置Glance所需组件
- vi /etc/glance/glance-api.conf
2-1. 编辑[database]部分(大概在2089行)
- [database]
- connection=mysql+pymysql://glance:000000@controller/glance
2-2. 编辑[keystone_authtoken](大概在4859行),配置keystone认证服务访问
- [keystone_authtoken]
- www_authenticate_uri=http://controller:5000
- auth_url=http://controller:5000
- memecached_servers=controller:11211
- auth_type=password
- project_domain_name=Default
- user_domain_name=Default
- project_name=service
- username=glance
- password=000000
2-3. 删除[paste_deploy]中flavor=keystone前面的*号(大概在5531行)。
- [paste_deploy]
- flavor=keystone
2-4. 编辑[glance_store](大概在3349行)部分,配置本地文件系统存储和镜像位置
- [glance_store]
- stores=file,http
- default_store=file
- filesystem_store_datadir=/var/lib/glance/images/
3. 同步数据库
- su -s /bin/sh -c "glance-manage db_sync" glance

enter description here
3-1. 验证是否同步成功
- mysql -uroot -p000000
- show databases;
- use glance;
- show tables;
- exit

enter description here
3-2. 启动Glance并设置开机自启动
- systemctl enable openstack-glance-api
- systemctl start openstack-glance-api
五、5.5 验证Glance服务
1. 生效admin用户环境变量
- source admin-openrc
2. 下载镜像
使用的是cirros镜像,可以从OpenStack get images网站上下载,我这里下载之后的文件名是cirros-0.5.1-x86_64-disk.img,改成了cirros.img,我把这个文件放在了控制节点的/目录下。

3. glance上传镜像
- glance image-create --name "cirros" --file /cirros.img --disk-format qcow2 --container-format bare --visibility public

enter description here
4. glance查看镜像
- glance image-list

enter description here
六、5.6 制作CentOS 7虚拟机镜像
1. 按照第二章的步骤安装虚拟机相关的软件
1-1. 安装kvm
- yum install qemu-kvm libvirt virt-install virt-manager virt-top libguestfs-tools mesa-libGLES-devel.x86_64 mesa-dri-drivers -y
1-2. 启动并设置开机启动libvirt服务
- systemctl enable libvirtd
- systemctl start libvirtd
1-3. 停止networkManager服务
- systemctl stop NetworkManager
1-4. 修改网卡配置文件
- cp /etc/sysconfig/network-scripts/ifcfg-enp0s3 /etc/sysconfig/network-scripts/ifcfg-br0
1-4-1. 修改/etc/sysconfig/network-scripts/ifcfg-enp0s3文件内容
- TYPE=Ethernet
- BRIDGE=br0
- BOOTPROTO=static
- NAME=不用改
- UUID=不用改
- DEVICE=不用改
- ONBOOT=yes
1-4-2. 修改/etc/sysconfig/network-scripts/ifcfg-br0的文件内容
- TYPE=bridge
- BOOTPROTO=static
- NAME=
- UUID=
- DEVICE=br0
- ONBOOT=yes
- NM_CONTROLLED=no
- IPADDR=192.168.100.100
- PREFIX=24
- GATEWAY=192.168.100.1
1-5. 禁用网络过滤器并重新加载Kernel参数
vi /etc/sysctl.conf,添加以下内容:
- net.ipv4.ip_forward = 0
- net.bridge.bridge-nf-call-ip6tables = 0
- net.bridge.bridge-nf-call-iptables = 0
- net.bridge.bridge-nf-call-arptables = 0
1-6. 重启网络服务
- systemctl restart network
- systemctl restart NetworkManager
2. 验证内核模块
- lsmod | grep kvm
正确情况下,可以看到关于kvm的信息,但是我这里是空的。
关闭虚拟机,虚拟机在cpu设置中启用嵌套VT-x/AMD-V,关闭win11的内核隔离功能,试一下能不能行。
可以,居然可以。

3. 连接Hypervisor
- virsh connect --name qemu:///system
- virsh list

enter description here
正常情况下,现在什么也看不到。
4. centos安装图形界面
接下来,要在图形界面中安装centos,可是我这里没有图形界面,所以要安装server with GUI。
- yum group install -y "server with GUI"
为了防止以后使用,在计算节点上也安装了。
安装完成后,使用如下命令设置默认启动图形界面
- systemctl set-default graphical.target
重启,生效。
另外,自从设置了br0这个网桥后,发现每次启动系统后网络地址都不对,需要使用命令重启network和NetworkManager两服务一下才能正常。
既然图形界面安装了,那么这把virtualbox的增强工具也安装了。
5. 准备CentOS 7安装镜像
5-1. 我把CentOS-7-x86_64-Minimal-2009.iso这个系统安装镜像放在了控制节点的/opt下面。

enter description here
5-2. 到/tmp目录中,创建一个10GB大小的磁盘镜像文件,名字为centos7_mini
- cd /tmp/
- qemu-img create -f raw centos7_mini.img 10G
5-3. 安装KVM(所以第二章做的事情还是不应该删除的)
- yum install qemu-kvm libvirt virt-install virt-manager virt-top libguestfs-tools mesa-libGLES-devel.x86_64 mesa-dri-drivers virt-viewer -y
5-4. 部署虚拟机
- virt-install --name centos_mini --ram 1024 --vcpus=1 --disk path=/tmp/centos7_mini.img --network network:default,model=virtio --arch=x86_64 --os-type=linux --graphics vnc,port=5910 --cdrom /opt/CentOS-7-x86_64-Minimal-2009.iso --boot cdrom

enter description here
进入图形界面查看:
选中虚拟机,右键选择open打开,然后进行系统安装。

enter description here
5-5. 安装完成后的操作
5-5-1. 查看虚拟机状态
- virsh list --all

enter description here
5-5-2. 关闭虚拟机
- virsh destroy centos_mini
5-5-3. 再次查看虚拟机
- virsh list --all

enter description here
5-6. 镜像格式转换
把img格式转换为qcow2格式。
- qemu-img convert -f raw -O qcow2 /tmp/centos7_mini.img /centos7_mini.qcow2
然后就可以用这个镜像了。
5-7. glance上传并查看镜像
- source /root/admin-openrc
- glance image-create --name "centos7.9.2009-minimal" --file /centos7_mini.qcow2 --disk-format qcow2 --container-format bare --visibility public
- glance image-list

enter description here
第五章做完了。
浙公网安备 33010602011771号