Chinaunix首页 | 论坛 | 博客
  • 博客访问: 279936
  • 博文数量: 56
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 642
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-16 15:11
文章分类

全部博文(56)

文章存档

2017年(6)

2015年(3)

2014年(41)

2013年(6)

我的朋友

分类: LINUX

2013-12-17 13:51:06

  • 网络文件系统(NFS)的概念

     网络文件系统(NFS)是一种在网络上的机器间共享文件的方法,文件就如同位于客户的本地硬盘驱动器上一样。Red Hat Linux 既可以是 NFS 服务器也可以是 NFS 客户,这意味着它可以把文件系统导出给其它系统,也可以挂载从其它机器上导入的文件系统。

  • NFS的安装

     RedHad默认已经安装了NFS,如果没装需手动安装如下5个rpm包:
setup-*:            共享NFS目录在/etc/exports中定义
initscripts-*:        包括引导过程中装载网络目录的基本脚本
nfs-utils-*:        包括基本的NFS命令与监控程序
portmap-*:       支持安全NFS RPC服务的连接
quota-*:      网络上共享的目录配额,包括rpc.rquotad (这个包不是必须的)

  • NFS的配置

     编辑/etc/exports文件添加共享目录:
/home/stb 192.168.1.235(rw,sync,no_root_squash)
/home/stb 192.168.1.170(rw,sync,no_root_squash)
/home/stb 192.168.1.31(rw,sync,no_root_squash)
/home/stb为对外共享的目录;
192.168.1.235为对外共享的主机;
()内为opitons;
rw:             可读写的权限;
ro:             只读的权限;
no_root_squash: 登入到NFS主机的用户如果是ROOT用户,他就拥有ROOT的权限root_squash:    在登入 NFS 主机使用目录的使用者如果是 root 时,那么这个使用者的权限
sync:           资料同步写入存储器中。
async:          资料会先暂时存放在内存中,不会直接写入硬盘。

  • NFS服务的启动

    service nfs start
    service nfs restart
    service nfs stop
    service nfs reload 当修改过/etc/exports文件后不用重启服务可执行该命令

如果只是单纯的搭建nfs服务,到这里就可以了。
查看nfs:
showmount -e $hostip
  • 客户端的挂载

通过mount命令挂载
mount 192.168.1.162:/home/stb /mnt/stb
mount -t nfs 192.168.1.162:/home/stb /mnt/stb -o nlock
//其中客户端必须有/mnt/stb目录
2. 通过 /etc/fstab 来挂载 NFS 文件系统
   
要挂载其它机器上的 NFS 共享的另一种方法是在 /etc/fstab 文件中添加一行。这一行中必须声明 NFS 服务器的主机名,要导出的目录,以及要挂载 NFS 共享的本地机器目录。你必须是根用户才能修改 /etc/fstab 文件。
/etc/fstab 中每行的一般语法如下所示:
server:/usr/local/pub    /pub   nfs    rsize=8192,wsize=8192,timeo=14,intr挂载点 /pub 在客户机器上必须存在。在客户系统的 /etc/fstab 文件中把这一行添加完毕后,在 shell 提示下键入命令 mount /pub,以及将会从服务器中挂载的挂载点 /pub。 3.
挂载 NFS 共享的第三种方法是使用 autofs。autofs 使用 automount 守护进程来管理你的挂载点,它只在文件系统被访问时才动态地挂载它们。
autofs 咨询主映射配置文件 /etc/auto.master 来决定要定义哪些挂载点。然后,它使用适用于各个挂载点的参数来启动 automount 进程。主映射配置中的每一行都定义一个挂载点,一个分开的映射文件定义在该挂载点下要挂载的文件系统。譬如,/etc/auto.misc 文件可能会定义 /misc 目录中的挂载点;这种关系在 /etc/auto.master 文件中会被定义。
auto.master 文件中的每个项目都有三个字段。第一个字段是挂载点。第二个字段是映射文件的位置,第三个字段可选。第三个字段可以包括超时数值之类的信息。
譬如,要在你的机器上的 /misc/myproject 挂载点上挂载远程机器 penguin.example.net 上的 /project52 目录,在 auto.master 文件中添加以下行:

/misc   /etc/auto.misc --timeout 60
在 /etc/auto.misc 文件中添加以下行:
myproject  -rw,soft,intr,rsize=8192,wsize=8192 penguin.example.net:/proj52
/etc/auto.misc 中的第一个字段是 /misc 子目录的名称。该目录被 automount 动态地创建。它不应该在客户机器上实际存在。第二个字段包括挂载选项,如:rw 代表读写访问权。第三个字段是要导出的 NFS 的位置,包括主机名和目录。
注记
目录 /misc 在本地文件系统中必须存在。在本地文件系统的 /misc 目录中不应该有子目录。
到此就ok了!!!!!!!


# cat /etc/exports
/var/lib/libvirt/images        *(async,rw,all_squash,anonuid=36,anongid=36)
all_squash表示不論登入 NFS 的使用者身份為何, 他的身份都會被壓縮成為匿名使用者,通常也就是 nobody(nfsnobody) 啦!
  • anonuid
    anon 意指 anonymous (匿名者) 前面關於 *_squash 提到的匿名使用者的 UID 設定值,通常為 nobody(nfsnobody),但是您可以自行設定這個 UID 的值!當然,這個 UID 必需要存在於您的 /etc/passwd 當中!

  • anongid:同 anonuid ,但是變成 group ID 就是了!
這是幾個比較常見的權限參數,如果你有興趣玩其他的參數時,請自行 man exports 可以發現很多有趣的資料。 接下來我們利用上述的幾個參數來實際思考一下幾個有趣的小習題:

/virt   *(async,rw,all_squash,anonuid=107,anongid=107) 
107:107  qemu:qemu
阅读(976) | 评论(2) | 转发(0) |
0

上一篇:没有了

下一篇:Yum repository

给主人留下些什么吧!~~

yangyangRH2013-12-17 18:13:23

linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享

   # mkdir –p /mnt/nfs

   注:建立一个目录用来作挂接点(mount point)

   #mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs

   注:这里我们假设10.140.133.9是NFS服务端的主机IP地址,当然这里也可以使用主机名,但必须在本机/etc/hosts文件里增加服务端ip定义。/export/home/sunky为服务端共享的目录。

  如此就可以在linux客户端通过/mnt/nfs来访问其它linux系统或UNIX系统以NFS方式共享出来的文件了。以上操作在 redhat as server 3、redflag server4.1、suse server 9以及Solaris 7、Solaris 8、Solaris 9 for x86&sparc环境下