準(zhǔn)備工作
本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業(yè)務(wù)造成影響,請務(wù)必仔細(xì)閱讀。
本文介紹數(shù)據(jù)遷移之前的準(zhǔn)備工作。
步驟一:共享文件夾
您需要將您的ECS實例按照以下方法將文件夾共享出來:
在線數(shù)據(jù)遷移只支持專有網(wǎng)絡(luò)下的ECS實例數(shù)據(jù)遷移,經(jīng)典網(wǎng)絡(luò)不支持。
以下步驟僅供您參考。
Windows系統(tǒng)
若您的ECS實例是Windows系統(tǒng),請參照以下步驟操作:
將您需要遷移的數(shù)據(jù)放在一個文件夾內(nèi),并將該文件夾共享。您可按照您的系統(tǒng)版本搜索設(shè)置文件共享的相關(guān)文檔進(jìn)行配置。
例如此處共享dir文件夾下的subdir子文件夾,則共享目錄的路徑為\\主機(jī)名稱\dir\subdir。在創(chuàng)建源地址時,子目錄配置為/dir/subdir。
修改Windows防火墻和殺毒軟件設(shè)置,允許該實例所在專有網(wǎng)絡(luò)VPC內(nèi)的所有IP地址可以訪問實例的445端口(若防火墻和殺毒軟件未開啟,請?zhí)^此步驟)。
添加阿里云ECS安全組規(guī)則,允許該實例所在VPC網(wǎng)絡(luò)中的所有IP可以訪問實例的445端口。
Linux系統(tǒng)
若您的ECS實例是Linux系統(tǒng),請參照以下步驟操作:
啟用NFS服務(wù),并將待遷移的文件夾共享。具體操作,請參見啟用NFS服務(wù)(若您的系統(tǒng)已啟用NFS服務(wù),請?zhí)^此步驟)。
例如此處共享data文件夾,則共享目錄的路徑為/data。在創(chuàng)建源地址時,子目錄配置為/data。
修改Linux防火墻設(shè)置,放通NFS服務(wù)的端口。您可以使用rpcinfo -p localhost命令查看需放通的
portmapper
、mountd
、nfs
服務(wù)的相關(guān)端口,具體操作,請參見防火墻配置(如果防火墻未開啟,請?zhí)^此步驟)。添加阿里云ECS安全組規(guī)則,允許該實例所在VPC網(wǎng)絡(luò)中的所有IP可以訪問實例的NFS服務(wù)相關(guān)端口。
警告為了您的數(shù)據(jù)安全,請不要將NFS服務(wù)端口開放給外網(wǎng)訪問。
步驟二:創(chuàng)建目標(biāo)存儲空間
創(chuàng)建目標(biāo)存儲空間,用于存放遷移的數(shù)據(jù)。具體操作,請參見創(chuàng)建存儲空間。
步驟三:創(chuàng)建用于遷移數(shù)據(jù)的RAM用戶
為了保證數(shù)據(jù)安全,推薦您創(chuàng)建RAM用戶并按照最小權(quán)限原則對該RAM用戶進(jìn)行授權(quán)后用于遷移數(shù)據(jù)。
登錄RAM控制臺。
在左側(cè)導(dǎo)航欄,選擇
。在用戶頁面,單擊創(chuàng)建用戶。
在創(chuàng)建用戶頁面的用戶賬號信息區(qū)域,輸入登錄名稱和顯示名稱。
在訪問方式區(qū)域,選中控制臺訪問和OpenAPI調(diào)用訪問。并保存生成的賬號、密碼、AccessKey ID和AccessKey Secret。
控制臺訪問:設(shè)置控制臺密碼、需要重置密碼和MFA多因素認(rèn)證。
OpenAPI調(diào)用訪問:自動為RAM用戶生成訪問密鑰(AccessKey),支持通過API或其他開發(fā)工具進(jìn)行訪問。
步驟四:為RAM用戶添加權(quán)限
創(chuàng)建RAM用戶成功后,在用戶頁面,單擊目標(biāo)RAM用戶操作列的添加權(quán)限。
系統(tǒng)策略:管理閃電立方(MGW)的權(quán)限(AliyunMGWFullAccess)
自定義策略:
授予RAM用戶對存放遷移后數(shù)據(jù)的Bucket的完全控制權(quán)限
說明以下權(quán)限策略僅供您參考,其中
mybucket
為存放遷移后數(shù)據(jù)的Bucket名稱,請根據(jù)實際值替換。關(guān)于OSS權(quán)限策略的更多信息,請參見RAM Policy常見示例。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "oss:*", "Resource": [ "acs:oss:*:*:mybucket", "acs:oss:*:*:mybucket/*" ] } ] }
附錄:使用NFS服務(wù)
使用NFS服務(wù)前,您需要啟用此服務(wù),并在防火墻上開放NFS的端口。
以下命令只能由root用戶來執(zhí)行,root用戶擁有超級管理員權(quán)限,請謹(jǐn)慎操作。
假設(shè)要把/data目錄共享出來做為遷移數(shù)據(jù)源,請按照以下步驟配置:
啟用NFS文件系統(tǒng)。
[root@test ~]# yum install -y nfs-utils
將/data文件夾設(shè)置共享。在/etc/exports文件中添加/data *(rw,no_root_squash,insecure)。
[root@test ~]# vi /etc/exports #若mountd端口大于1024,則需要加入'insecure': /data *(rw,no_root_squash,insecure)
說明請嚴(yán)格按照/etc/exports文件格式進(jìn)行配置,您可執(zhí)行
man 5 exports
命令查看具體的格式要求。如果配置錯誤,會導(dǎo)致客戶端中掛載文件系統(tǒng)失敗。
啟動NFS服務(wù)。
[root@test ~]# systemctl start nfs.service
檢查NFS服務(wù)顯示如下狀態(tài),表示服務(wù)已正常。
[root@test ~]# systemctl status nfs.service a- 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.
添加開機(jī)啟動。
[root@test ~]# systemctl enable nfs.service
檢查rpcbind服務(wù)顯示如下狀態(tài),表示服務(wù)已正常。
[root@test ~]# systemctl status rpcbind.service a- 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 a””a”€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.
CentOS 7版本的ECS實例默認(rèn)使用firewall防火墻,您可以使用systemctl status firewalld命令來查看firewall防火墻是否處于開啟狀態(tài)。如果您使用的是iptables防火墻,請使用相應(yīng)iptables命令參照下文firewall防火墻配置方式開放NFS服務(wù)所需端口。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
防火墻規(guī)則中新增開放
portmapper
、mountd
、nfs
服務(wù)的相關(guān)端口:tcp和udp協(xié)議的111、20048、2049三個端口。說明因為
mountd
服務(wù)使用的是一個隨機(jī)端口,您需要先通過以下兩種方式獲取mountd
服務(wù)端口后再配置防火墻:使用rpcinfo -p localhost命令查看
mountd
服務(wù)當(dāng)前使用的端口。通過修改/etc/sysconfig/nfs文件中的
MOUNTD_PORT=xxx
,將mountd
服務(wù)端口固定。
依次添加防火墻策略。
[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
重新載入防火墻規(guī)則。
[root@test ~]# firewall-cmd --reload success