本文介绍数据迁移之前的准备工作。
阿里云ECS实例
您需要将您的ECS实例按照以下方法将您的文件夹共享出来:
说明 在线数据迁移只支持专有网络下的ECS实例数据迁移,经典网络不支持。
- Windows系统若您的ECS实例是Windows系统,请参照以下步骤操作:
- 将您需要迁移的数据放在一个文件夹内,并将该文件夹共享。您可按照您的系统版本搜索设置文件共享的相关文档进行配置。
例如此处共享dir文件夹下的subdir子文件夹,则共享目录的路径为\\主机名称\dir\subdir。在创建源地址时,子目录配置为/dir/subdir。
- 修改Windows防火墙和杀毒软件设置,允许该实例所在专有网络VPC内的所有IP地址可以访问实例的445端口(若防火墙和杀毒软件未开启,请跳过此步骤)。
- 添加阿里云ECS安全组规则,允许该实例所在VPC网络中的所有IP可以访问实例的445端口。
- 将您需要迁移的数据放在一个文件夹内,并将该文件夹共享。您可按照您的系统版本搜索设置文件共享的相关文档进行配置。
- Linux系统若您的ECS实例是Linux系统,请参照以下步骤操作:
- 启用NFS服务,并将待迁移的文件夹共享。具体操作,请参见启用NFS服务(若您的系统已启用NFS服务,请跳过此步骤)。
例如此处共享data文件夹,则共享目录的路径为/data。在创建源地址时,子目录配置为/data。
- 修改Linux防火墙设置,放通NFS服务的端口。您可以使用rpcinfo -p localhost命令查看需放通的
portmapper
、mountd
、nfs
服务的相关端口,具体操作,请参见防火墙配置(如果防火墙未开启,请跳过此步骤)。 - 添加阿里云ECS安全组规则,允许该实例所在VPC网络中的所有IP可以访问实例的NFS服务相关端口。警告 为了您的数据安全,请不要将NFS服务端口开放给外网访问。
- 启用NFS服务,并将待迁移的文件夹共享。具体操作,请参见启用NFS服务(若您的系统已启用NFS服务,请跳过此步骤)。
阿里云对象存储OSS
创建目标存储空间,用于存放迁移的数据。具体操作,请参见创建存储空间。
创建RAM用户并授予相关权限
- 登录RAM控制台。
- 在左侧导航栏,选择 。
- 在用户页面,单击创建用户。
- 在创建用户页面的用户账号信息区域,输入登录名称和显示名称。
- 在访问方式区域,选中控制台访问和OpenAPI调用访问。并保存生成的账号、密码、AccessKey ID和AccessKey Secret。
- 控制台访问:设置控制台密码、需要重置密码和MFA多因素认证。
- OpenAPI调用访问:自动为RAM用户生成访问密钥(AccessKey),支持通过API或其他开发工具进行访问。
说明 如果需要跨账号迁移数据,请分别保存源阿里云账号和目标阿里云账号生成的RAM用户对应的账号、密码、AccessKey ID和AccessKey Secret。 - 创建RAM用户成功后,在用户页面,单击目标RAM用户 列的添加权限,授予RAM用户存储空间读写权限(AliyunOSSFullAccess)和在线迁移管理权限(AliyunMGWFullAccess)。
- 授权完成后,在左侧导航栏,单击概览。
- 在账号管理区域,单击用户登录地址下的链接,使用刚创建的RAM用户的用户名和密码进行登录。
附录:使用NFS服务
使用NFS服务前,您需要启用此服务,并在防火墙上开放NFS的端口。
说明 以下命令只能由有管理员权限的用户(root)来执行。
- 假设要把/data目录共享出来做为迁移数据源,请按照以下步骤配置:
- 启用NFS文件系统。
[root@test ~]# yum install -y nfs-utils
- 将/data文件夹设置共享。在/etc/exports文件中添加/data *(rw,no_root_squash,insecure)。
[root@test ~]# vi /etc/exports #若mountd端口大于1024,则需要加入'insecure': /data *(rw,no_root_squash,insecure)
说明请严格按照/etc/exports文件格式进行配置,您可执行
man 5 exports
命令查看具体的格式要求。如果配置错误,会导致客户端中挂载文件系统失败。
- 启动NFS服务。
[root@test ~]# systemctl start nfs.service
- 检查NFS服务显示如下状态,表示服务已正常。
[root@test ~]# systemctl status nfs.service â- nfs-server.service - NFS server and services Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled) Active: active (exited) since Thu 2018-12-06 15:47:03 CST; 58s ago Process: 10641 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl restart gssproxy ; fi (code=exited, status=0/SUCCESS) Process: 10623 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS) Process: 10621 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS) Main PID: 10623 (code=exited, status=0/SUCCESS) CGroup: /system.slice/nfs-server.service Dec 06 15:47:03 test systemd[1]: Starting NFS server and s... Dec 06 15:47:03 test systemd[1]: Started NFS server and se... Hint: Some lines were ellipsized, use -l to show in full.
- 添加开机启动。
[root@test ~]# systemctl enable nfs.service
- 检查rpcbind服务显示如下状态,表示服务已正常。
[root@test ~]# systemctl status rpcbind.service â- rpcbind.service - RPC bind service Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2018-12-06 15:47:03 CST; 7min ago Main PID: 10598 (rpcbind) CGroup: /system.slice/rpcbind.service └─10598 /sbin/rpcbind -w Dec 06 15:47:03 test systemd[1]: Starting RPC bind service... Dec 06 15:47:03 test systemd[1]: Started RPC bind service. Hint: Some lines were ellipsized, use -l to show in full.
- 启用NFS文件系统。
- CentOS 7版本的ECS实例默认使用firewall防火墙,您可以使用systemctl status firewalld命令来查看firewall防火墙是否处于开启状态。如果您使用的是iptables防火墙,请使用相应iptables命令参照下文firewall防火墙配置方式开放NFS服务所需端口。firewall防火墙配置步骤如下:
- 查看NFS需要开放的端口。
[root@test ~]# rpcinfo -p localhost program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 50382 status 100024 1 tcp 59133 status 100005 1 udp 20048 mountd 100005 1 tcp 20048 mountd 100005 2 udp 20048 mountd 100005 2 tcp 20048 mountd 100005 3 udp 20048 mountd 100005 3 tcp 20048 mountd 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 3 tcp 2049 nfs_acl 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 3 udp 2049 nfs_acl 100021 1 udp 37473 nlockmgr 100021 3 udp 37473 nlockmgr 100021 4 udp 37473 nlockmgr 100021 1 tcp 37688 nlockmgr 100021 3 tcp 37688 nlockmgr 100021 4 tcp 37688 nlockmgr
- 防火墙规则中新增开放
portmapper
、mountd
、nfs
服务的相关端口:tcp和udp协议的111、20048、2049三个端口。说明 因为mountd
服务使用的是一个随机端口,您需要先通过以下两种方式获取mountd
服务端口后再配置防火墙:- 使用rpcinfo -p localhost命令查看
mountd
服务当前使用的端口。 - 通过修改/etc/sysconfig/nfs文件中的
MOUNTD_PORT=xxx
,将mountd
服务端口固定。
- 使用rpcinfo -p localhost命令查看
- 依次添加防火墙策略。
[root@test ~]# firewall-cmd --zone=public --add-port=111/tcp --permanent success [root@test ~]# firewall-cmd --zone=public --add-port=20048/tcp --permanent success [root@test ~]# firewall-cmd --zone=public --add-port=2049/tcp --permanent success [root@test ~]# firewall-cmd --zone=public --add-port=111/udp --permanent success [root@test ~]# firewall-cmd --zone=public --add-port=20048/udp --permanent success [root@test ~]# firewall-cmd --zone=public --add-port=2049/udp --permanent success
- 重新载入防火墙规则。
[root@test ~]# firewall-cmd --reload success
- 查看NFS需要开放的端口。