NFS安装配置及调优
1. 修改yum源
cd /etc/yum.repos.d/
mkdir bak
mv ./*.repo bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all && yum makecache
yum -y install epel-release
2.将服务器端和客户端,查看防火墙状态并关闭防火墙
systemctl status firewalld
systemctl disable firewalld
systemctl stop firewalld
NFS 内核参数调优:
cat >>/etc/sysctl.conf<<EOF
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.rmem_max = 1677721
EOF
sysctl -p
3. NFS服务器端和客户端安装组件(nfs-utils,rpcbind)
yum install -y nfs-utils rpcbind
3.在服务器端和客户端启动以上两个服务
systemctl status rpcbind
systemctl enable rpcbind
systemctl start rpcbind
systemctl status nfs
systemctl enable nfs
systemctl start nfs
centos查看nfs版本
服务器端使用:
nfsstat -s
客户端使用:
nfsstat -c
4. 在服务器端创建共享目录,并设置共享目录
mkdir -p /data/ios
mkdir -p /data/images
chmod 777 /data/ios
chmod 777 /data/images
cat /etc/exports
/data/ios 192.168.0.0/24(rw,sync,no_root_squash,all_squash,anonuid=65534,anongid=65534)
/data/images 192.168.0.0/24(rw,sync,no_root_squash,all_squash,anonuid=65534,anongid=65534)
重启服务:
systemctl restart rpcbind
systemctl restart nfs
命令使用说明:
exportfs -rv #重新读取配置文件
exportfs #检查 NFS 服务器是否挂载我们想共享的目录 /home:
rpcinfo -p #确认NFS服务器启动成功
exportfs -v #查看配置
5.设置系统启动自动挂载:
vim /etc/fstab
192.168.0.101:/data/images /data/images nfs defaults 0 0
192.168.0.101:/data/ios /data/ios nfs defaults 0 0
或者
vim /etc/rc.local
mount -t nfs -o vers=4,noatime,nodiratime 192.168.0.101:/data/ios /data/ios
mount -t nfs -o vers=4,noatime,nodiratime 192.168.0.101:/data/images /data/images
6. NFS client 配置:
mkdir -p /data/ios
mkdir -p /data/images
chmod 777 /data/ios
chmod 777 /data/images
重启rpcbind:
systemctl restart rpcbind
挂载目录:
mount -t nfs -o vers=4,noatime,nodiratime 192.168.0.101:/data/ios /data/ios
mount -t nfs -o vers=4,noatime,nodiratime 192.168.0.101:/data/images /data/images
取消挂载:
umount -l /data/ios
umount -l /data/images
7. NFS调优
1)NFSD参数:
vim /etc/sysconfig/nfs
RPCNFSDCOUNT=200
替换:
sed -i '/RPCNFSDCOUNT/s#16#200#' /etc/sysconfig/nfs
删除行首#
sed -i '/RPCNFSDCOUNT/s/^#//g' /etc/sysconfig/nfs
2)修改 /etc/sysconfig/nfs 将其中的端口号全部打开
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
RQUOTAD_PORT=875
MOUNTD_PORT=892
STATD_PORT=662
STATD_OUTGOING_PORT=2020
RPCNFSDARGS="-N 4" # 对于KVM集群是必须的, 否则存储异常导致系统虚机无法启动
3) 客户端移除umount命令:
主机:
cd /usr/bin
mv umount umount.bak
docker:
docker exec -ti tk bash
cd /usr/bin
mv umount umount.bak
8. 自测:
写:
time dd if=/dev/zero of=/data/images/testfile3 bs=8k count=16384
time dd if=/dev/zero of=/data/ios/testfile3 bs=8k count=16384
time dd if=/dev/zero of=/data/images/testfile2 bs=16k count=16384
time dd if=/dev/zero of=/data/ios/testfile2 bs=16k count=16384
读:
time dd if=/data/images/testfile of=/dev/null bs=16k
time dd if=/data/ios/testfile of=/dev/null bs=16k
测试NFS是否成功 :
[root@localhost ~]# showmount -e 127.0.0.1
[root@localhost ~]# showmount -e 10.20.57.190