在Debian下通過OpenVZ實(shí)現(xiàn)虛擬化入門
原創(chuàng)【51CTO獨(dú)家特稿】 OpenVZ(OpenVZ官方網(wǎng)站:http://www.openvz.org)是一種Linux平臺(tái)下的虛擬化解決方案。OpenVZ采用SWsoft的Virutozzo虛擬化服務(wù)器軟件產(chǎn)品的內(nèi)核(Virutozzo是SWsoft 公司提供的商業(yè)虛擬化解決方案)。OpenVZ在單個(gè)物理服務(wù)器上創(chuàng)建隔離的虛擬專用服務(wù)器(VPS或虛擬環(huán)境,VE),從而提高服務(wù)器利用率并確保應(yīng)用程序之間不會(huì)相互干擾。每個(gè)VPS的運(yùn)行都和獨(dú)立的服務(wù)器完全一致:VPS可以獨(dú)立重起,具有根訪問權(quán)限,用戶、IP 地址、內(nèi)存、處理器、文件、應(yīng)用程序、系統(tǒng)庫和配置文件等。OpenVZ軟件同時(shí)為用戶提供工具,協(xié)助自動(dòng)化管理虛擬服務(wù)器?;谀0宓膽?yīng)用程序部署可以在幾分鐘內(nèi)用簡單的方法創(chuàng)建新的虛擬服務(wù)器并投入使用,而且與其他的虛擬化技術(shù)相比,OpenVZ可以在每臺(tái)CPU上運(yùn)行幾倍于其他虛擬化服務(wù)器技術(shù)的虛擬化服務(wù)器。
本文將講述Debian Squeeze (AMD64)平臺(tái)下安裝及使用OpenVZ的基本方法。
一、安裝OpenVZ
1、通過如下命令安裝OpenVZ(如果使用32位平臺(tái)則需要安裝linux-image-openvz-686)。
srv75:~# apt-get install linux-image-openvz-amd64 vzdump vzctl vzquota srv75:~# ln -s /var/lib/vz /vz
2、將如下內(nèi)容增加到/etc/sysctl.conf文件中。
net.ipv4.conf.all.rp_filter=1 net.ipv4.icmp_echo_ignore_broadcasts=1 net.ipv4.conf.default.forwarding=1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.ip_forward=1 kernel.sysrq = 1 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.eth0.proxy_arp=1
3、通過如下命令使/etc/sysctl.conf文件中的修改立即生效。
srv75:~# sysctl -p
4、修改/etc/vz/vz.conf文件中的如下參數(shù)。
NEIGHBOUR_DEVS=all
5、重新啟動(dòng)計(jì)算機(jī)(如下圖所示,啟動(dòng)后會(huì)發(fā)現(xiàn)Grub中多了一個(gè)使用OpenVZ內(nèi)核的選項(xiàng),請(qǐng)選擇該項(xiàng)目進(jìn)入系統(tǒng))。
#p#
二、通過OpenVZ建立虛擬機(jī)
在OpenVZ安裝完成后***需要建立虛擬機(jī),最簡單的方法是直接下載OpenVZ官方提供的各種Linux發(fā)行版的虛擬機(jī)模板使用(下載地址:http://download.openvz.org/template/precreated/)。通過模板建立虛擬機(jī)的基本步驟如下:
1、通過如下命令下載虛擬機(jī)模板。
srv75:~# cd /var/lib/vz/template/cache srv75:~# wget http://download.openvz.org/template/precreated/contrib/debian-6.0-amd64-minimal.tar.gz
2、通過如下命令使用模板建立虛擬機(jī)(其中200是給要建立虛擬機(jī)定義一個(gè)編號(hào),該編號(hào)必須是唯一的,以后通過OpenVZ管理這些虛擬機(jī)時(shí)就需要使用該編號(hào))。
srv75:~# vzctl create 200 --ostemplate debian-6.0-amd64-minimal --config basic
3、使用如下命令將建立的虛擬機(jī)處于啟動(dòng)狀態(tài)。
srv75:~# vzctl set 200 --onboot yes --save
4、使用如下命令配置虛擬機(jī)的IP地址、主機(jī)名等參數(shù)。
srv75:~# vzctl set 200 --hostname ov1.example.zqin --save srv75:~# vzctl set 200 --ipadd 192.168.159.200 --save srv75:~# vzctl set 200 --numothersock 120 --save srv75:~# vzctl set 200 --nameserver 192.168.159.1 --nameserver 202.103.24.68 --save
5、使用如下命令正式啟動(dòng)虛擬機(jī)。
srv75:~# vzctl start 200
6、使用如下命令為虛擬機(jī)root用戶設(shè)置登錄密碼。
srv75:~# vzctl exec 200 passwd
7、至此虛擬機(jī)已完成可以使用??梢酝ㄟ^ssh連接到虛擬機(jī)進(jìn)行其它操作,也可以通過如下命令進(jìn)行虛擬機(jī)進(jìn)行操作。
srv75:~# vzctl enter 200
#p#
三、通過OpenVZ管理虛擬機(jī)
下面介紹幾個(gè)管理OpenVZ虛擬機(jī)的常用命令。
1、在虛擬機(jī)上執(zhí)行命令。
srv75:~# vzctl exec 200 ls /etc/rc2.d/ README S01bootlogs S01rsyslog S02cron S02ssh S03rc.local S03rmnologin S03stop-bootlogd
1、重新啟動(dòng)虛擬機(jī)。
srv75:~# vzctl restart 200
2、關(guān)閉虛擬機(jī)。
srv75:~# vzctl stop 200
3、刪除虛擬機(jī)。
srv75:~# vzctl destroy 200
4、查看已有虛擬機(jī)。
srv75:~# vzlist -a CTID NPROC STATUS IP_ADDR HOSTNAME 200 6 running 192.168.159.200 ov1.example.zqin 201 - stopped 192.168.159.201 ov2.example.zqin 202 - stopped 192.168.159.202 ov3.example.zqin
5、查看某虛擬機(jī)資源占用的情況。
srv75:~# vzcalc -v 200 Resource Current(%) Promised(%) Max(%) Low Mem 0.10 2.67 2.67 Total RAM 0.18 n/a n/a Mem + Swap 0.06 2.12 n/a Alloc. Mem 0.49 2.64 5.04 Num. Proc 0.02 n/a 0.73 -------------------------------------------- Memory 0.49 2.67 5.04
6、詳細(xì)查看OpenVZ為虛擬機(jī)分配的資源。
顯示的內(nèi)容共七列,每列含義如下:
• uid:虛擬機(jī)的編號(hào)。
• held:當(dāng)前資源的使用狀況。
• maxheld:顯示的是在一個(gè)周期內(nèi),資源使用的***值(一個(gè)周期是指從啟動(dòng)虛擬機(jī)到結(jié)束之間的時(shí)間)。
• barrier和limit:顯示用于控制資源的設(shè)定值。
• failcn:顯示被拒絕分配資源的次數(shù)。如果failcn的值增大很可能表示沒有足夠的內(nèi)存分配給應(yīng)用程序。
下面介紹是幾個(gè)比較重要的值:
• kmemsize:該參數(shù)用于顯示內(nèi)核使用的內(nèi)存大小(內(nèi)核只能常駐內(nèi)存不能使用swap,單位byte。
• privvmpages:該參數(shù)顯示分配的內(nèi)存+swap的大小(不是實(shí)際使用內(nèi)存),單位page(將page換算成MB的方法:page值*4/1024)。這個(gè)參數(shù)只是顯示分配的內(nèi)存大小,但并不是實(shí)際使用內(nèi)存的大小。
• physpages:該參數(shù)顯示實(shí)際使用的內(nèi)存大小,單位page(所有單獨(dú)虛擬機(jī)的實(shí)際使用內(nèi)存相加就是OpenVZ的內(nèi)存消耗)。
• vmguarpages:該參數(shù)顯示將多少內(nèi)存分配給了虛擬機(jī)(Dedicated RAM),單位page。
• oomguarpages:該參數(shù)顯示在 Dedicated RAM耗盡了的情況下有多少額外內(nèi)存可以供虛擬機(jī)使用,單位page。
作者簡介:張勤(博客),MCSE、MCDBA、RHCE,從事軟件開發(fā)(Delphi、Java)、項(xiàng)目管理、系統(tǒng)集成工作。曾參與多個(gè)基于Windows及Linux的大型系統(tǒng)集成項(xiàng)目,并在國內(nèi)多個(gè)知名IT網(wǎng)站發(fā)表技術(shù)類文章。
【編輯推薦】