本文介绍云服务器ECS的文件同步到文件存储NAS之前的准备工作。
步骤1:创建并授权RAM用户
RAM是阿里云提供的用户身份管理与资源访问控制服务。RAM允许在一个云账号下创建并管理多个身份,并允许给单个身份或一组身份分配不同的权限,从而实现不同用户拥有不同资源访问权限的目的。
为安全起见,推荐您创建RAM用户,并为RAM用户授予文件同步相关权限。具体步骤如下:
- 创建RAM用户。
- 为RAM用户授权。
在此业务场景下,您需要授予RAM用户管理文件存储NAS权限 (AliyunNASFullAccess)和管理混合云备份服务HBR权限(AliyunHbrFullAccess)。有关为RAM用户授权的详情,请参见
为RAM用户授权。
步骤2:共享ECS实例文件夹
以下分别介绍在Windows以及Linux系统中,如何共享待同步的阿里云ECS实例下的文件夹。
说明 文件同步仅支持专有网络VPC内的ECS实例数据同步。
- Windows系统
若您的ECS实例是Windows系统,请参见如下步骤共享ECS实例下的文件夹:
- 将您需要同步的数据存放在一个文件夹内,并共享该文件夹。
您可以根据系统版本搜索设置文件共享的相关文档进行配置。
- 修改Windows防火墙和杀毒软件设置,允许该实例所在VPC内的所有IP地址可以访问实例的445端口。
若防火墙和杀毒软件未开启,请跳过此步骤。
- 添加阿里云ECS安全组规则,允许该实例所在VPC内的所有IP可以访问实例的445端口。详情请参见安全组规则。
- Linux系统
若您的ECS实例是Linux系统,请参见如下步骤共享ECS实例下的文件夹:
- 启用NFS服务,并共享待同步的文件夹。
若您的系统已启用NFS服务,请跳过此步骤。
- 修改Linux防火墙设置,开放NFS服务的端口。
若防火墙未开启,请跳过此步骤。
您可以使用rpcinfo -p localhost命令查看需开放的portmapper
、mountd
、nfs
服务的相关端口。
- 添加阿里云ECS安全组规则,允许该实例所在VPC内的所有IP可以访问实例的NFS服务相关端口。
警告 为了您的数据安全,请不要将NFS服务端口开放给外网访问。
步骤3:添加挂载点
您需要为文件存储NAS添加挂载点,详情请参见添加挂载点。
若您配置了NAS访问权限,需允许NAS所在VPC内的所有IP访问。详情请参见管理文件系统数据访问权限。
附录:使用NFS服务
使用NFS服务前,您需要启用此服务,并在防火墙上开放NFS的端口。
假设需要将/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.
CentOS 7.X版本的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
服务端口固定。
- 依次添加防火墙策略。
[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
在文档使用中是否遇到以下问题
更多建议
匿名提交