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