LXC+PBS+集群调度 msg: 'Bad UID for job execution MSG=connection to mom timed out'

记录在过程所部署LXC+PBS的HPC环境遇到的问题。

LXC简介

LXC,其名称来自Linux软件容器(Linux Container)的缩写,一种操作系统层虚拟化(Operating system-level virtualization)技术,为Linux内核容器功能的一个用户控件接口。它将应用软件系统打包成一个软件容器(Container),内含应用软件本身的代码,以及所需要的操作系统核心和库。通过统一的名字空间和公用的API来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得Linux用户可以很容易的创建和管理系统或应用容器。
在Linux内核中,提供了cgroups功能,来达成资源的区隔化。它同时也提供了名称空间区隔化的功能,是应用程序看得到操作系统环境被区隔成独立区间,包括进程树,网络,用户id,以及挂载的文件系统。但是cgroups并不一定需要启动任何虚拟机。
LXC利用cgroups与名称空间的功能,提供应用软件一个独立的操作系统环境。LXC不需要Hypervisor这个软件层,软件容器(Container)本身极为轻量化,提升了创建虚拟机的速度。软件Docker被用来管理LXC的环境。
LXC通常被认为介于“加强版”的chroot和完全成熟的虚拟机之间的技术。LXC的目标是创建一个尽可能与标准安装的Linux相同但又不需要分离内核的环境。


以上摘自LXC-wiki

实施过程遇到的问题

1.LXC启动的虚拟机主机名问题

发现启动的虚拟机主机名和打包的系统中关于主机名的配置文件不一致,在虚拟机中检查配置文件和重启虚拟机都不能解决问题
结果发现,在LXC启动虚拟机的时候,config文件中有关于主机名的定义,外部配置文件起着决定性作用。

2.LXC虚拟机NFS共享

环境需要,一台Container作为nfs server,其他节点的Container作为client挂载server端的home目录,配置后发现server端可以将/home目录共享出去,client端能够查看到server的共享信息(showmount),但是mount失败并提示,类似“denied by server”信息
解决方法,实体机拷贝Container-server的/home目录并做nfs server,所有Container做client,并配置正确的权限,解决问题。具体原因待查,可能是Container不支持nfs的文件系统。

3.提交作业状态一直为Q

查看作业运行状态

checkjob <job-id>

输出

job is deferred. Reason: RMFailure (cannot start job - RM failure,rc: 15025, msg: 'Bad UID for job execution MSG=connection to mom timedout')

根据错误信息,查看pbs client状态正常 free

qnodes -l

结果发现,1.各计算节点时区和管理节点时区不一致,2.共享目录为共享成功,3.用户未同步
备注:
用户同步、认证集群中采用NIS或者LDAP服务的方式,注意查看/etc/nsswitch.conf文件中对于用户、用户组等的认证是否添加相应的方式。

4.提交作业一直为R

qdel后查看做也信息和系统log,发现pbs_mom报错,未能在exec_host拷贝.OU和.ER文件至提交作业节点,没找到.OU和.ER文件
该问题待解决,怀疑是目录权限问题。

你可能感兴趣的:(运维二三事)