写点什么

虚拟化为 NFS 提供新机遇

  • 2013-10-28
  • 本文字数:2216 字

    阅读完需:约 7 分钟

NFS(网络文件系统)诞生已经有三十多年的历史,虽然有众多其他选择,但是很多厂商和解决方案提供商仍然选择 NFS 作为其虚拟化存储技术,为什么呢?资深专家 Paul Venezia 从多个角度分析了NFS 复兴的原因,可能NFS 并不完美,但是新技术并没有足够淘汰NFS 的优势。

NFS 是第一个现代网络文件系统(构建于 IP 协议之上)。在 20 世纪 80 年代,它首先作为实验文件系统,由 Sun Microsystems 在内部完成开发。NFS 协议已归档为 Request for Comments(RFC)标准,并演化为大家熟知的 NFSv2。作为一个标准,由于 NFS 与其他客户端和服务器的互操作能力而发展快速。标准持续地演化为 NFSv3,在 RFC 1813 中有定义。这一新的协议比以前的版本具有更好的可扩展性,支持大文件(超过 2GB),异步写入,以及将 TCP 作为传输协议,为文件系统在更广泛的网络中使用铺平了道路。在 2000 年,RFC 3010(RFC 3530 )将 NFS 带入企业设置。Sun 引入了具有较高安全性,带有状态协议的 NFSv4(NFS 之前的版本都是无状态的)。如今,NFS 是版本 4.1(RFC 5661),它增加了对跨越分布式服务器的并行访问的支持。

Paul 认为 NFS 在虚拟化环境中的复兴表明,一些好的想法不会过时:

一些技术的运行得这么好,以至于它们已经成为不朽之作——也许,不是因为它们是完美的,而是因为新技术没有能足够的提高自己的优势来推翻旧技术,即使它们可以对旧技术产生一定的冲击。NIS 就是这方面的一个例子。虽然现在有许多新的网络认证机制可以用,但是 NIS 仍然是无处不在。另一个例子就是 IPv4,虽然 IPv6 是更具有扩展性和更加现代化,但是,我们大多数人仍然在使用 IPv4,所以,要等待 IPv6 的到来,我们还需要等待一段时间。再有就是 NFS,它明年就将“年满”30 了。NFS 作为一个强大的分布式文件系统非常有用,这使得它仅仅通过做了一些改变就从大型机时代转型到虚拟化时代。如今最常用的 NFS 是 NFSv3,而它还是 18 年前的产品。然而,即便如此,它依然在全世界范围内被广泛使用。

曾经有一段时间,NFS 的发展陷入了低谷,它只被用于 Unix 上,服务于各处的 Solaris、Linux 和 FreeBSD 的文件系统,但是由于它太过老旧和不安全被许多厂商避之不及,不能广泛应用。即使是虚拟化时代的到来,当时也没有立刻让 NFS 立刻火起来,,充其量是文件系统的一个后备选项。iSCSI 现在呈上升趋势,光纤通道是快速访问网络存储资源的媒介,NFS 只是的一种。但随着 10G 网络的广泛使用以及随后的 10G 端口的价格下降,NFS 已经看到了复兴的希望,特别是在虚拟化领域里。当然,仍然有成千上万的 Unix 机器使用 NFS, 但现在也有数百万通过虚拟机管理程序运行以 NFS 存储的虚拟化 Windows 服务器。越来越多的存储厂商出于各种各样的原因,推荐 NFS 而不是 iSCSI 作为虚拟化部署的首选。

Paul 分析了 NFS 复兴的原因:首先,NFS 在使用和管理方面远远比 iSCSI 简单。你没必要移除每一套虚拟化主机的 LUNs(或者在某些虚拟机管理程序中,需要移除每一台机器的 LUNs);相反的,你可以仅仅把文件系统导出到一个委托的封闭的存储网络中,这样任何一台主机就都可以正常的玩游戏。当然了,你也可以没有进行 CHAP 认证和授权,当然这在许多情况下也不是必须的。在许多数据中心里, iSCSI 认证的存在仅仅是为了在扫描的时候,阻止没有访问权限的主机访问 LUNs。 现如今通过 iSCSI 而不是文件系统的存储方式加重了在主机自身上管理并发主机访问的负担。所有的锁管理和写管理都必须在存储阵列以外解决,这意味着当一台主机出现问题,你就有可能遇上灾难性的后果。

有几次,我已经完全失去了一个 iSCSI LUN,这时一场几台 ESXi 主机之间的冲突刚刚结束,结果导致了 LUN 上的 VMFS 导致了严重的损坏。我不得不销毁卷,然后从备份中重新创建。在 NFS 中,文件系统层中的所有任务都被阵列来处理,对于多系统的访问,这是一种更加紧密的环境——就像在虚拟化环境中一样。

此外,Paul 指出,NFS 导出的卷更容易被作为一个整体来管理。如果你需要调整 NFS 卷上的文件,你可以从一个工作站或者不在卷上运行的虚拟机来挂载。在 Linux 上,你可以仅仅使用几条 Linux 工具箱中的命令来备份整个 NFS 卷。如果你这样做,你不用担心自己会踩到任何一根脚趾。但是如果你因为表达格式错误不经意间把 iSCSI LUN 挂载到错误的机器上,所有的数据都会丢失。在许多情况下,你可能会发现,NFS 在性能上击败了 iSCSI。根据使用中的传输和存储情况, NFS 在某些工作负载的情况下吞吐量可以超过 iSCSI,尤其是当写入次数特别频繁的时候。在最坏的情况下,NFS 的性能通常与 iSCSI 相差无几。iSCSI 有先进的工具集,但是对于一些原始操作,一些存储厂商支持基于 NFS 的 VAAI,如完全的复制和卸载克隆。

NFS 与光纤通道是两种不同的讨论话题,考虑到光纤通道需要专用 HBA 和交换机,但是即使这样,在与 FCoE(以太网光纤通道)对比中,NFS 非常轻易地就赢得“简单性”方面的胜利。 在恢复性方面, iCSCI 和 FiBer Channel 或者 FCoE 的冗余的存储路径比 NFS 更加先进。尽管大多数虚拟机管理程序将允许多个并发的存储路径,而 NFS 仅限于故障转移和绑定的网卡聚合。然而,在实践中,这通常不是一个显著的问题。此外,人们希望 NFSv4 的广泛采用,将给人们带来多路径和附加的安全特征。曾经有几年,iSCSI 是虚拟化世界的宠儿—至少对于那些不要求当时的速度比光纤通道更快的公司是这样认为的。但是,趋势似乎现在正在改变,NFS 正在被重新推回到聚光灯下。

2013-10-28 06:032013
用户头像

发布了 501 篇内容, 共 261.9 次阅读, 收获喜欢 61 次。

关注

评论

发布
暂无评论
发现更多内容

零基础实现Java直播(一):集成

ZEGO即构

将知识点一网打尽,首推Netty实战干货,实战篇+面试篇

Java架构之路

Java 程序员 架构 面试 编程语言

Linux Lab 进阶: Linux 内核

贾献华

Linux Linux Kenel 内核

【Linux系统】一个常驻进程问题的再次分析

程序员架构进阶

Linux 七日更 28天写作 2月春节不断更 共享内存

架构师week10作业

Geek_xq

乌云下,种因时:vivo的平凡之路

脑极体

2021最新最全面“Java知识总结+⾯试指南”强烈推荐!

比伯

Java 编程 架构 面试 技术宅

阿里Java面试脑图遭公开,GitHub上已获赞79.6K

Java架构师迁哥

黑客练手入门| pwnable.kr—幼儿瓶—02:collision

BigYoung

安全 CTF PWN 28天写作 2月春节不断更

怎么一本正经地秀技

codevald

Java jdk

28天瞎写的第二百三十八天:这一年干了啥?

树上

28天写作

架构师week10总结

Geek_xq

5G专网是个大西瓜(三):合成之难

脑极体

产品经理第四周

克比

深入Linux内核之自旋锁spinlock_t机制

赖猫

c++ Linux内核

数据主权,才是业务在线化的核心

boshi

数据 数字资产 七日更

《我们一起学集合》-LinkedList

蚊子

Java 数据结构 面试 集合 linkedlist

爆肝一周总结了一份Java学习/面试自测指南!200+道Java最常见面试题。

Java架构之路

Java 程序员 架构 面试 编程语言

日记 2021年2月4日(周四)

Changing Lin

个人感悟 2月春节不断更

Linux 文件搜索神器 find 实战详解,建议收藏!

鞋子特大号

Linux find

产品训练营第二周作业-利益相关者

马悦

产品 产品经理训练营

【LeetCode】子数组的最大平均数

Albert

算法 LeetCode 2月春节不断更

阿里内网疯传,阿里P9分享千页实战干货:Netty、Redis、ZK高并发实战笔记

Java架构之路

Java 程序员 架构 面试 编程语言

百度单测生成技术如何召回线上服务的异常问题?

百度Geek说

c c++

开发质量系列:系统运营必须派人常驻机房吗?

罗小龙

最佳实践 方法论 28天写作 2月春节不断更

写在“28天坚持写作活动”的最后一天

JiangX

28天写作

Spark 持久化介绍(cache/persist/checkpoint)

kwang

大数据 spark 持久化

业务流程和产品文档

让我思考一会儿

ThreadLocal 类以及应用技巧

武哥聊编程

Java 多线程 ThreadLocal 28天写作

管理笔记[8]:管理中的聚势、借力与计划

L3C老司机

如果非要在多线程中使用ArrayList会发生什么?

看山

线程安全

虚拟化为NFS提供新机遇_服务革新_崔康_InfoQ精选文章