1. 文件上传遇到多物理机多实例时,怎么处理呢?
ftp, 文件同步, 目录共享
这里用目录共享来一把.
2. 操作流程
物理机两台 192.168.1.88 192.168.1.166
2.1 服务端 192.168.1.166
yum install -y rpc-bind nfs-utils
mkdir /home/rocky/dev_share 共享目录
chmod 766 /home/rocky/dev_share
vi /etc/exports
cat /etc/exports
[root@dev_pc2 dev_share]# cat /etc/exports
/home/rocky/dev_share 192.*(insecure,rw,sync,no_root_squash)
systemctl enable nfs
systemctl start nfs
systemctl enable rpcbind
systemctl start rpcbind
systemctl status nfs
exportfs
2.2 客户端
yum install -y rpc-bind nfs-utils
systemctl enable nfs #把NFS加入到开机自启动选项中
systemctl start nfs
systemctl enable rpcbind
systemctl start rpcbind
systemctl status nfs
mkdir -p /home/rocky/dev_share
挂载共享目录
mount 192.168.1.166:/home/rocky/dev_share /home/rocky/dev_share
显示mount.nfs: No route to host 因为服务端防火墙
2.3 服务端
systemctl status firewalld 查看防火墙
systemctl stop firewalld
2.4 客户端
mount 192.168.1.166:/home/rocky/dev_share /home/rocky/dev_share #dev_pc2.rocky.com:/home/rocky/dev_share
mount |grep dev_share
#umount -v /home/rocky/dev_share
此时166机器dev_share目录创建文件 88可以看到和修改 #dd if=/dev/zero of=./empty10M bs=1M count=10
88操作依然
2.5 继续
getenforce
setenforce 0
getenforce #Permissive
vi /etc/sysconfig/selinux
SELINUX=disabled #重启后还有效
vi /etc/fstab
[root@dev_pc1 rocky]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Aug 26 12:15:58 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root / xfs defaults 0 0
UUID=0e2417a5-cdcb-4195-a5e0-60153c5f6e32 /boot xfs defaults 0 0
/dev/mapper/cl-home /home xfs defaults 0 0
/dev/mapper/cl-swap swap swap defaults 0 0
dev_pc2.rocky.com:/home/rocky/dev_share /home/rocky/dev_share nfs4 defaults 0 0
2.6 文档
/etc/exports文件内容格式:
<输出目录> 客户端(选项:访问权限,用户映射,其他]
输出目录是指NFS系统中所定义的共享给客户端使用的文件系统
客户端是定义网络中可以访问这个NFS共享目录的IP地址或网段或域名等
客户端常用的指定方式
指定ip地址的主机:192.168.100.1
指定一个子网:192.168.100.0/24 也可以写成:192.168.100.0/255.255.255.0
指定域名的主机:david.bsmart.cn
指定域中的所有主机:*.bsmart.cn
所有主机:*
选项用来设置输出目录的访问权限、用户映射等。
NFS主要有3类选项:
设置输出目录只读:ro
设置输出目录读写:rw
用户映射选项
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash:与all_squash取反(默认设置);
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
no_root_squash:与rootsquash取反;
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
其它选项
secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree:若输目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;