開源Linux容器 OpenVZ 快速上手指南,openvz上手指南
- Linux 容器及OpenVZ 簡介
- OpenVZ 安裝
- 安裝核心鏡像
- 配置sysctl 以及安裝相關工具
- 重啟至OpenVZ 核心
- 簡單上手
- 下載預先準備的模板也可以稱作鏡像
- 建立以及配置容器資訊
- 開始運行以及使用
Linux 容器及OpenVZ 簡介
Linux 容器(Linux Container,LXC)是一種輕量級的虛擬運行環境,它與傳統的虛擬機器方
式不同。傳統的虛擬機器需要對硬體作出抽象並提供了一個完整的作業系統,而LXC 不同的
地方就是,多個容器都與系統共用一套核心機制,而容器中提供的只是運行環境需要的檔案
系統、虛擬網路等。
具體的架構:
中所示,本文要介紹的OpenVZ 是一種容器的實現方式。還有其他的一些容器,如LXC tool (這個工具可以用於建立LXC 運行環境,Docker 可以說就是基於LXC tool的),本部落格會在後續相繼深入分析。
OpenVZ 對於容器技術實踐較早,核心中用於實現LXC 的很多機制也都出自他們之手,目前OpenVZ 的眾多特性都基於RHEL6 核心(核心版本為2.6.32)進行修改,而且其中一部分新特性並未加入主流核心,所以建議使用OpenVZ 的核心以達到更好的容器特性,如隔離性、快照等。
OpenVZ 安裝
Debian7(wheezy) 版本預設不支援OpenVZ(不知是因為核心版本問題,亦或一些其他問題)
,但是OpenVZ 團隊添加了對Debian7 的支援,我們可以通過安裝他們提供的Linux 核心鏡
像完成安裝,參考[1][3]
1. 安裝核心鏡像
如前面所屬,在Debian7 上需要專門安裝OpenVZ 提供的核心鏡像才可以完整支援OpenVZ,方法如下:
1.1 添加源並更新(下文操作都需要root 許可權)
`# cat << EOF > /etc/apt/sources.list.d/openvz.list deb http://download.openvz.org/debian wheezy main deb http://download.openvz.org/debian wheezy-test main EOF # apt-get update`
1.2 安裝核心鏡像
`# apt-get install linux-image-openvz-amd64 # apt-get install linux-image-openvz-686 (如果您仍然使用32位系統)`
2. 配置sysctl 以及安裝相關工具
OpenVZ 核心鏡像安裝完畢,在重啟之前還需要如下配置
2.1 有一些核心參數需要配置以保證OpenVZ 的正常運行,設定檔為”/etc/sysctl.conf”
# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0
# Enables source route verification
net.ipv4.conf.all.rp_filter = 1
# Enables the magic-sysrq key
kernel.sysrq = 1
# We do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
2.2 需要安裝一些使用者空間的工具
# apt-get install vzctl vzquota ploop vzstats
3. 重啟至OpenVZ 核心
配置以及相關軟體安裝完畢,需要重啟核心至OpenVZ 的核心
簡單上手
對於這樣一個可以提供完整系統運行環境的Linux 容器,當然得把玩把玩,快快坐好體驗一下吧。更多參考[2][4]
1. 下載預先準備的模板(也可以稱作鏡像)
1.1 從官方網站下載你需要的模板[5][6]
1.2 將下載好的模板移動到需要的路徑下
# mv ubuntu-14.04-x86.tar.gz /var/lib/vz/template/cache/
2. 建立以及配置容器資訊
# vzctl create CTID --ostemplate osname
# vzctl set CTID --hostname test --save
# vzctl set CTID --ipadd a.b.c.d --save
# vzctl set CTID --nameserver a.b.c.d --save
如:
# vzctl create 111 --ostemplate ubuntu-14.04-x86
# vzctl set 111 --hostname ubuntu --save
# vzctl set 111 --ipadd 192.168.2.233 --save
# vzctl set 111 --nameserver 192.168.2.1 --save
3. 開始運行以及使用
# vzctl start CTID
# vzctl exec CTID ps ax # Now the container is running!
# vzctl enter CTID
entered into container CTID
[container]# ...
[container]# exit
exited from container VEID
# vzctl stop CTID
# vzctl destroy CTID
如:
# vzctl start 111
# vzctl enter 111
[container]# do something (default is root)
[container]# exit
# vzctl stop 111
[1] https://wiki.openvz.org/Installation_on_Debian
http://openvz.livejournal.com/45345.html
[2] https://wiki.openvz.org/Basic_operations_in_OpenVZ_environment
[3] http://download.openvz.org/doc/openvz-intro.pdf
[4] http://download.openvz.org/doc/OpenVZ-Users-Guide.pdf
[5] http://download.openvz.org/template/precreated/
[6] http://openvz.org/Download/template/precreated