用现有系统创建NAS服务器之启动NFS

日期: 2010-08-08 作者:东缘 来源:TechTarget中国 英文

  单独的网络附加存储服务器向多种多样的客户机提供文件级的存储,实现共享的存储。本文介绍网络附加存储设备(网络附加存储服务器)的基本原理和如何利用现有系统创建一台网络附加存储服务器。

  戴尔高性能计算企业技术专家Jeff Layton说,你经常需要共享的存储、通用的文件系统或者这种能力让客户(甚至是多种多样的客户)之间轻松地共享数据。理想的情况是你有符合标准的设备,这样,你就可以同Linux、BSD、OSX或者Windows系统共享数据。幸运的是有用于共享存储的标准:网络文件系统(NFS)。事实上,它只是一个标准的文件系统,是创建目前广泛应用的网络附加存储(NAS)设备的一个推动因素。

  本文简要介绍NFS和NAS设备并且提供在你目前可能拥有的任何服务器上运行NFS的简单步骤。由于NFS是这个事情的推动因素,我们首先评估一下NFS。

  NFS

  NFS是第一个广泛应用的允许分布式系统有效地共享数据的文件系统。事实上,它是唯一的能够承受重复的标准的网络文件系统。实际上,NFS是随着每一个*nix 发布版提供的,你还可以得到诸如Windows等其它操作系统的客户端软件。

  NFS基本上允许你使用配置一些附加存储的服务器,并且“导出”这些附加存储或者与一群客户共享这些存储。这些客户随后能够都可以访问同一个文件系统和共享数据。这台服务器上的存储实际上是与客户共享文件,而不是像在SAN(存储局域网)中那样仅提供原始数据存储器。这意味着那台服务器上的存储必须使用ext3、ext4、xfs、jfs、reiserfs等文件系统中的一个文件系统进行格式化。

  NFS是一个很容易执行的协议。所有的信息、数据和元数据都经过一个文件服务器。这通常是指下面图1显示的一种“带内”数据流模式。

  注意,文件服务器接触和管理所有的数据和元数据。这种模式使存储系统更容易配置和监视,因为你仅担心一个系统。此外,它有一个窄的定义良好的故障模式。这种架构的确定包括一个明显的性能瓶颈,负载均衡问题,而且安全是这个服务器节点的一个功能,而不是这个协议。

  NFS中的一般的数据流是非常简单的。当一个客户机向它已经“安装”的一个NFS文件系统提出一个文件请求的时候,这个安装的守护程序把这个请求转发到NFS服务器,然后这个NFS服务器访问在本地文件系统中的文件。这个数据从NFS服务器传送到那个请求节点,一般使用TCP协议。请注意,那个NFS是基于文件的。那就是说,当提出一个数据请求的时候,它是提出的一个文件的请求,不是数据块或者一个字节范围的请求。这是我们说NFS是一个基于文件的协议的原因。

  要了解更详细的NFS的工作原理,下面的图显示了NFS的堆栈布局

NFS协议栈,tt存储

NFS协议栈

  在上边这部分(粉色的)是客户机,它有一个应用程序提出一个传送到系统调用接口的I/O请求。如果这个文件系统是基于NFS的,那么,这个请求通过这个网络传送到服务器(中间的蓝色部分标记为“服务器”)。这个请求发送到这个文件系统的用户组件,然后这个文件系统与这个文件系统的存储组件沟通。请注意,在右侧标记为“NVRAM”的方框是一个可选的组件,一些厂商用来通过一个缓存加快运行。

  最后,这台服务器与这个存储设备上管理的块的扇区/LBA(逻辑块地址)联络,然后这个存储设备从缓存或者硬盘的盘片中提取数据。接下来,这个数据传回到客户机应用程序的栈。对于这个客户机应用程序来说,这个文件系统的行为和外观就像本地文件系统一样。

  要让人们更好地理解NFS还有更多的工作要做,但是,本文的重点是讨论利用现有的设备和制作一个NAS设备。下一节讨论如何在一台服务器上“启用”NFS,有效地创建一个NAS设备。网络上有许多介绍关于配置和开始应用NFS的方法。因此,本文仅是一个简单的总结,而不是一个全面的操作方法(也就是说省略了一些细节)。

  启动NFS

  为了更好地解释在一台现有的服务器上设置NFS的步骤,我将使用一台我在以前的文章中使用过的服务器。本文中使用的这个服务器测试系统的要点是:

  • CentOS 5.4操作系统
  • 技嘉MAA78GM-US2H主板
  • 一个AMD Phenom II X4 920处理器
  • 8GB内存(DDR2-800)
  • Linux 2.6.30内核(只有reiser4补丁)
  • 操作系统和启动盘在一个IBM DTLA-307020硬盘上(在Ultra ATA/100接口上的20GB硬盘)
  • /home在一个希捷ST1360827AS硬盘上   
  • 有两个硬盘用于测试。它们是希捷ST3500641AS-RK硬盘,每个硬盘有16MB缓存。它们分别是/dev/sdb和/dev/sdc。

  对于这个文件系统,仅使用了第一个希捷硬盘/dev/sdb。这个硬盘在这个案例中是ext4。第二个硬盘/dev/sdc用于这个文件系统的日志部分。这个硬盘分区为正确的尺寸并且只有那个分区用作日志(/dev/sdc1)。

  利用现有的服务器创建一个NAS设备的第一步就是设置和启动NFS。我假设你已经在你的系统中安装了NFS,包括NFS服务器组件。检查NFS是否已经安装在这台服务器上的一种方法是检查是否存在“/etc/exports”文件(这个文件也许没有任何内容,但是,这个文件应该存在)。此外,在CentOS或者RHEL平台上,你还可以通过查看“/usr/sbin/rpc.nfsd”这个文件检查这个NFS服务器是否安装了。

  [laytonjb@test64 ]$ ls -s /usr/sbin/rpc.nfsd

  20 /usr/sbin/rpc.nfsd

  对于基于rpm(每分钟转速)的系统,你还可以试试下面的方法:

  [laytonjb@home8 ]$ rpm -qa | grep -i nfs
  system-config-nfs-1.2.8-1
  nfs-utils-1.0.6-46

  (这是一个老式的CentOS 4.1系统,因此许多数字与比较新的东西是不匹配的)。在这点上,让我们假设NFS的服务器组件已经安装了。

  一般来说,我下一步是启动这台服务器上的NFS。检查NFS是否运行的一个简便的方法是使用这个命令“rpcinfo -p”,这个命令报告这个系统上的RPC(远程程序调用)信息。如果NFS服务器还没有启动,你将看到类似于如下的信息:

  [root@test64 ]# /usr/sbin/rpcinfo -p
  program vers proto   port
  100000    2   tcp    111  portmapper
  100000    2   udp    111  portmapper
  100024    1   udp    774  status
  100024    1   tcp    777  status
  在这个输出中最重要的事情是这个“portmapper”(端口映射程序)正在运行,它是NFS的一个重要部分。如果你在这个列表中没有看到“portmapper”,请阅读如何让它运行的说明书。

  要启动NFS服务器,或者NFS的服务器部分,在某种程度上取决于你的操作系统发布版。在这个测试的CentOS系统上,这是通过执行下列指令完成的。

  [root@test64 ]# /etc/init.d/nfs start

  然后,我们再一次运行“rpcinfo -p”,看看NFS是否启动。  

  [root@test64 ]# /usr/sbin/rpcinfo -p
  program vers proto   port
  100000    2   tcp    111  portmapper
  100000    2   udp    111  portmapper
  100024    1   udp    774  status
  100024    1   tcp    777  status
  100011    1   udp    645  rquotad
  100011    2   udp    645  rquotad
  100011    1   tcp    648  rquotad
  100011    2   tcp    648  rquotad
  100003    2   udp   2049  nfs
  100003    3   udp   2049  nfs
  100003    4   udp   2049  nfs
  100021    1   udp  42049  nlockmgr
  100021    3   udp  42049  nlockmgr
  100021    4   udp  42049  nlockmgr
  100021    1   tcp  54256  nlockmgr
  100021    3   tcp  54256  nlockmgr
  100021    4   tcp  54256  nlockmgr
  100003    2   tcp   2049  nfs
  100003    3   tcp   2049  nfs
  100003    4   tcp   2049  nfs
  100005    1   udp    669  mountd
  100005    1   tcp    672  mountd
  100005    2   udp    669  mountd
  100005    2   tcp    672  mountd
  100005    3   udp    669  mountd
  100005    3   tcp    672  mountd 

  注意,你看到NFS列表,看到NFS v2、NFS v3和NFS v4启动了(看第二栏)。还要注意,用于NFS的UDP和TCP协议也列出了。

  NFS运行需要一些守护程序。“/etc/init.d/nfs”脚本为我们启动一切程序。但是,一般来说,我们需要的守护程序是: 

  •   rpc.nfsd (服务器)
  •   rpc.lockd (对于服务器和客户机都是常见的)
  •   rpc.statd (对于服务器和客户机都是常见的)
  •   rpc.mountd (对于服务器和客户机都是常见的)
  •   rpc.rquotad (服务器)

下一篇文章  用现有系统创建NAS服务器之NFS输出数据

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

东缘
东缘

相关推荐

  • 云计算NAS提供跨本地和云端的文件访问

    非结构化内容正在快速增长,并在新数据中处于领先地位。 通常来说,以非结构化格式创建的信息会作为对象储存在对象存 […]

  • 对象级存储正准备替代企业中的NAS

    文件服务接口已经成为许多供应商的可大规模扩展对象存储产品的标准功能,这就让对象储技术的使用变得更简单,也让对象存储越来越容易替代传统NAS存储。

  • 企业存储系统新旧大比拼

    传统的外部存储系统主要有两种类型:网络连接存储(NAS)和存储区域网络(SAN)。而云计算和对象存储的兴起促成了软件定义存储的出现。

  • 什么是文件存储?

    文件存储,也叫作文件级或者基于文件的存储,它是以一种分层的结构存储数据。数据保存于文件和文件夹中,同样的格式用于存储和检索。