阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

虚拟化为 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:031793
用户头像

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

关注

评论

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

理解 JVM 工作机制(十) 类加载机制和加载的过程

ue4

Java jdk JVM

如何使用golang实现桥接模式

Jack

恭喜又一名小伙伴上岸大厂

冰河

程序员 互联网 架构师 大厂Offer 上岸大厂

从传统 IT 容灾转向“全栈云容灾”|什么是更适合政企的云

云布道师

阿里云

理解 JVM 工作机制(七) 内存分配和回收策略

ue4

Java jdk JVM

理解 JVM 工作机制(四) 回收策略

ue4

Java jdk JVM

理解 JVM 工作机制(十一) 类加载器

ue4

Java jdk JVM

CMake入门教程:从零开始构建C/C++项目

小万哥

程序员 后端 开发 C/C++ cmake

ConcurrentHashMap是如何实现的?

javacn.site

AIGC背后的技术分析 | 图像风格迁移

TiAmo

AIGC 图像风格迁移

2D CAD设计软件CADintosh X 激活版

真大的脸盆

Mac Mac 软件 CAD绘图 CAD设计 cad

聊聊 Milvus GC:从一次数据丢失事件展开

Zilliz

非结构化数据 GC Milvus 向量数据库

易观千帆 | 2023年4月证券APP月活跃用户规模盘点

易观分析

证券

3D设计必备!5个免高质量的 HDRI 环境贴图网站

Finovy Cloud

blender

2023-05-24:为什么要使用Redis做缓存?

福大大架构师每日一题

redis 福大大

Nautilus Chain开启全球行,普及Layer3概念加速其采用

BlockChain先知

OpenHarmony创新赛 | 赛事宣讲会日期重磅官宣!为你带来超详尽的赛事攻略

OpenHarmony开发者

OpenHarmony

理解 JVM 工作机制(八) JVM 性能调优

ue4

Java jdk JVM

c#中用System.Diagnostics.Process.Start(Path.GetFullPath(“vlc.exe.lnk“), url);用vlc的快捷方式打开http的url不起作用?

福大大架构师每日一题

C# 福大大 vlc

Nautilus Chain开启全球行,普及Layer3概念加速其采用

股市老人

理解JVM工作机制(五)垃圾回收算法

ue4

Java jdk JVM

理解 JVM 工作机制(九) 类文件结构

ue4

Java jdk JVM

Solaris Exchange:一个安全可靠的合成资产交易平台

股市老人

中国互联网广告市场年度分析2023

易观分析

互联网 广告

软件测试|Python实用炫酷技能——推导式

霍格沃兹测试开发学社

Nautilus Chain开启全球行,普及Layer3概念加速其采用

西柚子

基于 Amazon API Gatewy 的跨账号跨网络的私有 API 集成

亚马逊云科技 (Amazon Web Services)

Amazon

Nautilus Chain开启全球行,普及Layer3概念加速其采用

EOSdreamer111

C语言编程—循环语句

二哈侠

MacOS高效iOS代码编写工具|AppCode 2023 激活版v2023.2 兼容M1/M2/intel

Rose

AppCode中文 AppCode 2023破解 AppCode密钥 iOS/macOS开发

理解 JVM 工作机制(六) 垃圾收集器

ue4

Java jdk JVM

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