NFS 是Network File
System的缩写,中文意思是网络文件系统。它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。NFS客户端(一般为应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务器端共享的数据目录挂载到NFS客户端本地系统中(就是某一个挂载点下)。从客户端本地看,NFS服务器端共享的目录就好像是客户端自己的磁盘分区或者目录一样,而实际上却是远端的NFS服务器的目录。
服务器
用NFS挂载 快速的搬迁A服务器上的数据到B服务器
需要看注释 可参考百度或http://blog.ff16.com/archives/2987.html
NFS默认是使用111端口
intr: 默认情况下,当一个nfs 变得不可达后,在这个挂载点上的操作如ls、cd等会hang住。
指定这个参数后,ls/cd之类的命令会收到信号EINTR 从而退出。
soft: 默认情况下,如果nfs server断开了,client这端会不停的尝试重新恢复连接而不是断开,
这样频繁的重试会导致系统hang住
一些维护命令:
nfsstat //NFS的运行状态
rpcinfo //看rpc执行信息 rpcinfo -p
netstat -lnt //看启用的端口
A服务器准备装个服务端 配置下
1、检查nfs服务
rpm -qa|grep nfs
rpm -qa|grep rpcbind
2、安装nfs
yum -y install nfs-utils rpcbind
3、设置开机自动启动服务
chkconfig nfs on
chkconfig rpcbind on
4、启动服务
service rpcbind start
service nfs start
5、创建共享目录
mkdir /data/nfs-share
chmod -R 777 /data/nfs-share
6、配置exports文件
配置
vi /etc/exports
/mnt/iottest/bakforupdate *(rw,sync,no_root_squash)
/mnt/iottest/bakforupdate *(rw,async,no_root_squash)
以上同步异步任选 建议同步 ( async异步写入,sync同步写入)
7、重启nfs
systemctl restart nfs
8、确认配置
showmount -e
确认共享的目录是否正确 详细的配置参数可以查看 man 5 exports
关闭防火墙
ufw disable 双方关闭防火墙 (debian9)
//低版本关闭防火墙参考 https://www.lanbu.net/d/142
B服务器配置
1、安装nfs
yum -y install nfs-utils rpcbind
2、设置开机自动启动服务
chkconfig nfs on
chkconfig rpcbind on
3、启动服务
service rpcbind start
service nfs start
一句话挂载示例:
mkdir /mnt/iottest/bakforupdate
mount 192.168.25.47:/mnt/iottest/bakforupdate /mnt/iottest/bakforupdate
挂载使用
在客户机创建这个目录
mkdir /mnt/iottest/bakforupdate
mount -t nfs A服务器IP地址:/mnt/iottest/bakforupdate /mnt/iottest/bakforupdate
如果被占用
umount.nfs4: /mnt/iottest/bakforupdate: device is busy
先找进程 再K掉 再次取消挂载
fuser -m -v /mnt/iottest/bakforupdate
kill -9 27847
umount /mnt/iottest/bakforupdate
开机挂载
/etc/fstab http://blog.51cto.com/zkxfoo/1758529 详细说明
/etc/rc.local
编辑配置文件 写入一行 保存
vim /etc/fstab
mount -t nfs 192.168.25.47:/mnt/iottest/bakforupdate /mnt/iottest/bakforupdate nfs defaults 0 0
或(我没用它)
192.168.25.47:/mnt/iottest/bakforupdate /mnt/iottest/bakforupdatei nfs defaults 0 0
12 天 后
导出数据库
mysqldump -uroot -p密码 news > /home/web/site1/news.sql;
命令行下具体用法如下:
mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名;
2 个月 后
新增一个问题 不能卸载NFS的挂载 强制 umount
因为网站目录被我删了 而没提前卸载 卸不掉怎么办