认识cgroup和 lxc
01-09-2013 by luw2007引子
[CPyUG] 对于python的sandbox,有什么好的方案吗? 由python的沙箱引出虚拟化中的两个名词lxc和cgroup。
cgroup(control groups)
- cgroup, wikipedia 中的定义
- http://www.kernel.org/doc/Documentation/cgroups/, cgroups 官方文档
- http://www.cnblogs.com/lisperl/tag/虚拟化技术, 这里对官方文档做了翻译
Lxc(LinuX Containers)
- lxc, wikipedia 中的定义
- Linux Containers - ArchWiki
- LXC - Community Ubuntu Documentation, See also
- How to LXC - this is one of the best documents available, 比较详细的lxc 的介绍手册
- LXC - Gentoo Wiki
- LXC - Debian Wiki
- LXC - openSUSE
- https://www.stgraber.org/category/lxc/, ubutnu的软件工程 Stéphane Grabers的blog。
- lxc-in-ubuntu-12-04-lts, Stéphane Grabers lxc tutorial
- LXC: Linux container tools, IBM linux 技术中心软件工程师的一篇介绍
- Secure Linux containers cookbook, 和上篇是姐妹篇, 通过 LSM(Linux Security Modules), SELinux(Security-Enhanced Linux), Smack()
- LXC – Linux Containers on Steroids, lxc 简单使用心得
-
LXC(Linux Containers)的不足和改进, 提出以下观点
缺少对磁盘配额(disk quota)的支持 缺少对写时复制(copy on write)的支持 进程和容器之间的动态关联还不够完善 不支持checkpoint
由于与OpenVZ同为OS级别的虚拟化技术,免不了对比两者之前的差异。
OpenVZ vs LXC
- Future of OpenVZ?
- openvz-vz-lxc, lxc 再次被吐嘈不支持checkpoint。
- Lightweight-virtualization-LXC-vs-OpenVZ.pdf, 德文写的。
通过上面的文章可以看到目前lxc 还不适合是用在生产环境。Lxc 依赖的cgroup 早已加入linux kernel mainline中。我比较认同Lxc 最终会替代 OpenVZ。
see also
- http://ubuntuforums.org/showthread.php?t=1382823, Lucid and OpenVZ and/or LXC ?
- http://manpages.ubuntu.com/manpages/karmic/man5/lxc.conf.5.html, lxc.conf 配置帮助
- https://access.redhat.com/knowledge/docs/zh-CN/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/, 'RHEL6的资源管理指南'。 其中主要介绍cgrous, 由于是针对rhel 系统的。对于非red hat用户建议主要看看概念和机制。
- http://agiletesting.blogspot.com/2011/08/anybody-using-lxc-or-openvz-in.html, twitter 上lxc 杂谈
bbcp,替代scp的多线程传输工具
01-07-2013
by luw2007
选用bbcp替代scp的原因
这两天用scp往服务器上传数据,scp传输速度太慢。特别是网络不太稳定的时候,速度非常慢。惨不忍睹。 所以想找个替代工具。
使用中遇到的问题
如何好用, 比scp 快多少就不测试了。这里说说遇到问题。
- 需要目标服务器上同样放置bbcp程序。如果有admin权限,比较好办。
- 防火墙。由于采用了多个端口同时传输数据, 所以需要开发至少8个端口用于传输数据。
- 目标服务器在公网,并且开放端口,直接传输;
- 目标服务器在内网,
- 防火墙映射端口,直接传输。
- 目标服务器无法映射端口,本地开放端口或者可以映射端口, 可以使用-Z(同--port 此为12.08.17版本中加入,如果无法使用, 请使用 --help 查看版本) 传输。
- 本地也无法映射端口。那就没辙了。
- 连接目标服务器ssh的端口貌似没法修改, 默认22。 但是好多服务器都修改了这个端口。(提供了-S, 但是不会设置)