「实验笔记」华为HCIE(云服务)2.0-迁移实验-传统应用架构迁移

实验介绍
shell 复制代码
本实验先是在华为云上搭建了WordPress、自建mysql以及配置OBS存储,来模拟待迁移的环境。
随后通过华为云的迁移工具,将源环境迁移至华为云的目标环境(另一个区域)

1、使用SMS(主机迁移服务)迁移应用服务器(部署WordPress的ECS)
2、使用DRS(数据复制服务)迁移mysql数据库(自建 --> RDS)
3、使用OMS(对象存储迁移服务)迁移OBS


#迁移,主要迁什么?
网络:网段规划,ip变更,域名解析等等
计算:ECS部署的服务,CCE容器化迁移等
存储:块存储、共享存储、对象存储
数据库:自建到云服务,异构迁移

#关于网络迁移规划实践经验说明:
全量迁移(迁移后,原环境完全搬迁到云上):源IP段和目的IP段可以一致,减轻由于迁移后IP变化导致的各种问题。
部分迁移(迁移后,还要和原IDC环境有几成):规划好网段,尽量不要重叠。例如:VPN网段不能重叠。
总原则:网络迁移时,要考虑好网段的规划,有服务集成调用,尽量避免网段重叠。(使用内网DNS来规避问题)

#官方手册391 ~ 438页
实验组网图
实验步骤
shell 复制代码
#部署模拟迁移环境 (北京四)
1、创建基本环境:VPC、子网、安全组
2、自建mysql数据库,使用DAS创建数据库
3、部署wordpress
4、创建OBS桶,及小权限IAM账号,并给账号授权
5、安装配置wp的OBS插件 (不在本地保留备份?)

#准备迁移目标区域资源 (上海二)
6、创建基本环境:VPC、子网、安全组
7、创建OBS桶,创建OBS桶,及小权限IAM账号,并给账号授权(其实这里少一个权限)
8、创建RDS(注意选择5.6和自建数据库保持一致)
DRS创建需要等待,所以这里建议先创建出来,节省时间

#迁移
9、DRS(数据复制服务):创建在线迁移任务,保持增量迁移
10、SMS(主机迁移):直接在目标区域创建ECS
11、OMS(对象存储迁移):注意:生产实践中,不要使用大权限的AK/SK!

12、主机迁移完成后,修改目标区域的应用配置:公网ip地址、数据库地址、OBS插件配置信息
13、重启httpd服务,并验证同步效果
资源/网络规划
shell 复制代码
#北京四
vpc-wordpress(10.100.0.0/16)-- subnet-wordpress(10.100.0.0/24)
sg-web、sg-db
ECS(应用服务器)、ECS(自建数据库服务器)、OBS桶
SMS、DRS、OMS
小权限IAM账号(仅OBS桶)

#上海二
vpc-wordpress-new(10.100.0.0/16)-- subnet-wordpress-new(10.100.0.0/24)
sg-web-new、sg-db-new
ECS(应用服务器)、RDS(数据库服务)、OBS桶
小权限IAM账号(仅OBS桶)

#IAM账号:
hcie-sms:SMS FullAccess、ECS FullAccess、VPC FullAccess
hcie-obs:obs桶授读写权限
hcie-obs-new:obs桶授读写权限,创建自定义权限


#感谢 淘客科技@华为云 提供的实验资源
自建mysql数据库
shell 复制代码
#已做好脚本,可以快速安装
https://blog.csdn.net/luckcxy/article/details/129141627

#安装数据库
cd /opt
wget https://hciecloud.obs.cn-north-4.myhuaweicloud.com/MySQL-5.6.45-1.el6.x86_64.rpm-bundle.tar
mkdir mysql_install
tar -xvf MySQL-5.6.45-1.el6.x86_64.rpm-bundle.tar -C mysql_install
cd mysql_install
yum -y remove mariadb*
yum install -y MySQL-shared-compat-5.6.45-1.el6.x86_64.rpm
yum install -y MySQL-server-5.6.45-1.el6.x86_64.rpm
yum install -y MySQL-client-5.6.45-1.el6.x86_64.rpm
yum install -y MySQL-devel-5.6.45-1.el6.x86_64.rpm
yum install -y MySQL-shared-5.6.45-1.el6.x86_64.rpm

#修改配置文件
cat << EOF >> /etc/my.cnf
[mysqld]
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
lower_case_table_names = 1
innodb_strict_mode = 1
sql_mode =
symbolic-links=0
character_set_server = utf8
log-bin = mysql-bin
binlog_format=row
server-id = 2
expire_logs_days = 10
slave_skip_errors = 1062
innodb_strict_mode = 0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
EOF

cat /etc/my.cnf

systemctl start mysql
systemctl status mysql

#修改数据库密码
vim mysql_pass.sh

chmod +x mysql_pass.sh
./mysql_pass.sh

mysql -u root -p

grant all privileges on *.* to root@"%" identified by "123456";
flush privileges;

quit

#使用DAS登录自建数据库(注意安全组的放通 100.0.0.0/8)
#创建 wordpress 数据库,编码:utf8
修改数据库密码脚本
shell 复制代码
#!/bin/bash
# 安装 expect 插件
yum install -y expect
# 修改密码
pass=`awk -F"[ :]+" 'NR==1{print $NF}' /root/.mysql_secret`
/bin/expect << EOF
spawn /usr/bin/mysql -h127.0.0.1 -uroot -p`echo -e $pass`
expect "mysql>"
send "SET PASSWORD FOR root@localhost=PASSWORD('123456');"
send "\n"
expect "mysql>"
send 'flush privileges\n'
expect "mysql>"
send 'quit\n'
interact
部署wordpress
shell 复制代码
yum install httpd -y

wget https://hciecloud.obs.cn-north-4.myhuaweicloud.com/remi-release-7.rpm
rpm -ivh remi-release-7.rpm
yum install --enablerepo=remi --enablerepo=remi-php56 -y php php-opcache php-devel php-mysqlnd phpgd php-redis

wget https://hciecloud.obs.cn-north-4.myhuaweicloud.com/wordpress-5.2.3-zh_CN.zip
unzip wordpress-5.2.3-zh_CN.zip
ls -l

cp -rf wordpress /var/www/html/

cd /var/www/html/wordpress
cp wp-config-sample.php wp-config.php
vi wp-config.php
#修改数据库相关信息(4项)

#对 WordPress 目录授权
cd /var/www/html/wordpress
echo -e "define(\"FS_METHOD\", \"direct\");\ndefine(\"FS_CHMOD_DIR\",0777);\ndefine(\"FS_CHMOD_FILE\", 0777);">> wp-config.php
tail -n 5 wp-config.php
chmod -R 777 wp-content/

systemctl start httpd
systemctl enable httpd
ps -ef |grep httpd

#打开浏览器,访问,并完成安装注册 (注意,要带上下文 wordpress)
http://ECS的EIP/wordpress
http://ECS的EIP/wordpress/wp-admin
#配置OBS,安装OBS插件(410页)
北京四:ECS安装SMS
shell 复制代码
#您需要在源端服务器上安装迁移Agent并且输入目的端服务器所在华为云的AK/SK
#已创建独立IAM账号,并完成了授权:
hcie-sms:SMS FullAccess、ECS FullAccess、VPC FullAccess

#安装依赖
yum install -y rsync

#下载Agent
wget -t 3 -T 15 https://sms-agent-2-0-cn-north-1.obs.cn-north-1.myhuaweicloud.com/SMS-Agent.tar.gz
tar -zxvf SMS-Agent.tar.gz
cd SMS-Agent
./startup.sh

#tar -zxvf SMS-Agent.tar.gz   && cd SMS-Agent  &&    ./startup.sh

#开放安全组端口(注意:是目的端!)
Linux系统文件级迁移开放22端口,块级迁移开放8900端口、22端口。
ping端口要开放,不然会失败
以上端口,只对源端服务器开放。
OMS迁移
切换,目的端所在区域
源端桶已经授权IAM读写权限
目的端桶已经授权IAM读写权限
目的端IAM账号,由于要列举所有桶,需要自定义权限。(直接给用户(hcie-obs-new)授权,迁移后取消权限)
参见:https://support.huaweicloud.com/oms_faq/topic_0000001084426802.html#ZH-CN_TOPIC_0000001084426802__section52621148113411
修改目标区域的配置信息
shell 复制代码
cd /var/www/html/wordpress/
vim wp-config.php
define( 'WP_HOME', 'http://迁移后的 wordpress 的外网 ip/wordpress' );
define( 'WP_SITEURL', 'http://迁移后的 wordpress 的外网 ip/wordpress' );
#数据库地址(可以通过内网DNS来规避这一步)

define( 'WP_HOME', 'http://x.x.x.x/wordpress' );
define( 'WP_SITEURL', 'http://x.x.x.x/wordpress' );

# 更换 option_name 为 siteurl 的 option_value
update wp_options set option_value = "http://www.b.com" where option_name = "siteurl";
# 更换 option_name 为 home 的 option_value
update wp_options set option_value = "http://www.b.com" where option_name = "home";
# 更改网站内容数据表
UPDATE wp_posts SET post_content=REPLACE(post_content, 'www.a.com', 'www.b.com');


修改wp-config.php(自动更新地址) 1、在wp-config.php中,添加下面一行内容:

define('RELOCATE',true);

#登录系统,修改OBS配置
清理资源
shell 复制代码
#如果连续做实验3的话,就不需要删除
相关推荐
SoraLuna1 小时前
「Mac畅玩鸿蒙与硬件47」UI互动应用篇24 - 虚拟音乐控制台
开发语言·macos·ui·华为·harmonyos
工业甲酰苯胺2 小时前
分布式系统架构:服务容错
数据库·架构
冷眼看人间恩怨3 小时前
【Qt笔记】QDockWidget控件详解
c++·笔记·qt·qdockwidget
Java程序之猿4 小时前
微服务分布式(一、项目初始化)
分布式·微服务·架构
AORO_BEIDOU4 小时前
单北斗+鸿蒙系统+国产芯片,遨游防爆手机自主可控“三保险”
华为·智能手机·harmonyos
博览鸿蒙6 小时前
鸿蒙操作系统(HarmonyOS)的应用开发入门
华为·harmonyos
小蜗牛慢慢爬行6 小时前
Hibernate、JPA、Spring DATA JPA、Hibernate 代理和架构
java·架构·hibernate
思忖小下8 小时前
梳理你的思路(从OOP到架构设计)_简介设计模式
设计模式·架构·eit
Hejjon9 小时前
SpringBoot 整合 SQLite 数据库
笔记