NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
优点:
1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
3. 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备
###以下所有操作,为了便于说明,黄色字体为服务端操作,蓝色字体为客户端操作,白色字体为172.25.254.45真机操作###
一 NFS文件系统的环境搭建:
1 首先需要安装NFS服务的软件,安装完成之后需要开启服务。
2 对于NFS文件系统的共享目录及配置,不像cifs文件系统需要在配置文件中指明共享目录的路径和对于用户的权限,NFS文件系统的共享目录和对于用户的权限是在/etc/exports文件中来设定的。
在这个文件中,书写格式是共享目录+权限。比如说对于/mnt这个目录,其中的所有内容,对于所有用户可见,允许数据同步(sync),用户拥有读写权限。no_root_squash是指,针对这个目录,如果使用者是root的话,他就具有root的权限。
对于/linux目录,对与所有用户可见,用户拥有读写权限,并且用户所建的文件默认所有者为student,所在组为student。(1000是student用户的id)。
而/westos目录只对172.25.254.245主机可见,拥有数据同步和读写权限。
3 在文件编辑完成也就是共享目录权限设定之后,需要执行指令exports -rv来刷新共享服务:
4 之后在服务端利用指令showmount -e 172.25.254.145可以查看到服务端共享目录的内容,172.25.254.145是服务端的ip。
5 挂载之后,就可以进行对共享目录的操作了:
6 在将服务端的共享目录/mnt挂载到客户端的/mnt目录下之后,建立文件,文件的所有人为root:
对于服务端的/linux目录,挂载之后,新建的文件所有人和所属组均为student:
对于/westos目录,由于权限设定只对172.25.254.245主机开放,在172.25.254.45主机上将无法挂载:
二 NFS文件系统的自动挂载:
1 同样是在服务端的/etc/exports文件里写入共享目录/linux的权限:
2 刷新配置,之后重启NFS服务:
3 在客户端同样可以看到服务端的共享目录。在客户端,需要安装安装autofs服务。
mout服务是用来挂载文件系统,可以在系统启动的时候挂载,也可以在系统启动之后挂载,对于本地固定设备,可以使用mount挂载,而光盘,软盘,NFS,SMB等文件系统具有动态性,即需要的时候才进行有必要的挂载,光盘和软盘我们一般知道什么时候需要挂载,但NFS和SMB就不一定知道了。而autofs就提供了这种功能,使我们能够在需要的时候挂载文件系统。
autofs安装之后开启服务,这个服务的目录为/net,服务未安装的话是没有/net这个目录的。进入/net目录之后,再切换到共享主机进入共享目录,就可以看到共享内容了:
这时的共享目录是自动挂载的,不需要手动挂载,df直接就可以查看到。默认挂载到net目录里:
4 对于自动挂载目录的卸载,需要编辑配置文件/etc/sysconfig/autofs:
在配置文件的13行,会有一个TIMEOUT,意思是多久之后自动取消挂咋。默认单位为秒,设定为5就是5秒之后自动取消挂载:
设定完成之后重启autofs服务。对于挂载目录的取消挂载,首先需要切出挂载目录,处在挂载目录之中是无法取消挂载的。切出之后,指定时间后会取消挂载:
三 指定目录的挂载:
1 要将共享目录挂载到指定目录,需要编辑配置文件/etc/auto.master:
2 其中/nfs目录是挂载目录所在的上级目录,具体挂载信息设定指定在/etc/auto.linux文件里:
3 既然指定了/etc/auto.linux文件,就要建立该文件并编辑:
将服务端的linux共享目录挂载到linux目录,这个linux目录是在/nfs目录下的,刚才在auto.master文件中指定的挂载目录的上级目录/nfs作用就在这里:
4 编辑完成之后重启服务,进入/nfs目录,就可以看到linux目录挂载在指定目录下:
四 建立硬盘挂载:
为了数据安全,并绕过第三方进行数据共享,需要设定硬盘挂载。思路是在服务端建立硬盘,设定在客户端可以查看到并可以挂载,进而进行数据操作。避过第三方,保障数据安全。
1 在服务端安装targetcli服务并开启:
2 在/dev/ vdb里新建一个2G的分区vdb2,保存退出之后partprobe刷新。
3 启动target服务之后targetcli直接打开,ls可以看到内容,这些内容是对挂载硬盘的一些设置:
对于挂载的设置,分为五步,也就是5条指令。
第一步是将新建的分区加入到backstores中。
第二步是指定iscsi使用指定的分区
第三步是给服务加密
第四步是关联服务
第五部是打开服务端口
在配置完成之后ctrl+d或者exit退出,wq是没有用的不支持该指令。
4 在客户端安装iscsi-initiator-untils:
之后编辑配置文件/etc/iscsi/initiatorname.iscsi:
写入加密文件的名称:
重启服务:
5 执行两条指令之后,连接172.25.254.145:
fdisk -l 可以查看到新建的2G硬盘,名为/dev/sda:
6 客户端在/dev/sda下新建分区/dev/sda1并格式化,编辑/etc/fstab文件将分区挂载到/mnt目录下:
mount -a刷新挂载,可以看到挂载成功了。在第一次重启或者开机之后,需要强行关闭客户端,再打开才可以生效。否则可能卡在启动界面不动。
五 在客户端的删除:
在不使用的时候,可以进行删除。先需要解除挂载。指令类似与于172.25.254.145主机建立的联系。执行第一条指令后,并没有被根本删除,重启服务之后会重新挂载。执行第二条指令后才会彻底删除:
删除之后fdisk -l 就无法查看到了: