169
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
天翼云服务器最佳实践-线下OpenStack环境导入公有云环境

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/500G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>

4、阿里云服务器2核2G3M仅99元/年、2核4G5M仅199元/年,新老同享,点击抢购>>> 

5、腾讯云服务器2核2G4M仅99元/年、新老同享,点击抢购>>>   



点击这里点击这里注册天翼云VIP帐号,立即体验弹性高性能计算>>>

本文为您介绍如何在线下OpenStack环境导入公有云环境。

操作场景

在线下环境中,很多用户使用OpenStack构建云环境。为了降低成本,部分用户选择将线下OpenStack环境迁移至云服务商。此次场景将模拟OpenStack线下环境的云主机迁移到天翼云上,利用天翼云提供的服务提高资源运维管理能力,缩小成本。

架构迁移图示:

image.png

操作步骤

本文中将使用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,并双击打开。

image.png

步骤2:如果结果如下图所示,标明已经支持虚拟化。

image.png

步骤3: 在虚拟机中安装OpenStack(all-in-one)。

本次使用packstack自动安装rocky版本,准备工作如下:

1)执行以下命令,禁止使用NetworkManager,配置静态IP。

systemctl stop NetworkManager && systemctl disable NetworkManager
vim /etc/sysconfig/network-scripts/ifcfg-ens33

在配置文件中修改IP如下图后保存。

image.png

2)执行以下命令,修改主机名。

hostname set-hostname controller

3)如下图所示,将主机名与IP映射写入hosts。

image.png

4) 执行以下命令,禁用firewalld。

hostname set-hostname controller
systemctl stop firewalld && systemctl disable firewalld
setenforce 0

5)修改selinux配置文件,将SELINUX设置为disabled。

image.png

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管理页面。

image.png

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组件。

下载路径在“镜像服务”>“私有镜像”>“创建私有镜像”页面中连接下载。

image.png

image.png

根据说明文档安装后关闭虚拟机。

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上传)。

image.png

image.png

23)创建私有镜像。

通过“镜像服务”>“私有镜像”>“创建私有镜像”,选择镜像文件,填写对象的地址后,转为私有镜像

其中地址可以在对象存储控制台,“更多”>“复制URL”将地址复制过来。

image.png

image.png

24)创建成功后,“弹性云主机”>“创建云主机”,镜像处选择私有镜像。创建完成后可进入云主机查看数据完整性。


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!