lyulyul / shine-cluster

Simple High performance Infrastructure for Neural network Experiments
GNU General Public License v3.0
14 stars 8 forks source link

在Synology运行Ubuntu docker导出和操作磁盘 #77

Open gqqnbig opened 2 years ago

gqqnbig commented 2 years ago

我们买Synology的目的是使用它的存储空间,但是Synology本身不是一块磁盘,不能插进计算机里用。相反,Synology带有一个操作系统,该操作系统创建磁盘空间后,导出(export)给其他计算机使用。因此,不论该磁盘在Synology本地是btrfs还是ext4格式,被远程计算机mount后,文件系统类型都变成了网络文件系统,btrfs的可操作特性不见了。比如,远程计算机无法运行btrfs命令设置磁盘配额——这命令需要在Synology运行。

Synology的操作系统叫DSM,它不是Ubuntu,是Linux的修改版。Linux的很多命令不见了,或者用法不一样了。DSM也带上了自己的独特命令。

目前我们需要export用户家目录里的shared文件夹、/opt(提供conda和常用软件)等。

这样产生两个问题:

  1. 我们的磁盘配额程序依赖btrfs,也绝对依赖Ubuntu 20.04。mount synology后,磁盘配额程序将无法运行。
  2. 我们的其他磁盘维护程序,如clean-conda-cache,也依赖Ubuntu 20.04。

我们有三个选择:

  1. 改写我们现有的程序,让它在Synology运行。那么它就不依赖Ubuntu了,我觉得命令会大变。而且本仓库会丧失一点一般性。
  2. 在Synology运行Ubuntu docker。Ubuntu docker可以访问Synology的硬盘,我们的程序在Ubuntu docker里运行,维护磁盘和设置配额。用这种方式要做的改动应该小一点。

但是Synology本身有磁盘配额功能,它要求Synology上面的用户帐户和我们集群上的用户帐户同步。我们目前集群上的用户帐户同步的方法是手动的

  1. 测试LDAP。LDAP可以自动在多个节点同步用户帐户。

Please comment.

Lu-233 commented 2 years ago

支持LDAP的方案,这可以解决两个问题:集群用户管理 和 使用Synology的磁盘配额功能。

Synology的存储非常大,我怀疑很难使用一半以上的存储空间。因此磁盘配额功能的重要性下降了。

因此用LDAP+Synology的方案看起来更漂亮。

wulamao commented 2 years ago

先提供一个参考文件:https://kb.synology.com/en-br/DSM/help/DirectoryServer/ldap_server?version=6

wulamao commented 2 years ago

现在需要考虑的是,之前以aha为主要存储中心的结构,是否同样要纳入统一的Quota管理之下?

Lu-233 commented 2 years ago

除了aha,目前几台服务器都有多块硬盘,空间不小,如果这些空间也要纳入统计和管理,就无法单独使用Synology的配额管理了。

gqqnbig commented 2 years ago

78 blocks #70. #70 blocks user registration. 因此#78 通过或否决之前,没有新用户可以注册集群。

gqqnbig commented 2 years ago

To do: create a dockerfile