关闭

网络存储 NFS

1382人阅读 评论(0) 收藏 举报
网络存储的背景

Linux集群计算在高性能计算领域(高能物理,地球,大气,地质,石油,遥感等等),海量信息服务领域(google)的应用越来越普遍。

Linux集群中,不仅需要高性能处理器,网络,还需要高聚合的I/O带宽。而I/O子系统的发展现状决定了存储系统已经成为亟待解决的问题。

Linux集群计算对存储系统提出了高聚合带宽,高可用,高可靠,可扩展,可管理等诸方面的要求。

常见的存储结构

DAS(direct attached storage):存储设备直接附连在系统主机的I/O总线上。从应用的角度看到的是裸设备,比如(/dev/hdc)。主机不能共享不同主机之间的存储设备。

SAN(storage area network):将存储设备从主机系统中分离出来,利用主机之外的一个专用存储网络与存储设备相连。这样,存储设备独立于主机系统,并且多个主机通过存储区域网络可以共享存储设备。应用看到的仍然是设备,比如(/dev/nbd0)。

NAS(network attached storage):有一个元数据服务器,客户端通过标准的NFS或CIFS协议与元数据服务器通信,而元数据服务器连着存储设备。客户端可以是不同平台。这样就实现了跨平台的数据共享,并且不是直接读写设备,提高了安全性。标准的NFS可以看作是NAS。

SAN+NAS:融合了SAN和NAS的优点,将数据和元数据分离。存储设备通过SAN与各个应用节点直接连接,对于数据的读写直接通过应用节点完成,不再通过元数据服务器,打破元数据服务器的瓶颈,大大提高聚合带宽。元数据的访问仍然通过元数据服务器来完成。

NFS文件系统

NFS:network file system。由SUN在80年代提出。主要用来实现在网络上不同主机之间的文件共享。成为事实上的网络文件系统标准。IETF目前为其制定了三个版本。

 RFC1094(March,1989)-NFSv2

 RFC1813(June,1995) -NFSv3

 RFC3530(April,2003)-NFSv4

其物理架构如下:

 

 

其逻辑视图如下:
 
 
 
 
redhat系统下的配置:
server:
       vi /etc/exports,编辑内容参考如下
       /share_dir1  192.168.10.1(rw,no_root_squash)
       /share_dir2  *(rw,no_root_squash)
       修改exports文件后,执行exportfs -ra 使修改生效
       service portmap start
       modprobe sunrpc
       service nfs start
       rpcinfo -p 察看rpc状态
client:mount -t nfs serverIP:/server_export_dir /localDIR
下面的链接详细描述了client和server的配置方法:
 
其体系架构如下:
协议栈如下

 

RPC

示意如下图

 

一个远程过程由三元组(program number, version number, procedure number)唯一确定。其中,program number确定了一组相关的远程过程,这些过程的集合称之为一个program。program可以有多个版本,版本之间由version number来区分。每个过程有一个唯一的procedure number.

XDR(external data representation),解决数据在网络上传输的字节序等问题。

下面重点进行NFS结构分析:

NFS由下面四个独立的协议构成:

nfs:负责文件创建,查找,读写,权限,状态等。

mountd:负责mount

nsm:网络状态监控

nlm:网络锁管理

 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:353057次
    • 积分:4951
    • 等级:
    • 排名:第5685名
    • 原创:124篇
    • 转载:50篇
    • 译文:1篇
    • 评论:75条
    最新评论