前几天IKouLa家搞优惠时买了一台4.99欧/月的小“独服”,配置是:Atom D510、4G、1T、100M共享无限。因为重装系统要额外付费,只能进入援救模式和恢复默认系统(Debian 7 X64),只能装个小鸡来折腾下。查了资料,发现KVM需要VT支持,但这U又不支持,只能想到用OpenVZ来开小鸡了!
OpenVZ(OpenVZ官方网站:http://www.openvz.org)是一种Linux平台下的虚拟化解决方案。OpenVZ采用SWsoft的Virutozzo虚拟化服务器软件产品的内核(Virutozzo是SWsoft 公司提供的商业虚拟化解决方案)。OpenVZ在单个物理服务器上创建隔离的虚拟专用服务器(VPS或虚拟环境,VE),从而提高服务器利用率并确保应用程序之间不会相互干扰。每个VPS的运行都和独立的服务器完全一致:VPS可以独立重起,具有根访问权限,用户、IP 地址、内存、处理器、文件、应用程序、系统库和配置文件等。OpenVZ软件同时为用户提供工具,协助自动化管理虚拟服务器。基于模板的应用程序部署可以在几分钟内用简单的方法创建新的虚拟服务器并投入使用,而且与其他的虚拟化技术相比,OpenVZ可以在每台CPU上运行几倍于其他虚拟化服务器技术的虚拟化服务器。
一、安装和配置OpenVZ
要安装OpenVZ首先要添加OpenVZ的源。
1 |
vi /etc/apt/sources.list |
然后添加:
deb http://download.openvz.org/debian wheezy main
或者直接输入以下代码添加:
1 2 3 4 |
cat << EOF > /etc/apt/sources.list.d/openvz-rhel6.list deb http://download.openvz.org/debian wheezy main # deb http://download.openvz.org/debian wheezy-test main EOF |
添加KEY:
1 2 |
wget http://ftp.openvz.org/debian/archive.key apt-key add archive.key |
然后:
1 |
apt-get update |
最后根据自己母机的系统来安装OpenVZ的内核。
X64:
1 |
apt-get install linux-image-openvz-amd64 |
X86:
1 |
apt-get install linux-image-openvz-686 |
安装OpenVZ的管理工具
1 |
apt-get install vzctl vzquota ploop vzstats |
在 /etc/sysctl.conf 中增加以下内容:
1 |
vi /etc/sysctl.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# 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 |
执行以下命令可以让其修改立即生效:
1 |
sysctl -p |
设置GRBU,让系统加载OpenVZ的内核
1 |
vi /boot/grub/grub.cfg |
找到 set default=”0″,一般情况下default的值都为0,这是默认启动第一个启动菜单项。再往下继续看,找到“menuentry”这关键字,这是启动菜单项,找到OpenVZ内核的启动项,一般情况下都是第三项,加载的内核是2.6.32,如果是第三项,要把default=”0″改为default=”2″.
当然还有更简单点的方法,得知到OpenVZ内核为启动菜单为第三项后:
1 |
vi /etc/default/grub |
找到“GRUB_DEFAULT”,改为 GRUB_DEFAULT=2
最后输入一下命令即可自动更新
1 |
update-grub |
以上步骤完成后重启一次即可。
1 |
reboot |
二、下载模板
http://download.openvz.org/template/precreated/
/vz/template/cache/
三、通过OpenVZ建立虚拟机
通过以上步骤安装配置并下载好模板后,我们就要开始建虚拟机了。比如我们要建立一台预装debian-7.0-x86-minimal,CTID为102,主机名为vz2.example.com,IP为192.168.0.2,DNS为8.8.8.8、8.8.4.4的虚拟机。
创建CTID为102,摸板debian-7.0-x86-minimal,CTID必须是唯一的。
1 |
vzctl create 102 --ostemplate debian-7.0-x86-minimal |
添加、修改主机名:
1 |
vzctl set 102 --hostname vz2.example.com --save |
设置IP地址:
1 |
vzctl set 102 --ipadd 192.168.0.2 --save |
设置DNS:
1 |
vzctl set 102 --nameserver 8.8.8.8 --nameserver 8.8.4.4 --save |
启动小鸡:
1 |
vzctl start 102 |
基本的虚拟机建立好了,我们还需要对虚拟机进行一些操作和设置。比如我们要进入虚拟机以虚拟机的身份进行一下操作或设置虚拟机的ROOT密码。
登陆虚拟机:
1 |
vzctl enter 102 |
然后就可以以虚拟机的身份执行其他命令,比如passwd来修改root的密码。
退出虚拟机:
1 |
exit |
我们也可以在以母机的身份去执行虚拟机的命令:
1 |
vzctl exec 102 passwd |
当然我们也可以通过以下命令来修改虚拟机的root密码
1 |
vzctl set 102 --userpasswd root:passwd |
重新启动虚拟机
1 |
vzctl restart 102 |
关闭虚拟机:
1 |
vzctl stop 102 |
删除虚拟机。操作这步的话,CTID为102的虚拟机就会全部删除,包括里面的所有数据,所以要谨慎操作!
1 |
vzctl destroy 102 |
查看已有虚拟机
1 |
vzlist -a |
查看某虚拟机资源占用的情况
1 |
vzcalc -v 102 |
缺省情况下,虚拟机不会随系统启动而启动,如果你希望随系统启动,那可以使用下面的命令
1 |
vzctl set 102 --onboot yes --save |
如果需要激活虚拟机iptables的nat需要在母机上打开netfilter,注意的是以下命令需要在VPS关机的情况下执行!
1 |
vzctl set 102 --netfilter full --save |
关闭netfilter
1 |
vzctl set 102 --netfilter disabled --save |
设置虚拟机的内存和VSwap
1 |
vzctl set 102 --ram 512M --swap 1G --save |
设置虚拟机的硬盘空间
vzctl set CTID –diskspace $SoftLimit$:$HardLimit$ –save
1 |
vzctl set 102 --diskspace 4G:5G --save |
限制CPU
1 |
vzctl set 102 --cpuunits 1000 --save |
1 |
vzctl set 102 --cpulimit 50 --save |
限制虚拟机的I/O
1 |
vzctl set 102 --iolimit 5M --save |
四、单IP主机下的虚拟机网络
单IP的网络设置
让虚拟机连上网络
1 |
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to x.x.x.x |
端口转向,让外部能进来
1 |
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 10222 -j DNAT --to-destination 192.168.0.2:22 |