千呼万唤始出来,黄沙吹尽终见金——NFS on Mooncake

  Azure上的文件共享协议,Azure一直只支持自家的smb。虽然高版本的Linux也可以使用smb,但是在权限、配额等方面有一定缺陷;并且一些特殊场合,例如SAP的config文件,只支持存放在NFS。
  终于继Azure Global支持NFS后,Azure China(Mooncake)也开始NFS Preview,今天就先睹为快。

  Azure对NFS的有多种模式:NetApp架构、based on blob、File Storage、vFxt等。目前Azure支持的是FileStorage,NFS版本4.1。下边就演示如何在Mooncake上创建NFS。

服务注册

要使用NFS,必须先注册NFS服务,具体命令如下:

创建存储账户

  目前支持NFS的存储账户只有高级版的FileStorage,并且只能在东2和北2两个region使用,所以创建存储账户时,要选择对应的参数(红圈部分):

  其它按需设置即可。
  创建完成,可以看到同时支持NFS和SMB:

创建NFS共享

  现在进入文件共享,点击创建:

  此处没有协议选择。但是可以看到文件共享的各种参数和预配容量相关。例如将容量从1024改为2048,可以看到各项参数都发生了变化,并且收费是按照预配容量收费而非实际使用量:

  点击创建后进入共享的连接属性,可以看到只有SMB的连接参数,说明不支持NFS:

  产生这个问题的原因是目前NFS还在preview阶段,需要通过命令行方式创建。
  在命令行模式下,创建NFS的命令如下:

  如图创建了一个容量1024GiB的NFS共享。其中参数–enabled-protocols指定了共享协议,–root-squash指定权限映射。
  回到portal的存储账户,可以看到新创建的共享:

  进入共享,可以看到连接参数:

小结

  Mooncake的NFS创建简单介绍如上,如果有NFS需要,终于不用VM来实现,避免了VM带来的高可靠问题。
  NFS的应用面比较广,除了SAP等需求,在k8s的数据持久化、Tomcat配置等场合都离不开NFS,欢迎大家测试使用。