加载中…
正文 字体大小:

NFS服务器及autofs搭建

(2011-06-22 17:52:35)
标签:

nfs

autofs

portmap

mount

denied

squash

showmount

分类: system
测试目的: 将服务端的 /home/share 共享出来 ,通过客户端挂载并使用

Server端:

1.安装nfs:
必要软件:nfs-utils portmap
查询当前系统是否安装: rpm -qa nfs*&&rqm -qa portmap

[root@localhost ~]# rpm -qa nfs*&&rpm -qa portmap
nfs-utils-lib-1.0.8-7.6.el5
nfs-utils-1.0.9-42.el5
portmap-4.0-65.2.2.1

如果显示结果为空  则直接yum  install portmap -y  和yum install nfs* -y

2.启动rpc服务和nfs:
[root@localhost ~]# /etc/init.d/nfs restart   
Shutting down NFS mountd: [  OK  ]
Shutting down NFS daemon: [  OK  ]
Shutting down NFS quotas: [  OK  ]
Shutting down NFS services:  OK  ]
Starting NFS services:  OK  ]
Starting NFS quotas: [  OK  ]
Starting NFS daemon: [  OK  ]
Starting NFS mountd: [  OK  ]
[root@localhost ~]# /etc/init.d/nfs restart
Shutting down NFS mountd: [  OK  ]
Shutting down NFS daemon: [  OK  ]
Shutting down NFS quotas: [  OK  ]
Shutting down NFS services:  OK  ]
Starting NFS services:  OK  ]
Starting NFS quotas: [  OK  ]
Starting NFS daemon: [  OK  ]
Starting NFS mountd: [  OK  ]

查看rpc服务注册情况:
[root@localhost ~]# rpcinfo -p 172.18.4.88
   program vers proto   port
    100000     tcp    111  portmapper    (rpc服务默认端口:111)
    100000     udp    111  portmapper
    100021     udp  53848  nlockmgr
    100021     udp  53848  nlockmgr
    100021     udp  53848  nlockmgr
    100021     tcp  42676  nlockmgr
    100021     tcp  42676  nlockmgr
    100021     tcp  42676  nlockmgr
    100011     udp    811  rquotad
    100011     udp    811  rquotad
    100011     tcp    814  rquotad
    100011     tcp    814  rquotad
    100003     udp   2049  nfs
    100003     udp   2049  nfs
    100003     udp   2049  nfs              (nfs服务器默认端口:2049)
    100003     tcp   2049  nfs
    100003     tcp   2049  nfs
    100003     tcp   2049  nfs
    100005     udp    824  mountd
    100005     tcp    827  mountd
    100005     udp    824  mountd          
    100005     tcp    827  mountd
    100005     udp    824  mountd
    100005     tcp    827  mountd

3.编辑nfs主配置文件:
[root@localhost ~]# vi /etc/exports     (第一次使用nfs服务需手动创建)
/home/share *(rw,no_root_squash,sync)
【共享目录】 【主机名称,*是匹配所有】  【权限控制】

主机名称: 可使用IP、主机名或网段 192.168.0.1/24等同于192.168.0.1/255.255.255.0
权限控制: rw (可读写, ro(只读) sync(数据同步写入硬盘) async(暂存于内存,后写入硬盘)
           no_root_squash (root权限) root_squash(默认root权限会变成nfsnobody权限)
           all_squash(默认所有用户均匿名nofsnobody权限)  anonuid(设置UID) anongid(设置GID)

4.重新加载配置文件使其生效:
[root@localhost ~]# exportfs -arv
exporting *:/home/share

此步骤等同于 重启nfs服务  service nfs restart

5.创建本地共享目录:
[root@localhost tmp]# mkdir /home/share
[root@localhost tmp]# ll /home/share
total 0

至此, Server端 配置结束

Client端:

1.确定启动portmap和nfs服务:
[root@localhost ~]# /etc/init.d/portmap restart
Stopping portmap: [  OK  ]
Starting portmap: [  OK  ]
[root@localhost ~]# /etc/init.d/nfs restart
Shutting down NFS mountd: [FAILED]
Shutting down NFS daemon: [FAILED]
Shutting down NFS quotas: [  OK  ]
Shutting down NFS services:  [FAILED]
Starting NFS services:  OK  ]
Starting NFS quotas: [  OK  ]
Starting NFS daemon: [  OK  ]


2.查看NFS联机状态:
[root@localhost home]# showmount -e 172.18.4.88
Export list for 172.18.4.88:
/home/share *

3.创建挂载点:
[root@localhost ~]# mkdir /bak

4. 使用mount命令挂载使用:
[root@localhost ~]# mount -t nfs 172.18.4.88:/home/share /bak

[root@localhost ~]# df -Th
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
              ext3     18G  2.2G   15G  13% /
/dev/sda1     ext3     99M   12M   82M  13% /boot
tmpfs        tmpfs    125M     125M   0% /dev/shm
/dev/hdb5     ext3    278M   98M  166M  38% /var
172.18.4.88:/home/share  nfs     18G  4.8G   12G  29% /bak

5.测试:
[root@localhost tmp]# cd /bak
[root@localhost bak]# mkdir 1
[root@localhost bak]# ll
total 4
drwxr-xr-x 2 root root 4096 Nov  2010 1
-rw-r--r-- 1 root root    0 Nov  2010 11

小结:
关于/etc/exprots 的权限测试:

创建目录默认权限:755
创建文件默认权限:644

1.客户端使用root用户 创建文件  显示没有权限
/etc/exports 输出如下:
[root@localhost tmp]# cat /etc/exports
/home/share *(rw,root_squash,sync)

[root@localhost bak]# touch 222
touch: cannot touch `222': Permission denied

原因: nfs默认使用该选项‘root_squash’  则root权限会自动压缩成匿名用户没有读取权限
解决:root_squash 改为 no_root_squash

2.普通用户访问无修改权限
[jack@localhost bak]$ touch 123
touch: cannot touch `123': Permission denied

原因: 虽然/etc/exports 开启允许所有用户读写访问/home/share 但是/home/share 自身权限为755 其他人只能读写 故无法写入。
解决: chmod o+w /home/share  增加其他用户访问有写入权限

3.开放匿名用户登录,并指定UID,GID:
root@localhost user]# cat /etc/exports
/home/share *(rw,no_root_squash,sync)
/user      *(rw,all_squash,anonuid=501,anongid=501)  (共享user目录,匿名访问,并指定本地用户UID=501,GID=501的用户为有效用户)

[root@localhost test]#mount -t nfs 172.18.4.88:/user /test
[root@localhost test]# touch 3
[root@localhost test]# ll -h
total 8.0K
drwxr-xr-x 2 root root 4.0K Nov  2010 111
drwxr-xr-x 2 jack jack 4.0K Nov  2010 2
-rw-r--r-- 1 jack jack    0 Nov  2010 3

注意:
NFS服务需满足以下3个条件 才具有文件写入权限:
1.用户账号 UID的相关身份 (/etc/passwd)
2.NFS服务是否允许写入 (/etc/exprots)
3.文件系统是否允许写入 (chmod)

Autofs 服务器搭建:

1. 服务端创建共享目录:
[root@Server ~]# mkdir /user

2. 客户端创建挂载点:
[root@Server ~]# mkdir /var/autofs


3.编辑 auto.master (主要是控制作用,指定默认目录及对应文件)
[root@localhost autofs]# cat /etc/auto.master|grep -v '#'
/var/autofs     /etc/auto.misc

4.编辑 auto.misc    (主要是定义挂载点及指定下一级目录,该目录可以不存在)
[root@localhost autofs]# cat /etc/auto.misc|grep -v '#'

test           -rw,soft,intr           172.18.4.88:/user/mount

注意:这里test 是下级目录,千万不要画蛇添足的加/ ,否则自动挂载不成功!!

5.重启autofs服务:
[root@Client ~]# /etc/init.d/autofs restart
Stopping automount: [  OK  ]
Starting automount: [  OK  ]

6.测试:
[root@Client ~]# cd /var/autofs/test
[root@Client test]# ls
111  mount
[root@Client test]# touch 001
[root@Client test]# df -Th
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
              ext3     18G  2.2G   15G  14% /
/dev/sda1     ext3     99M   12M   82M  13% /boot
tmpfs        tmpfs    125M     125M   0% /dev/shm
sunrpc  rpc_pipefs    278M   43M  221M  17% /var/lib/nfs/rpc_pipefs
/dev/hdb5     ext3    278M   43M  221M  17% /var
172.18.4.88:/home/share
               nfs     18G  4.8G   12G  29% /bak
172.18.4.88:/user/
               nfs     18G  4.8G   12G  29% /var/autofs/test

可以看到 /var/autofs/test 已经自动挂载到 172.18.4.88:/user/  以上。

autofs 服务 默认300s (5min) 会自动取消挂载 可参考文件 /etc/sysconfig/autofs 设置

[root@Client test]# cat /etc/sysconfig/autofs |grep 'TIMEOUT'|grep -v '#'
TIMEOUT=300 

开机自动挂载nfs服务  修改/etc/fstab 即可, 例如:
[root@Client ~]# cat /etc/fstab|tail -1
172.18.4.88:/home/share  /bak                   ext3    defaults        0 0

总结:
客户端使用NFS服务,可以有3种方法挂载:
1. 手动挂载  (mount -t nfs 服务端IP:/共享目录  /本地挂载点)
2. 开机自动挂载,永久生效 (修改/etc/fstab)
3. 使用自动挂载,默认5分钟取消挂载 (/etc/auto.master、 /etc/auto.misc)




0

阅读 评论 收藏 转载 喜欢 打印举报
已投稿到:
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有