LXC 部署上线期间常见问题汇总

问题一:执行lxc-create时,报错configuration path '/usr/local/var/lib/lxc' not found,或者lxc-ls无效:

解决:mkdir –p /usr/local/var/lib/lxc


问题二:lxc-execute: No such file or directory -failed to open /proc/mounts

原因简析:挂载cgroup文件系统时,把/proc文件系统玩坏了。不是每次都出现,个人笔记本和实验节点都未出现此问题,但是上线节点出现了此问题。

解决: sudo mount --make-rprivate /


问题三:lxc启动后内部进程PID与宿主机相独立

解决:使用lxc-start命令启动


问题四:lxc-start命令不能以daemon形式启动进程

启动脚本中最后一个进程不能以daemon形式启动。例如

# loop1.sh

my_loop &

my_loop &

my_loop &

不可以使用lxc-start启动


# loop2.sh

my_loop &

my_loop &

my_loop

可以使用lxc-start启动


虽然脚本内部对daemon&)形式有限制,但是启动lxc时,可以使用daemon形式,例如

lxc-start -n my_lxc sh loop2.sh &


问题五:使用lxc-execute后,报错netstat: no support for `AF UNIX` on this system,/proc文件系统出现异常。

解决:切换到root用户,系统会进行提示,根据提示,进行如下操作:mount -t proc none /proc,重新挂载/proc文件系统


问题六:lxc与内部进程的耦合关系

基本属于紧耦合,关闭lxc(lxc-stop)后,内部进程被杀掉;关闭lxc内所有进程后,lxc也自动被关闭。

解决:使用lxc-attach,不过好像需要打内核补丁。本人未实际操作。


问题七:使用普通用户启动lxc

解决:lxc自带命令lxc-setuidroot执行lxc-setuid后,普通用户即可使用lxc-start lxc-stop等命令。


问题八:lxc-stop暴力关闭lxc。应用方希望关闭lxc时,应用程序可以不要暴力关闭,可以收到signum(如15)。这样应用方可以先进行结果回收,然后再退出。

解决:使用lxc-kill命令,如使用命令lxc-kill -n lxc1 15,相当于kill -15关闭应用进程。


问题九:使用lxc启动Java进程后,java调试工具(如jps/jstat)无法正常使用。

解决:修改代码clone_newpid,参见另一篇专门博客《LXC Java调试命令无效与共享PID Namespace》


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章