在 CentOS 上安装和配置 Xen
[
2009/09/21 22:16 | by suibing ]
2009/09/21 22:16 | by suibing ]
现在实验室 Masters 都配有1台 PC 和 1台笔记本,但是 Honours 只配有1台 PC,1台机器做项目很不方便,开发经常会用到多系统,比如有的人做的是手机 VoIP 的相关项目,手机客户端界面要在 Windows 平台上做,VoIP 服务器端要用到 Linux,所以要用虚拟机虚拟一个 Linux 出来,如果这些都跑在一台物理机器上会很慢。现在给 Honours 配置的 PC 只有 1G 的内存,如果运行 Windows + 手机模拟器 + Elipse IDE(需要 Java)+ VMware(VMware 上再跑个 Linux + Asterisk + MySQL),然后开个客户端收邮件、开几个浏览器看资料就会很困难。
所以 VPSee 打算把自己在用的1台 SUN 服务器捐出来做成 Xen 服务器,给每个 Honours 分一个虚拟系统,省下他们自己装虚拟机的时间和资源,VPSee 成了免费的 Xen VPS provider 了:)。SUN 服务器上同时运行16个 Xen 虚拟系统实例,每个配 256 MB 内存,4GB 硬盘,不开 GUI。下面的安装步骤和配置过程是基于 CentOS 5.3 版本。
安装 Xen
安装支持 Xen 的 Linux 内核 和 Xen:
$ yum install kernel-xen xen
安装成功后,可以看到 xen.gz-2.6.18-128.2.1.el5 内核已经装好,修改 default 的值默认启动 Xen 内核。
# vi /etc/grub.conf
default=0
timeout=2
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-128.2.1.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-128.2.1.el5
module /vmlinuz-2.6.18-128.2.1.el5xen ro root=/dev/VolGroup00/LogVol00
module /initrd-2.6.18-128.2.1.el5xen.img
title CentOS (2.6.18-128.1.16.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-128.1.16.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-128.1.16.el5.img
重启系统后检查一下是否是 Xen 的内核:
# uname -r
2.6.18-128.2.1.el5xen
再检查一下 Xen 是否已经启动:
# /usr/sbin/xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 1220 2 r----- 3214.1
创建和安装 guest
如果把正在运行的 Xen 内核的操作系统看成 host 的话,那么运行在 host 上面的操作系统就可以看成 guest。
先建一个目录用来存放所有的 guest 操作系统的 image,vm01.img,vm02.img,等等,1个 guest 对应1个 image。
# mkdir /vm
# virt-install
What is the name of your virtual machine? <-- vm01
How much RAM should be allocated (in megabytes)? <-- 256
What would you like to use as the disk (path)? <-- /vm/vm01.img
How large would you like the disk (/vm/vm01.img) to be (in gigabytes)? <-- 4
Would you like to enable graphics support? (yes or no) <-- no
What is the install location? <-- http://127.0.0.1/centos
或者可以把上面简化成1条命令:
virt-install -n vm01 -r 256 -f /vm/vm01.img -s 4 --nographics -p
-l http://127.0.0.1/centos
需要注意的是上面如果是 -p(paravirtualized)的话就不能直接从 iso 文件安装,必须把 iso 文件解出来后放到一个 http/ftp 服务器上安装,只有 Fully virtualized 的才可以从 iso 文件、CD-ROM 等安装。还要注意的是,paravirtualized 需要修改过的操作系统内核,所以不能安装 Windows, Fully virtualized 可以安装 Windows 只要 CPU 支持 Virtualization(Intel VT or AMD V)。所以这里需要先安装和配置一个 web 服务器,然后把 iso 文件解压到 web 服务器能访问的目录下(http://127.0.0.1/centos)。如果网速够快,可以从 Internet 上直接安装,把 http://127.0.0.1/centos 换成 http://mirrors.kernel.org/centos/5.3/os/i386
按照 CentOS 的安装程序完成 CentOS 操作系统(guest)的安装后,看看 guest 的配置文件:
# cat /etc/xen/vm01
name = "vm01"
uuid = "b4910b6d-b205-6f86-c145-3c0895cb20c5"
maxmem = 256
memory = 256
vcpus = 1
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [ ]
disk = [ "tap:aio:/vm/vm01.img,xvda,w" ]
vif = [ "mac=00:16:d2:0a:66:6d,bridge=xenbr0" ]
看看 guest 是否启动:
# /usr/sbin/xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 1220 2 r----- 4691.3
vm01 9 255 1 -b---- 16.9
进入 guest
安装成功后就可以登录 guest 了,
# /usr/sbin/xm console vm01
如果要退出 guest 的话,用 Ctrl + ],就会回到 host。
如果想每次启动 host 时自动启动 guest 的话:
# ln -s /etc/xen/vm01 /etc/xen/auto
更懒的办法
如果觉得安装 guest 操作系统太麻烦,可以到 http://stacklet.com/ 下载一个已经装好的镜像文件,然后在 host 下启动 guest 镜像就可以了。下载和启动 Ubuntu 9.04 的镜像:
# wget http://stacklet.com/sites/default/files/ubuntu/
ubuntu.9-04.x86.20090514.img.tar.bz2
# tar jxvf ubuntu.9-04.x86.20090514.img.tar.bz2
# mv ubuntu.9-04.x86.xen3.pygrub.cfg /etc/xen/ubuntu.9-04.cfg
# mv ubuntu.9-04.x86.img /vm/ubuntu.9-04.img
# /usr/sbin/xm create -f ubuntu.9-04.cfg
# /usr/sbin/xm list
# /usr/sbin/xm console ubuntu.9-04
从 http://stacklet.com/ 下载的镜像文件的初始用户名和密码为:root/password
增加 swap
如果是从 http://stacklet.com/ 下载的操作系统镜像,可能没有设置 swap,需要自己添加 swap 分区,可以做个 swap 镜像文件当作 swap 分区用。Xen 与 OpenVZ 相比有个好处就是 Xen 可以有自己的 swap 分区,甚至 guest 可以自己设置 swap. 先建个 512MB(524288B,1GB = 1048576B)大小的文件,转化成 swap 格式:
# dd if=/dev/zero of=ubuntu.9-04.swap bs=1024 count=524288
# /sbin/mkswap ubuntu.9-04.swap
修改 /etc/xen/ubuntu.9-04,修改 disk 这一行:
# vi /etc/xen/ubuntu.9-04.cfg
disk = ['file:/vm/ubuntu.9-04.img,sda1,w','file:/vm/ubuntu.9-04.swap,sda2,w']
启动 guest 系统,登录后修改 /etc/fstab,重启后用 top 看看 Swap 分区有没有被激活:
# vi /etc/fstab
/vm/vm01.swap swap swap defaults,noatime 0 0
# shutdown -r now
# top
...
Mem: 262284k total, 46480k used, 215804k free, 3176k buffers
Swap: 524280k total, 0k used, 524280k free, 17196k cached
常用 Xen 命令
xm create -c /path/to/config - Start a virtual machine.
xm shutdown - Stop a virtual machine.
xm destroy - Stop a virtual machine immediately without shutting it down. It's as if you switch off the power button.
xm list - List all running systems.
xm console - Log in on a virtual machine.
xm help - List of all commands.
所以 VPSee 打算把自己在用的1台 SUN 服务器捐出来做成 Xen 服务器,给每个 Honours 分一个虚拟系统,省下他们自己装虚拟机的时间和资源,VPSee 成了免费的 Xen VPS provider 了:)。SUN 服务器上同时运行16个 Xen 虚拟系统实例,每个配 256 MB 内存,4GB 硬盘,不开 GUI。下面的安装步骤和配置过程是基于 CentOS 5.3 版本。
安装 Xen
安装支持 Xen 的 Linux 内核 和 Xen:
$ yum install kernel-xen xen
安装成功后,可以看到 xen.gz-2.6.18-128.2.1.el5 内核已经装好,修改 default 的值默认启动 Xen 内核。
# vi /etc/grub.conf
default=0
timeout=2
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-128.2.1.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-128.2.1.el5
module /vmlinuz-2.6.18-128.2.1.el5xen ro root=/dev/VolGroup00/LogVol00
module /initrd-2.6.18-128.2.1.el5xen.img
title CentOS (2.6.18-128.1.16.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-128.1.16.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-128.1.16.el5.img
重启系统后检查一下是否是 Xen 的内核:
# uname -r
2.6.18-128.2.1.el5xen
再检查一下 Xen 是否已经启动:
# /usr/sbin/xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 1220 2 r----- 3214.1
创建和安装 guest
如果把正在运行的 Xen 内核的操作系统看成 host 的话,那么运行在 host 上面的操作系统就可以看成 guest。
先建一个目录用来存放所有的 guest 操作系统的 image,vm01.img,vm02.img,等等,1个 guest 对应1个 image。
# mkdir /vm
# virt-install
What is the name of your virtual machine? <-- vm01
How much RAM should be allocated (in megabytes)? <-- 256
What would you like to use as the disk (path)? <-- /vm/vm01.img
How large would you like the disk (/vm/vm01.img) to be (in gigabytes)? <-- 4
Would you like to enable graphics support? (yes or no) <-- no
What is the install location? <-- http://127.0.0.1/centos
或者可以把上面简化成1条命令:
virt-install -n vm01 -r 256 -f /vm/vm01.img -s 4 --nographics -p
-l http://127.0.0.1/centos
需要注意的是上面如果是 -p(paravirtualized)的话就不能直接从 iso 文件安装,必须把 iso 文件解出来后放到一个 http/ftp 服务器上安装,只有 Fully virtualized 的才可以从 iso 文件、CD-ROM 等安装。还要注意的是,paravirtualized 需要修改过的操作系统内核,所以不能安装 Windows, Fully virtualized 可以安装 Windows 只要 CPU 支持 Virtualization(Intel VT or AMD V)。所以这里需要先安装和配置一个 web 服务器,然后把 iso 文件解压到 web 服务器能访问的目录下(http://127.0.0.1/centos)。如果网速够快,可以从 Internet 上直接安装,把 http://127.0.0.1/centos 换成 http://mirrors.kernel.org/centos/5.3/os/i386
按照 CentOS 的安装程序完成 CentOS 操作系统(guest)的安装后,看看 guest 的配置文件:
# cat /etc/xen/vm01
name = "vm01"
uuid = "b4910b6d-b205-6f86-c145-3c0895cb20c5"
maxmem = 256
memory = 256
vcpus = 1
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [ ]
disk = [ "tap:aio:/vm/vm01.img,xvda,w" ]
vif = [ "mac=00:16:d2:0a:66:6d,bridge=xenbr0" ]
看看 guest 是否启动:
# /usr/sbin/xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 1220 2 r----- 4691.3
vm01 9 255 1 -b---- 16.9
进入 guest
安装成功后就可以登录 guest 了,
# /usr/sbin/xm console vm01
如果要退出 guest 的话,用 Ctrl + ],就会回到 host。
如果想每次启动 host 时自动启动 guest 的话:
# ln -s /etc/xen/vm01 /etc/xen/auto
更懒的办法
如果觉得安装 guest 操作系统太麻烦,可以到 http://stacklet.com/ 下载一个已经装好的镜像文件,然后在 host 下启动 guest 镜像就可以了。下载和启动 Ubuntu 9.04 的镜像:
# wget http://stacklet.com/sites/default/files/ubuntu/
ubuntu.9-04.x86.20090514.img.tar.bz2
# tar jxvf ubuntu.9-04.x86.20090514.img.tar.bz2
# mv ubuntu.9-04.x86.xen3.pygrub.cfg /etc/xen/ubuntu.9-04.cfg
# mv ubuntu.9-04.x86.img /vm/ubuntu.9-04.img
# /usr/sbin/xm create -f ubuntu.9-04.cfg
# /usr/sbin/xm list
# /usr/sbin/xm console ubuntu.9-04
从 http://stacklet.com/ 下载的镜像文件的初始用户名和密码为:root/password
增加 swap
如果是从 http://stacklet.com/ 下载的操作系统镜像,可能没有设置 swap,需要自己添加 swap 分区,可以做个 swap 镜像文件当作 swap 分区用。Xen 与 OpenVZ 相比有个好处就是 Xen 可以有自己的 swap 分区,甚至 guest 可以自己设置 swap. 先建个 512MB(524288B,1GB = 1048576B)大小的文件,转化成 swap 格式:
# dd if=/dev/zero of=ubuntu.9-04.swap bs=1024 count=524288
# /sbin/mkswap ubuntu.9-04.swap
修改 /etc/xen/ubuntu.9-04,修改 disk 这一行:
# vi /etc/xen/ubuntu.9-04.cfg
disk = ['file:/vm/ubuntu.9-04.img,sda1,w','file:/vm/ubuntu.9-04.swap,sda2,w']
启动 guest 系统,登录后修改 /etc/fstab,重启后用 top 看看 Swap 分区有没有被激活:
# vi /etc/fstab
/vm/vm01.swap swap swap defaults,noatime 0 0
# shutdown -r now
# top
...
Mem: 262284k total, 46480k used, 215804k free, 3176k buffers
Swap: 524280k total, 0k used, 524280k free, 17196k cached
常用 Xen 命令
xm create -c /path/to/config - Start a virtual machine.
xm shutdown - Stop a virtual machine.
xm destroy - Stop a virtual machine immediately without shutting it down. It's as if you switch off the power button.
xm list - List all running systems.
xm console - Log in on a virtual machine.
xm help - List of all commands.
KVM&OpenVZ虚拟化和使用Proxmox VE进行云计算
[
2009/09/21 14:16 | by suibing ]
2009/09/21 14:16 | by suibing ]
KVM&OpenVZ虚拟化和使用Proxmox VE进行云计算
版本 1.0
原作者: Falko Timme
翻译者:tinybiz
原文地址:http://www.howtoforge.com/kvm-and-openvz-virtualization-and-cloud-computing-with-proxmox-ve
原文最后编辑日期 01/29/2009
翻译日期:11/09/2009
Proxmox VE 是一个基于Debian Etch (x86_64) 版本的虚拟环境;它提供了一个可运行OpenVZ和KVM虚拟机的开源虚拟化平台。同时,其拥有一个强大的基于web界面的控制面板(这个控制面板包含了一个web化的图形控制终端,你可以通过这个终端,连接并使用虚拟机。 使用Proxmox VE,你甚至可以通过控制面板创建虚拟主机集群,并且在远程的主机上创建和控制虚拟机。Proxmox VE,同时也支持把一个运行的虚拟机从一个主机中镜像到另一个。这个教程将向你展示如何使用Proxmox VE控制KVM和OpenVZ虚拟机,和怎样通过Proxmox VE创建一个小的计算机云。
我不能保证这篇文章对你完全有效。
1 前言
Proxmox VE是一个基于x86_64的版本,因此你不能把它安装到一个i386系统上。并且,如果你使用的是KVM,那么你的CPU就必须支持类似于Intel VT或者是AMD-V的硬件虚拟化技术,但是如果你想使用OpenVZ的话,就不需要CPU的支持了。
在这个教程中,我将创建拥有两个机器的小集群,Proxmox master(主机名 server1.example.com ip地址 192.168.0.100)和一个slave(主机名 server2.example.com ip地址 192.168.0.101),以方便我展示在线镜像和通过Proxmox VE在远程主机上创建并管理虚拟机的功能。当然,Proxmox VE在一台主机上也能够很好地运行。
2 在server1.example.com(Master)上安装Proxmox VE
从http://pve.proxmox.com/wiki/Downloads网站下载最新的Proxmox VE的ISO镜像,把这个镜像烧录成CD光盘,并在你的计算机上引导启动这个CD光盘。在启动时按ENTER键:
接受Proxmox的证书许可(GPL)
选择你想安装Proxmox的硬盘。在这里需要注意的是被选择的硬盘上所有已经存在的分区和数据都将会丢失!
选择你的国家,时区,和键盘布局:
输入一个密码(这是一个可以使你登陆shell和Proxmox Web管理界面的root密码)和你的Email地址:
现在我们就进入到了网络配置的阶段。输入主机名(例如server1.example.com),IP地址(例如192.168.0.100),子网掩码(例如255.255.255.0),网关(例如192.168.0.1),和域名服务器(例如145.253.2.75):
然后,Proxmox就会被安装到计算机上了,安装过程将会使用LVM自动分区你的硬盘-这就是为什么在安装的过程中没有出现分区的对话框的原因。Proxmox使用LVM是因为它可以允许为虚拟机创建snapshot backups。
最后重启系统:
在server1主机重启过后,你就可以在浏览器中输入并打开http://192.168.0.100/-浏览器将会重新指向https://192.168.0.100/。
下载文件
版本 1.0
原作者: Falko Timme
翻译者:tinybiz
原文地址:http://www.howtoforge.com/kvm-and-openvz-virtualization-and-cloud-computing-with-proxmox-ve
原文最后编辑日期 01/29/2009
翻译日期:11/09/2009
Proxmox VE 是一个基于Debian Etch (x86_64) 版本的虚拟环境;它提供了一个可运行OpenVZ和KVM虚拟机的开源虚拟化平台。同时,其拥有一个强大的基于web界面的控制面板(这个控制面板包含了一个web化的图形控制终端,你可以通过这个终端,连接并使用虚拟机。 使用Proxmox VE,你甚至可以通过控制面板创建虚拟主机集群,并且在远程的主机上创建和控制虚拟机。Proxmox VE,同时也支持把一个运行的虚拟机从一个主机中镜像到另一个。这个教程将向你展示如何使用Proxmox VE控制KVM和OpenVZ虚拟机,和怎样通过Proxmox VE创建一个小的计算机云。
我不能保证这篇文章对你完全有效。
1 前言
Proxmox VE是一个基于x86_64的版本,因此你不能把它安装到一个i386系统上。并且,如果你使用的是KVM,那么你的CPU就必须支持类似于Intel VT或者是AMD-V的硬件虚拟化技术,但是如果你想使用OpenVZ的话,就不需要CPU的支持了。
在这个教程中,我将创建拥有两个机器的小集群,Proxmox master(主机名 server1.example.com ip地址 192.168.0.100)和一个slave(主机名 server2.example.com ip地址 192.168.0.101),以方便我展示在线镜像和通过Proxmox VE在远程主机上创建并管理虚拟机的功能。当然,Proxmox VE在一台主机上也能够很好地运行。
2 在server1.example.com(Master)上安装Proxmox VE
从http://pve.proxmox.com/wiki/Downloads网站下载最新的Proxmox VE的ISO镜像,把这个镜像烧录成CD光盘,并在你的计算机上引导启动这个CD光盘。在启动时按ENTER键:
接受Proxmox的证书许可(GPL)
选择你想安装Proxmox的硬盘。在这里需要注意的是被选择的硬盘上所有已经存在的分区和数据都将会丢失!
选择你的国家,时区,和键盘布局:
输入一个密码(这是一个可以使你登陆shell和Proxmox Web管理界面的root密码)和你的Email地址:
现在我们就进入到了网络配置的阶段。输入主机名(例如server1.example.com),IP地址(例如192.168.0.100),子网掩码(例如255.255.255.0),网关(例如192.168.0.1),和域名服务器(例如145.253.2.75):
然后,Proxmox就会被安装到计算机上了,安装过程将会使用LVM自动分区你的硬盘-这就是为什么在安装的过程中没有出现分区的对话框的原因。Proxmox使用LVM是因为它可以允许为虚拟机创建snapshot backups。
最后重启系统:
在server1主机重启过后,你就可以在浏览器中输入并打开http://192.168.0.100/-浏览器将会重新指向https://192.168.0.100/。
下载文件
php应该禁用的函数
[
2009/09/19 00:39 | by suibing ]
2009/09/19 00:39 | by suibing ]
在 php.ini 中找到
disable_functions =
这一行,在其后面添加需要禁止的危险函数名,以英文逗号分隔
disable_functions=passthru,exec,shell_exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
或者
disable_functions =exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source,dl
正式
disable_functions=passthru,exec,shell_exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
disable_functions =
这一行,在其后面添加需要禁止的危险函数名,以英文逗号分隔
disable_functions=passthru,exec,shell_exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
或者
disable_functions =exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source,dl
正式
disable_functions=passthru,exec,shell_exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
一.KVM简介
虚拟化技术已经成为未来计算机技术的一个重要的发展方向.linux在虚拟化方面已经有了很多中解决方案,
如:VMware,VirtualBox,Xen和KVM.
KVM是一个全虚拟化的解决方案.可以在x86架构的计算机上实现虚拟化功能. KVM只可在具有虚拟化支持的CPU上运行,即具有VT功能的Intel CPU和具有AMD-V功能的AMD CPU.
Xen也是Linux下的一个虚拟化解决方案,也将很快被编入内核中.Xen的实现方法是,运行支持Xen功能的
kernel,这个kernel是工作在Xen的控制之下,叫做Domain0,使用这个kernel启动机器后,你可以在这个机器上
使用qemu软件,虚拟出多个系统.Xen的缺点是,如果你需要更新Xen的版本,你需要重新编译整个内核,
而且,稍有设置不慎,系统就无法启动.
相比较,KVM就简化的多了.它不需要重新编译内核,也不需要对当前kernel做任何修改,它只是几个可以动态加载的.ko模块.
它结构更加精简,代码量更小,所以,出错的可能性更小.并且在某些方面,性能比Xen更胜一筹.
二.KVM的使用
现在以Turbolinux 11版本为基础,介绍KVM的使用方法.
在安装之前,你需要先确认,你的CPU是否支持虚拟化技术,执行:
# egrep '^flags.*(vmx|svm)' /proc/cpuinfo
如果有输出返回,则表示,你的CPU支持虚拟化技术.
1.KVM的安装
从官方网站下载KVM源码包
http://kvm.qumranet.com/ 我们使用KVM-33版本.
# tar zxf kvm-33.tar.gz
# cd kvm-33
# ./configure --prefix=/usr/local/kvm-33
# make
# make install
make install后,kvm的模块会安装到/lib/modules/$KernelVersion/extra/目录下.其他相关文件会安装
到/usr/local/kvm-33/目录下.
将kvm相关目录连接到系统目录中.
# ln -s /usr/local/kvm-33/bin/* /usr/bin/
# ln -s /usr/local/kvm-33/lib/* /usr/lib/
(若为x86_64系统,则执行: ln -s /usr/local/kvm-33/lib64/* /usr/lib64/)
# ln -s /usr/local/kvm-33/include/kvmctl.h /usr/include/
# ln -s /usr/local/kvm-33/include/linux/* /usr/include/linux/
# ln -s /usr/local/kvm-33/share/qemu /usr/share/
2.KVM的使用
a.你需要先建立一个影像文件,作为虚拟系统的硬盘.
# mkdir /images
# cd /images
# /usr/bin/qemu-img -f qcow gtes11.img 20G
b.创建网络配置脚本
# echo '/sbin/ifconfig $1 10.0.1.1 netmask 255.255.255.0’ > /etc/qemu-ifup
c.加载KVM模块
Intel CPU使用:
# modprobe kvm-intel
AMD CPU使用:
# modprobe kvm-amd
d.安装虚拟系统
# /usr/bin/qemu-i386 -m 512 -k en-us -M pc -hda /images/gtes11.img -cdrom /iso/zuma-SP3-rc3-6-\
disc1-20061031.iso -net nic,vlan=1,model=rtl8139,macaddr=00:00:00:00:99:01 -net tap,vlan=1,ifname=tap0,\
script=/etc/qemu-ifup -vnc localhost:1 -boot d
在另一个终端执行:
# vncviewer localhost:1
参数分析: 我们为虚拟系统分配512MB内存.使用gtes11.img作为它的第一块硬盘,使用Turbolinux10.5的disc1作为它的光盘, 并从光盘引导.它有一块rtl8139的网卡,MAC地址为:00:00:00:00:99:01,并把这个网卡与主机的tap0接口连接. tap0接口使用/etc/qemu-ifup脚本进行初始化.虚拟系统的输出作为一个vnc服务器,绑定在主机的localhost:1上.
注: 1.若为x86_64系统,则使用/usr/bin/qemu-system-x86_64 代替qemu-i386 2.在64位系统上,可以安装32位和64位的虚拟系统.但在32位系统上,只能安装32位的虚拟系统.
qemu参数介绍:
-hda 影像文件: 使用影像文件作为虚拟系统的第一块硬盘.同样还可以使用hdb,hdc,hdd指定第2,3,4块硬盘.
-cdrom 光盘影像文件: 使用光盘影像文件作为虚拟系统的光盘.
-boot [a|c|d|n]: 设置虚拟系统的引导顺序,a为软驱,c为硬盘,d为光驱,n为网络.
-m 内存大小: 设置虚拟系统使用的内存大小,单位为MB.
-k 语言: 设置虚拟系统键盘类型.
-net nic[,vlan=n][,macaddr=addr][,model=type]
建立一个虚拟网卡,并把它连接到VLAN的n端口上.
-net tap[,vlan=n][,fd=h][,ifname=name][,script=file]
把主机的TAP网络接口连接到VLAN的n端口上,并使用script指定的脚本进行初始化.
虚拟化技术已经成为未来计算机技术的一个重要的发展方向.linux在虚拟化方面已经有了很多中解决方案,
如:VMware,VirtualBox,Xen和KVM.
KVM是一个全虚拟化的解决方案.可以在x86架构的计算机上实现虚拟化功能. KVM只可在具有虚拟化支持的CPU上运行,即具有VT功能的Intel CPU和具有AMD-V功能的AMD CPU.
Xen也是Linux下的一个虚拟化解决方案,也将很快被编入内核中.Xen的实现方法是,运行支持Xen功能的
kernel,这个kernel是工作在Xen的控制之下,叫做Domain0,使用这个kernel启动机器后,你可以在这个机器上
使用qemu软件,虚拟出多个系统.Xen的缺点是,如果你需要更新Xen的版本,你需要重新编译整个内核,
而且,稍有设置不慎,系统就无法启动.
相比较,KVM就简化的多了.它不需要重新编译内核,也不需要对当前kernel做任何修改,它只是几个可以动态加载的.ko模块.
它结构更加精简,代码量更小,所以,出错的可能性更小.并且在某些方面,性能比Xen更胜一筹.
二.KVM的使用
现在以Turbolinux 11版本为基础,介绍KVM的使用方法.
在安装之前,你需要先确认,你的CPU是否支持虚拟化技术,执行:
# egrep '^flags.*(vmx|svm)' /proc/cpuinfo
如果有输出返回,则表示,你的CPU支持虚拟化技术.
1.KVM的安装
从官方网站下载KVM源码包
http://kvm.qumranet.com/ 我们使用KVM-33版本.
# tar zxf kvm-33.tar.gz
# cd kvm-33
# ./configure --prefix=/usr/local/kvm-33
# make
# make install
make install后,kvm的模块会安装到/lib/modules/$KernelVersion/extra/目录下.其他相关文件会安装
到/usr/local/kvm-33/目录下.
将kvm相关目录连接到系统目录中.
# ln -s /usr/local/kvm-33/bin/* /usr/bin/
# ln -s /usr/local/kvm-33/lib/* /usr/lib/
(若为x86_64系统,则执行: ln -s /usr/local/kvm-33/lib64/* /usr/lib64/)
# ln -s /usr/local/kvm-33/include/kvmctl.h /usr/include/
# ln -s /usr/local/kvm-33/include/linux/* /usr/include/linux/
# ln -s /usr/local/kvm-33/share/qemu /usr/share/
2.KVM的使用
a.你需要先建立一个影像文件,作为虚拟系统的硬盘.
# mkdir /images
# cd /images
# /usr/bin/qemu-img -f qcow gtes11.img 20G
b.创建网络配置脚本
# echo '/sbin/ifconfig $1 10.0.1.1 netmask 255.255.255.0’ > /etc/qemu-ifup
c.加载KVM模块
Intel CPU使用:
# modprobe kvm-intel
AMD CPU使用:
# modprobe kvm-amd
d.安装虚拟系统
# /usr/bin/qemu-i386 -m 512 -k en-us -M pc -hda /images/gtes11.img -cdrom /iso/zuma-SP3-rc3-6-\
disc1-20061031.iso -net nic,vlan=1,model=rtl8139,macaddr=00:00:00:00:99:01 -net tap,vlan=1,ifname=tap0,\
script=/etc/qemu-ifup -vnc localhost:1 -boot d
在另一个终端执行:
# vncviewer localhost:1
参数分析: 我们为虚拟系统分配512MB内存.使用gtes11.img作为它的第一块硬盘,使用Turbolinux10.5的disc1作为它的光盘, 并从光盘引导.它有一块rtl8139的网卡,MAC地址为:00:00:00:00:99:01,并把这个网卡与主机的tap0接口连接. tap0接口使用/etc/qemu-ifup脚本进行初始化.虚拟系统的输出作为一个vnc服务器,绑定在主机的localhost:1上.
注: 1.若为x86_64系统,则使用/usr/bin/qemu-system-x86_64 代替qemu-i386 2.在64位系统上,可以安装32位和64位的虚拟系统.但在32位系统上,只能安装32位的虚拟系统.
qemu参数介绍:
-hda 影像文件: 使用影像文件作为虚拟系统的第一块硬盘.同样还可以使用hdb,hdc,hdd指定第2,3,4块硬盘.
-cdrom 光盘影像文件: 使用光盘影像文件作为虚拟系统的光盘.
-boot [a|c|d|n]: 设置虚拟系统的引导顺序,a为软驱,c为硬盘,d为光驱,n为网络.
-m 内存大小: 设置虚拟系统使用的内存大小,单位为MB.
-k 语言: 设置虚拟系统键盘类型.
-net nic[,vlan=n][,macaddr=addr][,model=type]
建立一个虚拟网卡,并把它连接到VLAN的n端口上.
-net tap[,vlan=n][,fd=h][,ifname=name][,script=file]
把主机的TAP网络接口连接到VLAN的n端口上,并使用script指定的脚本进行初始化.
安装linux内核虚拟机kvm
[
2009/09/18 15:57 | by suibing ]
2009/09/18 15:57 | by suibing ]
准备:
首先检查下你的cpu是否支持intel的VT虚拟化,或者amd的SVM 虚拟化技术
cat /proc/cupinfo 如果在flags现有显示vt 或者svm.下面的步骤就没有继续下去的意义了,否则就是浪费时间
Intel VT AMD’s AMD-V
1,准备你的系统里必须有以下这些包
gcc-3.4 libsdl1.2-dev zlib1g-dev libasound2-dev linux-kernel-headers pkg-config libgnutls-dev(这事debian的包机制,只供其他的发行版参考)
2,切换gcc版本(如果你的gcc版本已经是gcc3.x 就没有必要继续了)
cd /usr/bin
sudo mv gcc gcc.bak
sudo ln -s gcc-3.4 gcc
3.下载kvm-realease.tar.gz包
wget http://nchc.dl.sourceforge.net/sourceforge/kvm/kvm-59.tar.gz
4,安装
tar xzf kvm-59.tar.gz
cd kvm-release
./configure --prefix=/usr/local/kvm
make
sudo make install
sudo /sbin/modprobe kvm-amd
安装成功
下面用kvm 安装windowsxp
1,下深度精简的windowxp
wget http://1.97sky.cn/addssdeee/deepinxp-5.8.rar
2,创建一个虚拟硬盘
/usr/local/kvm/bin/qemu-img create -f raw windows.img 10G
(放心这个硬盘是动态增长的,文件只有10m)
3,sudo /usr/local/kvm/bin/qemu-system-x86_64 -hda windows.img -cdrom windosxp.iso \
-boot d -m 384 -no-apci
4,运行
sudo /usr/local/kvm/bin/qemu-system-x86_64 vdisk.img -m 384 -no-acpi
PS:kvm对windows的acpi 支持有点问题,如果没哟-no-acpi选项的话安装和运行会变得非常慢
如何在安装成功后,关闭windows的acpi看这里 Windows ACPI Workaround
下面要做的事:
1,把gcc 改为原来的版本
cd /usr/bin
sudo unlink gcc
sudo mv gcc.bak gcc
2,给
/usr/local/kvm/bin/qemu-system-x86_64 /usr/local/kvm/bin/qemu-img 在/usr/bin创建链接,让它们可以直接执行
cd /usr/bin
sudo ln -sf /usr/local/kvm/bin/qemu-system-x86_64 qemu
sudo ln -sf /usr/local/kvm/bin/qemu-img qemu-img
后记:
kvm的性能很好,默认安装上就已经可以联网了,只是声音的支持有点问题,不过这没有什么,kvm的cpu占用率和内存占用率都非常低.
开了三个虚拟的终端,正在安装xp,左下角是conky 查看资源占用率用的




" target="_blank">[/url]
下面的图是virtualbox开xp时的资源占用率
[url=http://hiphotos.baidu.com/waittingafish/pic/item/7fb5873073ec2497a8018e01.jpg]

参考文章:
http://kvm.qumranet.com/kvmwiki/HOWTO
首先检查下你的cpu是否支持intel的VT虚拟化,或者amd的SVM 虚拟化技术
cat /proc/cupinfo 如果在flags现有显示vt 或者svm.下面的步骤就没有继续下去的意义了,否则就是浪费时间
Intel VT AMD’s AMD-V
1,准备你的系统里必须有以下这些包
gcc-3.4 libsdl1.2-dev zlib1g-dev libasound2-dev linux-kernel-headers pkg-config libgnutls-dev(这事debian的包机制,只供其他的发行版参考)
2,切换gcc版本(如果你的gcc版本已经是gcc3.x 就没有必要继续了)
cd /usr/bin
sudo mv gcc gcc.bak
sudo ln -s gcc-3.4 gcc
3.下载kvm-realease.tar.gz包
wget http://nchc.dl.sourceforge.net/sourceforge/kvm/kvm-59.tar.gz
4,安装
tar xzf kvm-59.tar.gz
cd kvm-release
./configure --prefix=/usr/local/kvm
make
sudo make install
sudo /sbin/modprobe kvm-amd
安装成功
下面用kvm 安装windowsxp
1,下深度精简的windowxp
wget http://1.97sky.cn/addssdeee/deepinxp-5.8.rar
2,创建一个虚拟硬盘
/usr/local/kvm/bin/qemu-img create -f raw windows.img 10G
(放心这个硬盘是动态增长的,文件只有10m)
3,sudo /usr/local/kvm/bin/qemu-system-x86_64 -hda windows.img -cdrom windosxp.iso \
-boot d -m 384 -no-apci
4,运行
sudo /usr/local/kvm/bin/qemu-system-x86_64 vdisk.img -m 384 -no-acpi
PS:kvm对windows的acpi 支持有点问题,如果没哟-no-acpi选项的话安装和运行会变得非常慢
如何在安装成功后,关闭windows的acpi看这里 Windows ACPI Workaround
下面要做的事:
1,把gcc 改为原来的版本
cd /usr/bin
sudo unlink gcc
sudo mv gcc.bak gcc
2,给
/usr/local/kvm/bin/qemu-system-x86_64 /usr/local/kvm/bin/qemu-img 在/usr/bin创建链接,让它们可以直接执行
cd /usr/bin
sudo ln -sf /usr/local/kvm/bin/qemu-system-x86_64 qemu
sudo ln -sf /usr/local/kvm/bin/qemu-img qemu-img
后记:
kvm的性能很好,默认安装上就已经可以联网了,只是声音的支持有点问题,不过这没有什么,kvm的cpu占用率和内存占用率都非常低.
开了三个虚拟的终端,正在安装xp,左下角是conky 查看资源占用率用的




" target="_blank">[/url]
下面的图是virtualbox开xp时的资源占用率
[url=http://hiphotos.baidu.com/waittingafish/pic/item/7fb5873073ec2497a8018e01.jpg]

参考文章:
http://kvm.qumranet.com/kvmwiki/HOWTO





