如何解决如何获得“ cos-extensions install gpu”在Google Cloud VM上运行?
我正在按照https://cloud.google.com/container-optimized-os/docs/how-to/run-gpus上的说明尝试在具有GPU的GCE上设置容器优化的OS(COS)。创建VM之后,它说要SSH并运行cos-extensions install gpu
。这样可行;您会在安装过程中看到它运行nvidia-smi
,它会打印出驱动程序版本(440.33.01)并连接至卡。
但是它会在/var/lib/nvidia
中安装nvidia的bins和libs,它们在此操作系统中以noexec
的形式挂载(已被锁定)。这意味着所有库或实用程序都不起作用。而且,当您将它们安装到docker容器时,它们也不在那里工作;他们仍然是noexec。
我发现的唯一解决方法是将整个/var/lib/nvidia
目录复制到tmpfs暂存磁盘并从那里使用它。
我使用错了吗,还是刚坏了?
解决方法
这似乎不是容器问题,而是由于COS导致的容器优化的OS预期行为,它通过为多个功能提供具有安全意识的默认值来提供另一种强化级别。
如果您查看documentation,则对于Container-Optimized OS文件系统,/var
下的所有内容都以no-exec的形式挂载,除了
-
/var/lib/google
-
/var/lib/docker
-
/var/lib/toolbox
那些具有可写,可执行和有状态属性的挂载。
另一方面,Ubuntu容器根据COS的安装情况,具有不同的严格exec / noexec,因此,最好使用基于Ubuntu的映像而不是COS作为解决方法。
另一种选择是将/var/lib/nvidia
的内容复制到尚未使用noexec选项进行挂载的另一个挂载点下,就像您已经做过的那样。
结果证明我没有做错任何事情。现在已确认为cos-extensions
中的错误:https://issuetracker.google.com/issues/164134488
奇怪,因为看起来这已经出现在测试中了。
目前没有任何好的生产解决方法,因为作为用户,如果没有一些高级脚本,很难修改COS的行为。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。