Network File System 网络文件系统(centos 6)

预备知识:

1  什么是程序、进程、线程?

  • 程序 安装的软件就是程序
  • 进程 运行的程序---就是进程
  • 线程 运行的程序同完成多个任务

2  NFS三个主要组件?

  • Rpc.nfsd   :它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器;(由nfs进程实现
  • Rpc.mount 主要功能是管理NFS的文件系统。客户端顺利通过nfsd登录NFS服务器后,在使用NFS服务所提供的文件前,还必须通过文件使用权限的验证;(由mount进程实现
  • Portmap   :主要功能是进行端口映射工作;(由Rpcbind进程实现

本次实验环境:

实验环境:系统平台64位红帽6.4最小化安装,并关闭防火墙,禁用SELinux,配置好yum

禁用SELinux :

vi /etc/selinux/config 
中将SELINUX=enforcing其改为 SELINUX=disabled

禁用防火墙 :

# chkconfig ittables off

配置本地yum 

创建挂载目录:

[root@chenhao ~]#mkdir /mnt/cdrom

配置yum源: 

[root@chenhao ~]# cat /etc/rc.local
!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
mount /dev/cdrom /mnt/cdrom

查看挂载状态:

[root@chenhao ~]# mount
   /dev/mapper/vg_chenhao-lv_root on / type ext4 (rw)
   /dev/sr0 on /mnt/cdrom type iso9660 (ro)
[root@chenhao ~]# ll /dev
总用量 0
crw-rw----. 1 root video    10, 175 11月 21 16:27 agpgart
lrwxrwxrwx. 1 root root           3 11月 21 16:27 cdrom -> sr0
lrwxrwxrwx. 1 root root           3 11月 21 16:27 cdrw -> sr0

修改yum源配置文件:

[root@chenhao ~]# vim /etc/yum.repos.d/rhel-source.repo

[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-source-beta]
name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-source]
name=Red Hat Enterprise Linux 6.5
baseurl=file:///mnt/cdrom/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
~                                                                                                         
查看yum源配置结果:

[root@chenhao ~]# yum repolist

Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
rhel-source                                                                        | 3.9 kB     00:00 ...
repo id                                  repo name                                                  status
rhel-source                              Red Hat Enterprise Linux 6.5                               3,690
repolist: 3,690

[root@chenhao ~]# yum list | grep dhcp

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
dhcp.x86_64                            12:4.1.1-38.P1.el6            @rhel-source
dhcp-common.x86_64                     12:4.1.1-38.P1.el6            @anaconda-RedHatEnterpriseLinux-201311111358.x86_64/6.5
sblim-cmpi-dhcp.i686                   1.0-1.el6                     rhel-source
sblim-cmpi-dhcp.x86_64                 1.0-1.el6                     rhel-source

重启

reboot

安装NFS

yum install nfs-utils –y

安装完成后,将NFS设置为开机自启动 :

chkconfig nfs on

启动nfs :

server rpcbind start
service nfs start

查看NFS进程 

ps –eaf | grep nfs
ps –eaf | grep mount
ps –eaf | grep rpcbind

确定连接端口

netstat –anp | grep:111

  

配置NFS配置文件和命令

主配置文件  

/etc/exports

NFS服务的管理命令  

/etc/sbin/exports

记录NFS分享出来目录完整的权限设置 

/var/lib/nfs/etab

 记录曾经登录过的客户端信息 

/var/lib/nfs/xtab

  

设置NFS服务器共享目录以及访问权限

创建文件夹

mkdir  /data
mkdir  /picture

设置文件夹权限

chmod  o=wrx  /data
chmod  o=wrx  /picture

创建文件到文件夹中:

ifconfig > /data/ifconfig.txt
mount > /picture/mount.txt

编辑配置文件:

# vim /etc/exports
    /data  10.109.149/24(rw)
    /picture 10.109.149/24(ro)

重启nfs服务设置生效

Service nfs restart

查看设置

cat /var/lib/nfs/etab

修改配置文件后,使其生效命令:

exportfs -r –v

 

linux客户端连接NFS命令

查看NFS发布的文件夹:

Showmount –e  (NFS服务器地址)

挂载NFS文件夹的过程

mkdir  /mnt/data
mkdir  /mnt /picture

挂载

mount –n nfs 192.168.80.222:/prcture  /mnt /picture
mount –n nfs 192.168.80.222:/data  /mnt /data

设置客户端开机自动挂载nfs服务器文件夹

# vim /etc/fstab
   192.168.80.222:data   /mnt/data  nfs  defaults  0 0
   192.168.80.222:prcture  /mnt /picture  nfs  defaults  0 0

重启即可生效

 

使用windows server作为nfs客户端

添加服务器角色-功能-nfs客户端

连接方法一:mount 192.168.80.222:/prcture K:
连接方法二:mount \\192.168.80.222\data j:

查看连接命令:

mount
netstat –n

 

配置/etc/exports文件及设置nfs发布的权限

    NFS服务的配置文件为/etc/exports,这个文件是NFS的主要配置文件不过系统并没有默认值,所以这个文件不一定会存在,可能要使用vi手动建立,然后在文件里面写入配置内容。

 

# vi /etc/exports
   /data 192.168.80.0/24(rw)
   /picture 192.168.80.0/24(ro)

 

  用户可以把需要共享的文件系统直接编辑到/etc/exports文件中,这样当NFS服务器重新启动时系统就会自动读取/etc/exports文件,从而告诉内核要输出的文件系统和相关的存取权限。在下面的例子中显示了/etc/exports文件中几个条目项的内容,被挂载在/pub目录下的文件系统具有只读访问权限,所有的计算机在访问文件系统的时候不必经过安全检查。编辑/etc/exports文件: 

# vi /etc/exports
   /usr/sys/src -maproot=daemon host2
   /usr/ports -ro -network 192.168.1.0

 

<输出目录>[客户端1选项(访问权限,用户映射,其他)] [客户端2选项(访问权限,用户映射,其他)]

a、 输出目录

  • 输出目录是指NFS系统中需要共享给客户机使用的目录

b、 客户端

  • 客户端是指网络中可以访问这个NFS输出目录的计算机
  • 客户端常用的指定方式
  • 指定IP地址的主机:192.168.0.200
  • 指定子网中的所有主机:192.168.0.0/24192.168.0.0/255.255.255.0
  • 指定域名的主机:ZTJC.jdbinfo.com
  • 所有的域中的主机:*. jdbinfo.com
  • 所有的主机:*

c、 选项

选项用来设置输出目录的访问权限、用户映射等。

NFS主要有三类选项:

访问权限选项

  • 设置输出目录只读:ro
  • 设置输出目录读写:rw

映射选项

  • all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnoboy),这是默认选项;
  • no_all_squashall_squash取反(默认设置);
    • root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置)
    • no_root_squash:与root_squash取反/data 192.168.80.0/24(rw,no_root_squash)
  • anonuid=xxx远程访问的所有用户都映射为匿名用户,并指定该用户为本地(UID=xxx
  • anongid=xxx远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户账户(GID=xxx

其它选项

  • Secure限制客户端只能从小于1024tcp/ip端口连接nfs服务器(默认设置);
  • Insecure:允许客户端从大于1024tcp/ip端口连接nfs服务器;
  • Sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
  • aync: 数据先保存在内存缓冲区中,必要时才写入磁盘;
  • welay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置)

      从上面这个例子中可以看出exports文件的格式,首先是定义要共享的文件目录。必须使用绝对路径,而不能使用符号链接。然后设置对这个目录进行访问限制的参数,用于保证安全性。在第1行设置中,将/usr/sys/src目录共享出去。但限制客户机上的root用户等价于本机上的daemon用户,以避免客户机上的root用户拥有这个服务器上的root权限进行非法操作。此后的host2参数是主机名,从而限制只有host2才能共享这个/usr/sys/src目录;第2行设置共享/usr/ports目录,但限制为只允许读取,并且也只有网络上的192.168.1.0计算机才能访问这个共享目录。

1rw:可读写权限。

2ro:只读权限。

3no_root_squash:当登录NFS主机使用共享目录的使用者是root时,其权限将被转换成为匿名使用者,通常它的UIDGID都会变成nobody身份。

4root_squash;如果登录NFS主机使用共享目录的使用者是root,那么对于这个共享的目录来说,它具有root的权限。

5all_squash:忽略登录NFS使用者的身份,其身份都会被转换为匿名使用者,通常即nobody

6anonuid:通常为nobody,也可以自行设定这个UID的值,UID必须存在于/etc/passwd中。

7anongid:同anonuid,但是变为Group ID

8sync:同步写入资料到内存与硬盘中。

9async:资料会先暂存于内存中,而非直接写入硬盘。

主机可以使用以下格式。

1)单个机器:一个全限定域名(能够被服务器解析)、主机名(能够被服务器解析)或IP地址。

2)使用通配符来指定的机器系列,使用 * 或 ?字符来指定一个字符串匹配。IP地址中不使用通配符。如果反向DNS查询失败,它们可能会碰巧有用。在完整域名中指定通配符时,点(.)不包括在通配符中。例如,*.example.com包括one.example.com,但不包括one.two.example.com.

3IP网络:使用a.b.c.d/za.b.c.d是网络,z是子网掩码中的位数(如192.168.0.0/24)。另一种可以接受的格式是a.b.c.d/netmaska.b.c.d是网络,netmask是子网掩码(如192.168.70.8/255.255.255.0)。

 

posted @ 2023-06-14 10:44  雨夜清风  Views(21)  Comments(0Edit  收藏  举报