使用Samba替代NFS

2018年01月16日 10741点热度 3人点赞 0条评论

之前项目组之中一位离职的同事给我们搭建的数据平台, 用的是Suse。 后来因为计算平台需要迁移到Spark之上, 我们就需要让Spark能方便的读取到SUSE之中的数据文件。

方案1:SUSE NFS Server

因为之前项目组最常用的文件分享协议就是NFS了。 我们的FreeNas服务器上面, 存储了几十T的数据文件。

因此我们首先尝试的是NFS的方法。 Google之后:

尝试了以下命令:

[code lang=shell]
yast2 -i nfs-kernel-server
# or zypper install -y nfs-kernel-server
[/code]

但是不管上面哪个命令, 都会报错:

[code lang=bash]
Warning: Legacy commandline option -y/--no-confirm detected. Please use -n/--non-interactive instead.
File '/repodata/repomd.xml' not found on medium 'http://download.opensuse.org/update/13.2/'

Abort, retry, ignore? [a/r/i/? shows all options] (a): a
ABORT request: Aborting requested by user
[/code]

非常奇怪的问题, 后来又经过Google, 发现原因:

Yes, @tboerger is right. 13.2 reached EOL, this is why the repositories are no longer around. This doesn't depend on this project.

From: https://github.com/openSUSE/docker-containers-build/issues/23

敢情是这位哥们用的SUSE版本太老了?!

方案2: Samba出马

正在一筹莫展甚至想把数据文件全部迁移到另外一个Ubuntu机器之时, 忽然发现这一台SUSE已经安装了Samba Server 服务, 只是没有启用而已。

现在回想起来, 这个SUSE的Samba Server的安装,也真是奇葩, 官网文档写的也很不详细。

现在总结一下:

  • 执行命令: yast2

    如图选中“Samba Server”

    suse-yast2-netword-service-samba

  • Workgroup 默认, 选择Next

    suse-yast2-netword-service-workgroup-next

  • Domain Controller 依然默认, Next

    这一个功能我猜是某些域名才能访问。 具体没有试过~

    suse-yast2-netword-service-domain-controller-next

  • 这一步要注意, 选择启动的时候自动启动

    suse-yast2-netword-service-start-during-boot

  • 注意, 需要手动设定账号信息, 否则在其他地方能看到目录, 就是进不去

    假设原来已经有一个用户账号 hadoop, 执行下面的命令, 给这个账号设置一下密码:

    [code lang=bash]
    suse2:~ # smbpasswd -a hadoop
    New SMB password:
    Retype new SMB password:
    Added user hadoop.
    [/code]

    这里设置的密码,可以跟原来的SSH密码一样。

设置完成之后, 我们可以在Windows上面直接使用UNC的方式访问了:

UNC的方式: \\10.206.132.119

suse-yast2-netword-service-samba-win-demo

Ubuntu Client Mount Samba server

因为我们的需求是让Spark能方便的读取SMB服务器上面的数据, 最方便的方法还是直接mount。

当然可以使用smbclient, 不过在Spark之中读取数据的时候, 就不那么友好了。

mount命令也很简单,参考下面的格式:

[code lang=shell]
sudo mount //10.206.132.119/users/hadoop/airsupport_da /data/airsupport/airsupport_da -o user=hadoop,password=xxxx
[/code]

事后小结:

  1. SUSE的文档相比Ubuntu感觉真心很少,而且也不是很友好。
    很多网友的文章, 感觉也是很久以前的东西。 特别是看到有人说某某东西EOS之后, 内心是有一些崩溃的。

  2. 后来简单调查了一下, Samba的稳定性确实要比NFS要好一些。
    我们的NFS Server 经常命令行卡死。
    解决方案: 不好意思, 暂时无解~ 重启服务器吧。。。

  3. 本文原创, 转载需要注明原文:
    https://www.flyml.net/2018/01/16/replace-nfs-with-samba/

RangerWolf

保持饥渴的专注,追求最佳的品质

文章评论