V3相对V2的改进:
1、文件尺寸
V2最大只支持32BIT的文件大小(4G),而NFS V3新增加了支持64BIT文件大小的技术。
2、文件传输尺寸
V3没有限定传输尺寸,V2最多只能设定为8k,可以使用-rsize and -wsize 来进行设定。
3、完整的信息返回
V3增加和完善了许多错误和成功信息的返回,对于服务器的设置和管理能带来很大好处。
4、增加了对TCP传输协议的支持
V2只提供了对UDP协议的支持,在一些高要求的网络环境中有很大限制,V3增加了对TCP协议的支持
5、异步写入特性
6、改进了SERVER的mount性能
7、有更好的I/O WRITES 性能。
9、更强网络运行效能,使得网络运作更为有效。
10、更强的灾难恢复功能。
异步写入特性(v3新增加):
- NFS V3 能否使用异步写入,这是可选择的一种特性。NFS V3客户端发发送一个异步写入请求到服务器,在给客户端答复之前服务器并不是必须要将数据写入到存储器中(稳定的)。服务器能确定何时去写入数据或者将多个写入请求聚合到一起并加以处理,然后写入。客户端能保持一个数据的copy以防万一服务器不能完整的将数据写入。当客户端希望释放这个copy的时候,它会向服务器通过这个操作过程,以确保每个操作步骤的完整。异步写入能够使服务器去确定最好的同步数据的策略。使数据能尽可能的同步的提交何到达。与V2比较来看,这样的机制能更好的实现数据缓冲和更多的平行(平衡)。而NFS V2的SERVER在将数据写入存储器之前不能再相应任何的写入请求。
V4相对V3的改进:
1、改进了INTERNET上的存取和执行效能
2、在协议中增强了安全方面的特性
3、增强的跨平台特性
Super.c文件
====================================
static const match_table_t nfs_mount_option_tokens 支持的可选参数
static const match_table_t nfs_xprt_protocol_tokens = { 支持的协议类型
{ Opt_xprt_udp, "udp" },
{ Opt_xprt_tcp, "tcp" },
{ Opt_xprt_rdma, "rdma" },
{ Opt_xprt_err, NULL }
};
int register_filesystem(struct file_system_type * fs)
- 向全局变量 static struct file_system_type *file_systems; 上加入fs这个文件系统
- 通过find_filesystem() 在 file_systems 上查找插入fs的位置
- 操作 file_systems 时,加上了写锁 file_systems_lock
int unregister_filesystem(struct file_system_type * fs)
- 直接对 file_systems 进行操作
Nfsroot.c文件
====================================
__init、__initdata和__exit、__exitdata
- 定义位于,这些宏定义的作用是告诉编译器将这些函数或者数据放入相应的section中,而在模块加载的阶段,.ko文件中的代码和数据的加载区域是根据section来加载的。
static int __init root_nfs_init(void)
阅读(1673) | 评论(0) | 转发(0) |