来自Windows Server 2012的AWS EFS

Joe*_*moe 6 amazon-ec2 amazon-web-services

有没有人让Windows Server使用Windows NFS 4.1客户端连接到AWS EFS卷?我知道它不受支持,但想知道是否有人做过(或通过另一个客户端或实用程序?)

我们要求Windows Server将文件放到NFS卷(理想情况下为EFS)上,可以从基于RHEL的应用程序轮询该卷上的文件夹.该应用程序不支持S3,否则我们会使用它

TKS

小智 5

我使用了一个解决方法。就我而言,我只需要访问 Windows 2016 Server EC2 实例上的 EFS 共享。速度/吞吐量并不是一个真正值得关注的问题。

我启动了一个 t2.nano Linux/Ubuntu 实例,在该实例上安装了 EFS 共享,然后在 Linux 实例上设置了 SMB 共享,以通过网络为安装的 EFS 文件系统提供服务。

之后,只需将网络文件夹映射到 Windows 2016 服务器 EC2 实例上的驱动器即可。

在 Linux/Ubuntu 实例上设置 SMB 共享非常简单,如 Ubuntu 文档中所述


dav*_*ron 5

CITI @ University of Michigan 的人制作NFSv4.1 客户端开始,经过一些相对较小的更改,您可以获得到 AWS EFS 文件系统的工作连接。

正如@kafka 指出的那样:当任何客户端指定除OPEN4_SHARE_DENY_NONE. 幸运的是,CITI 的人发现这是一个可能的问题,并添加了一个定义,当被注释掉时,将只OPEN4_SHARE_DENY_NONE用于共享拒绝值。

一旦这个定义被注释掉,那么你需要为你的系统重新编译它——如果你使用自述文件指定的 Visual Studio 和 WDK 版本,则相对简单。一个问题是自签名证书过程不需要使用过时的根机构证书(因为它只有 512 位)。使用certreq来代替。

我正在努力将这些知识收集到Github 上 CITI 代码的一个分支中。(我相信你要么解决了你的问题,要么继续前进,但祝那些从谷歌登陆这里的人好运!)


kaf*_*fka 3

不,不支持。AWS 在其文档中明确指出这是不可能的。

例如,

不支持将 Amazon EFS 与 Microsoft Windows Amazon EC2 实例结合使用。AWS EFS 设置文档

关于为什么这是不可能的更技术性的解释在这里:

拒绝共享 NFS 支持共享拒绝的概念,主要由 Windows 客户端用于用户拒绝其他人访问已打开的特定文件。Amazon EFS 不支持此功能,并且对于指定除 OPEN4_SHARE_DENY_NONE 之外的共享拒绝值的任何 OPEN 命令,都会返回 NFS 错误 NFS4ERR_NOTSUPP。Linux NFS 客户端不使用 OPEN4_SHARE_DENY_NONE 以外的任何内容。AWS 文档参考

我还没有找到任何可以解决此问题的第三方客户端。

  • AWS 不*支持*它。这并不意味着它“不可能”。事实上,我在 EC2 上运行 Windows Server 2012 R2,并使用由密歇根大学 (http://citi.umich.edu/projects/nfsv4/windows) 开发的 NFSv4.1 客户端版本连接到 EFS /)。我正在 Github 上更新我的代码分支,以包含必须进行的更改(只需注释掉“#define”来处理 EFS 的“OPEN4_SHARE_DENY_NONE”要求)。它将位于 https://github.com/contentfree/ms-nfs41-client。(我当然不知道它是否是*生产*级别,但是......) (4认同)