诺志
软硬件开发技术笔记
centos7.2 nfs安装
2017-11-18

无论在公司还是在家的开发环境,都一般会找一个centos机器做workspace,在这个机器上将/root目录通过nfs映射出去,然后所有开发机都mount这个nfs挂载点。就解决了在开发分布式软件时,每次修改一个文件,就要scp到所有节点的麻烦。

P.S 以下配置仅在centos7.x上验证,centos6.x的服务启动方式和7.x有区别,不能使用以下方式

服务器端

# 安装nfs-utils
[root@50-workspace ~] yum install nfs-utils

# 修改exports文件,该文件中记录着要将那些目录映射出去,以及指定访问客户端的网段
# 比如我的配置是将/root映射出去,然后192.168.2.0/24网段可以访问
[root@50-workspace ~] cat /etc/exports
/root 192.168.2.0/24(rw,no_root_squash,async)

# 启动nfs服务
[root@50-workspace ~] systemctl start nfs-server

# 查看配置是否生效
[root@50-workspace ~] showmount -e localhost

# 设置nfs服务开机自动启动
[root@50-workspace ~] systemctl enable nfs-server

客户端

# 安装nfs-utils
[root@51 ~] yum install nfs-utils

# 执行挂载,将远端的/root目录挂载到本机的/root目录下
[root@51 ~] mount -t nfs 192.168.2.50:/root /root

# 验证是否挂载成功
[root@51 ~] df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   46G  1.5G   45G   4% /
devtmpfs                 487M     0  487M   0% /dev
tmpfs                    497M     0  497M   0% /dev/shm
tmpfs                    497M  6.6M  490M   2% /run
tmpfs                    497M     0  497M   0% /sys/fs/cgroup
/dev/vda1                497M  123M  375M  25% /boot
192.168.2.50:/root        46G  3.2G   43G   7% /root
tmpfs                    100M     0  100M   0% /run/user/0

客户端卸载

如果不是将nfs挂载在/root下的话,只要将挂载点上的应用停掉就可以正常umount了,但是如果像我这样直接挂载在客户端的/root上,就不那么好卸载了,因为当用户通过ssh登录服务器的时候,首先进入的就是/root目录,此时就有一个bash进程占用这个目录,除非将这个bash杀掉才能使/root的占用清除,但此时ssh的登录状态也会被杀掉,根本没有机会执行umount。此时可以通过umount的-l选项解决。

# -l可以简单认为是延迟卸载,如果没有程序在占用挂载点的时候,和普通卸载一样直接卸载
# 当有程序占用时,umount命令会立马返回成功,通过df命令也看不到挂载点,但此时并没有真正卸载
# 当引用这个挂载点的程序退出后,umount会自动由kernel驱动,真正执行umount
# so, 加了-l选项后,用户登录退出时,bash进程跟着退出,然后由kernel真正执行umount
[root@51 ~] umount /root -l 
分类
2篇
c
1篇
8篇
18篇
8篇
2篇
搜索