我们有一个数千名用户在大约 40 个集群上运行应用程序的环境,集群的大小从 20 个计算节点到 98,000 个计算节点不等。这些系统上的用户生成由传统 unix 权限控制的大量文件(有时> 1PB)(由于文件系统的特殊性质,ACL 通常不可用或不实用)。
我们目前有一个名为“give”的程序,它是一个 suid-root 程序,允许用户在组权限不足时将文件“给”给另一个用户。因此,用户会键入以下内容以将文件提供给另一个用户:
> give username-to-give-to filename-to-give ...
Run Code Online (Sandbox Code Playgroud)
然后,接收用户可以使用名为“take”的命令(give 程序的一部分)来接收文件:
> take filename-to-receive
Run Code Online (Sandbox Code Playgroud)
然后文件的权限被有效地转移到接收用户。
这个程序已经存在多年了,我们想从安全和功能的角度重新审视这些事情。
我们当前的行动计划是在我们将其重新部署到生产中之前,消除我们当前“give”实现中的位腐烂并将其打包为开源应用程序。
当只有传统的 unix 权限可用时,有没有人使用另一种方法在用户之间传输超大文件?
免责声明:这篇文章很长,因为我试图提供所有相关的配置信息。
我管理一个 gpu 集群,我想使用 slurm 进行作业管理。不幸的是,我无法使用 slurm 的相应通用资源插件来请求 GPU。
注意:test.sh 是一个打印环境变量 CUDA_VISIBLE_DEVICES 的小脚本。
--gres=gpu:1未完成运行srun -n1 --gres=gpu:1 test.sh结果如下错误:
srun: error: Unable to allocate resources: Requested node configuration is not available
Run Code Online (Sandbox Code Playgroud)
日志:
gres: gpu state for job 83
gres_cnt:4 node_cnt:0 type:(null)
_pick_best_nodes: job 83 never runnable
_slurm_rpc_allocate_resources: Requested node configuration is not available
Run Code Online (Sandbox Code Playgroud)
--gres=gram:500确实完成srun -n1 --gres=gram:500 test.sh但是,如果我打电话,作业会运行并打印
CUDA_VISIBLE_DEVICES=NoDevFiles
Run Code Online (Sandbox Code Playgroud)
日志:
sched: _slurm_rpc_allocate_resources JobId=76 NodeList=smurf01 usec=193
debug: Configuration for job 76 complete
debug: laying …Run Code Online (Sandbox Code Playgroud) 我们在集群上运行了一个 14TB XFS 文件服务器,并希望添加配额支持。这是在 CentOS 6.3 (Final) 下运行 3.9.2-1.el6.elrepo.x86_64 内核。
问题是当我们卸载 XFS RAID 并重新挂载它以添加配额支持时,挂载命令挂起。服务器响应并且无法访问XFS 挂载点。恢复我们在 /etc/fstab 中的更改以删除配额选项不会挂载挂载。
我怀疑在重新安装时,XFS 会在 14TB RAID 上运行配额检查。我的问题是:如何禁用初始配额检查,以便它可以正确安装并在后台运行配额检查?
/etc/fstab 入口:
/dev/sdb /w1 xfs defaults,noatime,usrquota,grpquota 1 2
Run Code Online (Sandbox Code Playgroud)
/var/log/messages 输出:
Jun 6 11:37:43 nas-2-1 kernel: XFS (sdb): Mounting Filesystem
Jun 6 11:37:43 nas-2-1 kernel: XFS (sdb): Ending clean mount
Jun 6 11:37:43 nas-2-1 kernel: XFS (sdb): Quotacheck needed: Please wait.
Run Code Online (Sandbox Code Playgroud)
我不介意挂载点处于活动状态时 CPU 使用率高或性能低,但让它不可用不是我们想要坚持的选项。我怀疑对 14TB 运行配额检查大约需要一个完整的工作日。
我正在运行 WRF 天气模型。这是一个内存密集型、高度并行的应用程序。
我需要为此构建一个 HPC 集群。我使用 10GB infiniband 互连。
WRF 不取决于核心数,而是取决于内存带宽。这就是酷睿 i7 3820 或 3930K 的性能优于高级至强 E5-2600 或 E7 的原因
似乎大学将至强 E5-2670 用于 WRF。它的成本约为1500美元。Spec2006 fp_rates WRF bench 显示 580 美元的 i7 3930K 与 1600MHz RAM 的性能相同。
有趣的是,i7 可以处理高达 2400MHz 的 ram,为 WRF 做了很大的性能提升。然后它真的胜过至强。耗电量稍高,但仍低于每年 20 欧元。即使包括我需要的额外部件(PSU、infiniband、外壳),i7 方式仍然比 Xeon 便宜 700 €/cpu。
那么,可以在 HPC 集群中使用“游戏玩家”硬件吗?还是我应该用至强做专业?
(这不是关键应用程序。我可以处理停机时间。我想我不需要 ECC?)
我在不同的地方(例如,这里和这里)读到,NFS 的 I/O 性能无法扩展,而 Lustre 可以扩展,而且 Lustre 一般可以提供更好的 I/O 速率。
两者之间似乎存在各种架构差异,但我无法确定到底是什么让 Lustre 在速度或可扩展性方面有所提升。我想我的问题有些概念性,但是与 NFS 或允许 Lustre 扩展并提供更快 I/O 速率的功能相比,关键区别是什么?
我试图弄清楚如何设置一个简单的存储系统,使用 SRP 或 iSER 通过 Infiniband 导出块存储。
我还处于这个过程的早期阶段,目前我基本上只是在寻找以下级别的教程:“您的结构上有两台服务器:以下是如何将块存储设备从一台服务器导出到另一台服务器。 ” 最好在 RHEL 或其变体上。有什么指点吗?
有人知道 ScaleMP 的替代品吗?他们让几个 x86 盒子作为一个大盒子启动。理论上 AMD 的超传输应该允许同样的事情。
有没有其他公司或 OSS 项目这样做?
我们目前正在使用 Windows 2008 HPC R2 设置多个 Windows HPC 集群。我们希望能够通过命令行跨集群执行 Windows 许可命令,即显示当前许可证状态、安装产品密钥、重新武装试用密钥等。
不幸的是,该slmgr命令总是打开一个对话框来显示其输出,而不是写入标准输出。这是非常令人不快的,因为我们希望能够使用 HPC 工具对许可证状态运行并行操作。
任何人都可以建议一个完全在命令行上运行的用于管理 Windows 许可证的命令吗?