操作场景
在线下环境中,很多用户使用OpenStack构建云环境。为了降低成本,部分用户选择将线下OpenStack环境迁移至云服务商。此次场景将模拟OpenStack线下环境的云主机迁移到天翼云上,利用天翼云提供的服务提高资源运维管理能力,缩小成本。
架构迁移图示:
操作步骤
本文中将使用VMWare搭建在本地搭建一套OpenStack环境来模拟迁移导入的过程。
模拟环境如下:
- OS:CentOS Linux release 7.9.2009
- VMWare Workstation:16.1.0
- 模拟流程包含如下步骤:
- 安装OpenStack环境
- 创建云主机
- 导出云主机
- 导入天翼云
- 创建云主机(天翼云环境)
安装OpenStack环境。
OpenStack能够创建云主机,我们需要保障如下要求符合:
(1) CPU支持虚拟化
(2) 内存至少8G以上
步骤1:检查CPU是否支持虚拟化
下载LeoMoon CPU-V,并双击打开。
步骤2:如果结果如下图所示,标明已经支持虚拟化。
步骤3: 在虚拟机中安装OpenStack(all-in-one)。
本次使用packstack自动安装rocky版本,准备工作如下:
1)执行以下命令,禁止使用NetworkManager,配置静态IP。
systemctl stop NetworkManager && systemctl disable NetworkManager vim /etc/sysconfig/network-scripts/ifcfg-ens33
在配置文件中修改IP如下图后保存。
2)执行以下命令,修改主机名。
hostname set-hostname controller
3)如下图所示,将主机名与IP映射写入hosts。
4) 执行以下命令,禁用firewalld。
hostname set-hostname controller systemctl stop firewalld && systemctl disable firewalld setenforce 0
5)修改selinux配置文件,将SELINUX设置为disabled。
6)执行以下命令,配置yum源。
[root@controller yum.repos.d(keystone_admin)]# cat CentOS-Base.repo [base] name=CentOS-$releasever - Base - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib - mirrors.aliyun.com
[root@controller yum.repos.d(keystone_admin)]# cat epel.repo [epel] name=Extra Packages for Enterprise Linux 7 - $basearch # It is much more secure to use the metalink, but if you wish to use a local mirror # place its address here. #baseurl=http://download.example/pub/epel/7/$basearch metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch&infra=$infra&content=$contentdir failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 [epel-debuginfo] name=Extra Packages for Enterprise Linux 7 - $basearch - Debug # It is much more secure to use the metalink, but if you wish to use a local mirror # place its address here. #baseurl=http://download.example/pub/epel/7/$basearch/debug metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch&infra=$infra&content=$contentdir failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1 [epel-source] name=Extra Packages for Enterprise Linux 7 - $basearch - Source # It is much more secure to use the metalink, but if you wish to use a local mirror # place it's address here. #baseurl=http://download.example/pub/epel/7/source/tree/ metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch&infra=$infra&content=$contentdir failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1 [root@controller yum.repos.d(keystone_admin)]# cat CentOS-OpenStack-rocky.repo [centotack-rocky] name=openstack-rocky baseurl=https://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-rocky/ enabled=1 gpgcheck=0 [qume-kvm] name=qemu-kvm baseurl= https://mirrors.aliyun.com/centos/7/virt/x86_64/kvm-common/ enabled=1 gpgcheck=0
7) 执行以下命令,安装packstack。
#安装leatherman yum -y install leatherman #安装packstack yum -y install openstack-utils openstack-packstack
8) 执行以下命令,生成应答文件并编辑配置文件。
packstack --gen-answer-file=/root/openstack.ini vim openstack.ini #除修改以下所列项外,其他项不保持变(密码字段,可根据需要自行修改,这里全部配置为了 123456) CONFIG_DEFAULT_PASSWORD=123456 CONFIG_AODH_INSTALL=n CONFIG_MARIADB_USER=root CONFIG_MARIADB_PW=123456 CONFIG_KEYSTONE_DB_PW=123456 CONFIG_KEYSTONE_ADMIN_EMAIL=root@localhost CONFIG_KEYSTONE_ADMIN_USERNAME=admin CONFIG_KEYSTONE_ADMIN_PW=123456 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan,flat CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vxlan CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch CONFIG_NEUTRON_L2_AGENT=openvswitch CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=extnet:br-ex CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 CONFIG_NEUTRON_OVS_EXTERNAL_PHYSNET=extnet CONFIG_PROVISION_DEMO=n
9)执行以下命令,通过应答文件进行安装。
packstack --answer-file=/root/openstack.ini
10)打开浏览器,输入http://IP,本示例为http://192.168.43.128/,登录OpenStack管理页面。
11)执行以下命令,导入镜像。
openstack image create "centos" --file centos.img --disk-format qcow2 --container-format bare --public
12)执行以下命令,创建网络。
openstack create net vnet openstack network create --provider-network-type=flat --provider-physical-network=extnet --external --share ext_net
13)执行以下命令,创建子网。
openstack subnet create subnet1 --network int --subnet-range 172.16.1.0/24 --gateway 172.16.1.1 openstack subnet create ex --network ext_net --gateway 192.168.101.254 --allocation-pool start=192.168.101.200,end=192.168.101.205 --subnet-range 192.168.101.0/24
14)执行以下命令,创建路由。
openstack router create route openstack router add subnet route ex openstack router add subnet route subnet1
15)执行以下命令,创建规格。
openstack flavor create --vcpus 1 --ram 512 --disk 10 test1
16)执行以下命令,创建密钥。
openstack keypair create cy
17)执行以下命令,创建虚拟机。
openstack server create --flavor test1 --image centos --nic net-id=cc9d7710-d82e-4109-9412-56ae02a18d7d --security-group default --key-name cy test
18)执行以下命令,连接虚拟机并上传qemu-ga、cloudinit以及virtio组件。
下载路径在“镜像服务”>“私有镜像”>“创建私有镜像”页面中连接下载。
根据说明文档安装后关闭虚拟机。
19)执行以下命令,将云主机转为image。
openstack server image create 1b1d3411-b755-4980-9da6-db01d8331600 --name cytestimg
20)执行以下命令,将image保存到本地(此时的镜像为raw格式)。
openstack server image create 1b1d3411-b755-4980-9da6-db01d8331600 --name cytestimg
21)执行以下命令,将镜像转换为qcow2格式(防止镜像过大,上传到桶失败)。
qemu-img convert -f raw -o qcow2 cytestimg centos.qcow2
22)将镜像上传到天翼云。
进入对象存储原生版,创建桶后,上传镜像到桶中(镜像较大建议通过oss api上传)。
23)创建私有镜像。
通过“镜像服务”>“私有镜像”>“创建私有镜像”,选择镜像文件,填写对象的地址后,转为私有镜像
其中地址可以在对象存储控制台,“更多”>“复制URL”将地址复制过来。
24)创建成功后,“弹性云主机”>“创建云主机”,镜像处选择私有镜像。创建完成后可进入云主机查看数据完整性。