存档

‘Virtualization’ 分类的存档

KVM&OpenVZ虚拟化和使用Proxmox VE进行云计算

2009年10月15日 3 条评论

版本 1.0

原作者: Falko Timme <ft [at] falkotimme [dot] com>

翻译者:Topkey<www.txtbar.cn>

原文地址: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键:

1

接受Proxmox的证书许可(GPL)

2

选择你想安装Proxmox的硬盘。在这里需要注意的是被选择的硬盘上所有已经存在的分区和数据都将会丢失!

3

选择你的国家,时区,和键盘布局:

4

输入一个密码(这是一个可以使你登陆shell和Proxmox Web管理界面的root密码)和你的Email地址:

5

现在我们就进入到了网络配置的阶段。输入主机名(例如server1.example.com),IP地址(例如192.168.0.100),子网掩码(例如255.255.255.0),网关(例如192.168.0.1),和域名服务器(例如145.253.2.75):

6

然后,Proxmox就会被安装到计算机上了,安装过程将会使用LVM自动分区你的硬盘-这就是为什么在安装的过程中没有出现分区的对话框的原因。Proxmox使用LVM是因为它可以允许为虚拟机创建snapshot backups

9

最后重启系统:

11

在server1主机重启过后,你就可以在浏览器中输入并打开http://192.168.0.100/-浏览器将会重新指向https://192.168.0.100/

如果你使用的是Firefox 3在使用HTTPS时,Firefox会抱怨说没有self-signed certificate,因此你必须告诉Firefox接受这个证书-点击Or you can add exception…链接即可:

12

点击Add Exception…:

13

这时添加Security Exception的窗口就会打开,在这个窗口中,先点击Get Certificate按钮,然后Confirm Security Exception按钮:

14

然后,你就会看到Proxmox的登陆框,输入root用户名和你在安装Proxmox时候创建的密码:

15

下面就是Proxmox控制面板的界面:

16

3 通过添加一个Slave(server2.example.com)创建一个集群(可选择阅读)

(如果你想在一台主机上运行Proxmox的话,便可跳过本章节)

你可以通过把一个或者是多个Slave服务器添加到Proxmox master(server1.example.com)中来创建一个群集或者云计算。这样的集群允许你通过Proxmox的控制面板在远程主机上创建和管理虚拟机。你甚至可以把一个运行的虚拟机从一个主机中镜像到另一个上去。

下面我将为你展示怎样添加第二个主机,server2.example.com,并创建一个群集。

首先在server2.example.com上也安装Proxmox,安装过程和在server1上类似.当你进入网络设置部分时,设置主机名为server2.example.com,并且输入一个和master主机不同的IP地址(例如192.168.0.101) :

17

安装并重启系统以后,通过终端工具登陆(类似PuTTY)server1和server2

在server1上,运行下列命令:

server1:

pveca -c

server1:~# pveca -c
Generating public/private rsa key pair.
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ce:bf:a2:cd:69:23:e4:78:fc:05:db:fc:55:ef:52:1d root@server1
cluster master successfully created
server1:~#

然后检查下集群的状态:

server1:

pveca -l

server1:~# pveca -l
CID—-IPADDRESS—-ROLE-STATE——–UPTIME—LOAD—-MEM—ROOT—DATA
1 : 192.168.0.100   M     A           00:14   0.00     5%     1%     0%
server1:~#

在server2上,输入:

server2:

pveca -a -h 192.168.0.100

server2:~# pveca -a -h 192.168.0.100
Generating public/private rsa key pair.
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ea:ad:21:fc:5d:9b:af:ab:fb:0d:72:72:c7:94:23:ca root@server2
The authenticity of host ’192.168.0.100 (192.168.0.100)’ can’t be established.
RSA key fingerprint is 7c:17:8c:35:9c:be:60:6b:56:97:2a:0b:72:60:57:09.
Are you sure you want to continue connecting (yes/no)? <– yes
Warning: Permanently added ’192.168.0.100′ (RSA) to the list of known hosts.
root@192.168.0.100′s password: <– root password of server1.example.com
cluster node successfully created
server2:~#

就是这样,你已经创建了一个集群。你可以检查下正在运行的主机:、

server2:

pveca -l

应该在输出结果中显示两个主机的信息:

server2:~# pveca -l
CID—-IPADDRESS—-ROLE-STATE——–UPTIME—LOAD—-MEM—ROOT—DATA
1 : 192.168.0.100   M     S           00:15   0.00     5%     1%     0%
2 : 192.168.0.101   N     S           00:04   0.08    15%     1%     0%
server2:~#

现在我们回到Proxmox的控制面http://192.168.0.100/(server2.example.com不需要控制面板!)并查看群集,在这里将会显示两台服务器:

18

4 添加设备模板

在我们创建OpenVZ容器之前,我们至少要在我们的系统当中添加一个操作系统模板(对于KVM客户机来说,你不单可以添加ISO文件,也可以直接从OS CD或者DVD来安装)。

点击Appliance Template。你将会发现两个选项,LocalDownload:

19

在Download里,你将会看到一个Proxmox项目提供的templates列表,你可以直接下载这些系统。

20

… – 理论上讲-这些系统的链接太老了,已经不再适合我们了:

22

这就是为什么我们必须使用Local选项,你可以去http://download.proxmox.com/appliances/然后去访问admin, mail, system, 或者www 文件夹

23

…下载你需要的templates到你的本地硬盘里:

24

Local选项里,你可以把templates上传到Proxmox master主机上:

25

你同时也可以上传ISO镜像创建KVM的客户机,想要删除一个Template或者是ISO文件的话,只需要点击其前面的红色图标,选择Delete按钮:

26

5创建OpenVZ容器

要创建OpenVZ容器,需要到Virtual Machines > Create...

27

… 填写这些表格。选择容器(OpenVZ)和你想使用的template。指定一个主机名(例如 vm1.example.com),内存和SWAP的大小,设置一个root密码,选择Virtual Network(venet)并为容器指定一个IP地址(例如 192.168.0.102),填写一个VM1D,选择一个集群节点(如果你不创建一个集群的话(参考第三章),你仅仅选择了master,而没有远程的主机。)确定容器是否需要在主机启动的时候自动启动,并填写一到两个DNS服务器(例如 145.253.2.75 和213.191.92.86).然后点击create:

28

这个容器就会被创建了…

29

… 这样的话这个容器就会被列在List选项下。这个容器是停止的;要启动它,点击这个容器:

30

这时就会打开你可以控制这个容器的地方,要启动容器,只需点击Start按钮即可:

31

你应该能看到Open VNC console这个链接,如果你点击它…

32

…一个基于浏览器的终端界面就会弹出来,通过它你可以控制虚拟机(这对于desktop的机器特别有用;如果这个虚拟机是台服务器,你也可以通过SSH连接它(例如PuTTY)).

33

6 在集群的远程系统中创建虚拟机

如果你创建了一个集群(参考第三章),你也可以在远程的系统当中创建属于这个集群的虚拟机-只需在你创建虚拟机的时候选择集群节点下的远程节点即可(截屏显示的是在OpenVZ下,然而,这对于KVM虚拟机也同样有效,只要这个节点支持硬件虚拟化)

34

这时List选项应该就显示运行在不同节点上的虚拟机了:

35

7 创建KVM客户机

如果你的CPU支持硬件虚拟化(Intel VT或 AMD-V),你除了可以创建OpenVZ containers,还可以创建KVM guests。只需要在Type下拉菜单中选择Fully virtualized (KVM),并且在Installation Media下拉菜单中选择cdrom device或者你上传的一个ISO镜像。在这里不需要对网络进行设置,KVM虚拟机将会自动完成这些设置。另外需要你确信你选择了正确的Guest Type(Linux 2.6、Windows XP等等):

36

随后KVM客户机就应该在List选项下显示了,新的虚拟机总是停止的。点击它…

37

…要打开管理页面只需点击Start按钮即可(如果你选择的是从CD-ROM安装客户机,在你点击Start按钮前,把操作系统CD和DVD插入到你的系统光驱中。

38

然后点击Open VNC console链接…

39

…这时就可以连接到guest的图形终端;你就可以像在真实机器上一样安装操作系统了:

40

7.1 安装 Windows XP

KVM同样允许你安装Windows 客户机。在Installation Media 下拉菜单中选择cdrom device,并且在Guest下拉菜单中选择Windows XP:

41

在系统光驱中插入Windows XP光盘,启动guest,并且连接到它的图形终端。你现在就可以在随着Windows安装引导安装一个Windows XP虚拟机:

42

43

44

8 Live Migration

如果你已经设置了一个Proxmox 集群(参见第三章),你就可以把正在运行的虚拟机从一个节点镜像到另外一个节点上。只需要点击Virtual Machines > Migrate,选择guest,source,target节点,选取Online migration并点击镜像:

45

这时guest镜像就会自动运行:

46

然后,List页面就会显示被镜像的虚拟机就会运行在其他的节点上:

47

9 备份

使用Proxmox VE,你可以创建一个cron任务来备份你的虚拟机。在你创建备份前,我们需要建立一个备份文件夹,例如/backup.进入server1的命令行并运行:

server1:

mkdir /backup

在Proxmox的控制面板中,打开Backup页面,并点击Backup Jobs前的红色图标,然后选择创建一个新的job:

49

选择你想要备份的cluster node和virtual machines。指定/backup为目标文件夹,并选择你想创建备份的日期。在Mode下,你可以选择snapshot(LVM snapshot ,没有中断),supend(当备份被创建时虚拟机将会在一段时间内挂起)和stop(虚拟机完全停止)。在这里我推荐使用snapshot,尤其在你不能接受任何中断的情况下:

50

然后,你就会在Backup页面看到backup cron 任务:

51

10 链接

在Debian Lenny系统中安装和使用OpenVZ(基于AMD64平台)

2009年10月15日 没有评论

版本: 1.0

源地址:http://www.howtoforge.com/installing-and-using-openvz-on-debian-lenny-amd64

原作者: Falko Timme <ft [at] falkotimme [dot] com>

翻译者: Topkey <www.txtbar.cn>

最后编辑时间:02/04/2009

使用说明:蓝色字体为链接、红色字体为shell中的命令、棕色字体为文件中的内容或者是屏幕中显示的字符、灰色字体为正文

在这篇教程中我将会为大家讲解如何在Debian Lenny服务器上安装OpenVZ。使用OpenVZ你可以在同一个硬件环境中创建多个虚拟化专用服务器(VPS),其作用类似于Xen和Linux Vserver项目.OpenVZ是Virtuozzo旗下的一款开源品牌,提供一个商业的虚拟化解决方案.已经被许多提供虚拟化服务器的提供商使用。OpenVZ内核是遵循GPL授权许可,并且其用户化工具遵循QPL许可。

这篇教程是一篇实用教程,它不包括相关的理论背景,如需了解相关理论背景请查询网络其他的文档。

这篇文档不附带任何形式的保证,我想要说的是这不仅仅是设置此类系统的唯一方法,还有很多达到这个目的的方法,但是我使用的是教程中的方法,我使用此方法,没有任何问题。

1前言

我在这里使用的是一个X86_64(amd64平台下)的系统,如果你是在i386平台,在一些命令的使用上或许有些不同,我将会在不同点特别注别。

2.安装OpenVZ

OpenVZ的内核、vzctl和vzquota包在Debian Lenny库中,我们要使用下列命令安装他们:

apt-get install linux-image-openvz-amd64 vzctl vzquota

(如果你是用的是i386的系统,内核包的名字是linux-image-openvz-686)

创建一个提供后台兼容的符号链接从/var/lib/vz 到 /vz。

ln -s /var/lib/vz /vz

打开/etc/sysctl.conf文件并且确保使用下面的设置:

vi /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

如果你要修改/etc/sysctl.conf文件运行下列命令:

sysctl –p

然后,

Ps:如果你的虚拟机的ip地址是一个不同子网的主机ip地址的话下一步就显得很重要了。如果你不这样做的话,虚拟机的网络可能不会正常工作。

打开/etc/vz/vz.conf文件并设置NEIGHBOUR_DEVS 参数值为 all:

vi /etc/vz/vz.conf


# Controls which interfaces to send ARP requests and modify APR tables on.

NEIGHBOUR_DEVS=all

在这个环境中,我同时也想安装vzdump和vzprocps包,这两个包并不存在Debian lenny库中。但是我们可以从http://download.openvz.org/debian-systs的网站里的Etch库中下载.(他们曾经也提供Lenny库,但是最近已经被删除了)因此打开/etc/apt/sources.list文件…

vi /etc/apt/sources.list

在这个文件中添加下面的语句:

deb http://download.openvz.org/debian-systs etch openvz

当然我们想从Etch 库中安装文件时不把我们的系统搞糟。我们设置系统只有在在Lenny库中没有适当的软件时,我们才使用Etch库。如果在一个包同时存在在Lenny和Etch版本中时,系统优先在Lenny中安装它。要做到这一点,我们可以在/etc/apt/preferences中可以设置给Lenny更高的权限:

vi /etc/apt/preferences

Package: *

Pin: release a=lenny

Pin-Priority: 700

Package: *

Pin: release a=etch

Pin-Priority: 650

然后我们打开/etc/apt/apt.conf文件…

vi /etc/apt/apt.conf

在这个文件中添加下面两行:

APT::Default-Release “stable”;
APT::Cache-Limit “100000000″;

运行下列命令

wget -q http://download.openvz.org/debian-systs/dso_archiv_signing_key.asc -O- | apt-key add – && apt-get update

然后下载库中的关键部分和更新软件包数据库.

然后运行

apt-get install vzdump vzprocps

来安装vzdump和vzprocps.

最后,重启系统:

Reboot

如果系统重启正常,说明安装顺利!

运行命令

uname –r

现在系统将会显示新的OpenVZ的内核:

server1:~# uname -r
2.6.26-1-openvz-amd64
server1:~#

3使用 OpenVZ

在我们使用OpenVZ创建虚拟机之前,我们需要在/var/lib/vz/template/cache文件夹下注意模板的范围,在即将使用的虚拟机里。我们可以通过模板来创建虚拟机。

运行命令

apt-cache search openvz

在输出的结果中你会看到一些Debian的模板。例如:

vzctl-ostmpl-debian-4.0-amd64-minimal – OpenVZ – OS Template debian-4.0-amd64-minimal
vzctl-ostmpl-debian-4.0-i386-minimal – OpenVZ – OS Template debian-4.0-i386-minimal
vzctl-ostmpl-debian-5.0-amd64-minimal – OpenVZ – OS Template debian-5.0-amd64-minimal
vzctl-ostmpl-debian-5.0-i386-minimal – OpenVZ – OS Template debian-5.0-i386-minimal

可以使用下面命令来安装你需要安装系统的模板(ps:amd64平台下的模板不可以在i386主机上使用):

apt-get install vzctl-ostmpl-debian-5.0-amd64-minimal vzctl-ostmpl-debian-4.0-amd64-minimal

你可以使用这些模板的其中一个,你同时也可以在http://wiki.openvz.org/Download/template/precreated找到一个模板的列表.例如,我们不通过apt命令安装vzctl-ostmpl-debian-5.0-amd64-minimal模板。而是使用下列命令下载:

cd /var/lib/vz/template/cache
wget http://download.openvz.org/template/precreated/contrib/debian-5.0-amd64-minimal.tar.gz

(ps:如果你的主机是i386系统,你不能使用amd64的模板-你必须使用i386的模板)

下面,我将会为大家来展示使用OpenVZ的最基本的命令.

假使我们想试用vzctl-ostmpl-debian-5.0-amd64-minimal模板来设置一个虚拟机(ps:你可以在/var/lib/vz/template/cache文件里找到它),运行下列命令:

vzctl create 101 –ostemplate debian-5.0-amd64-minimal –config vps.basic

在这里101必须是一个唯一的ID-每一个虚拟机虚拟拥有独一无二的ID。你可以使用虚拟机ip地址的最后一部分,例如,如果虚拟机ip地址是192.168.0.101,你可以使用101作为虚拟机的ID.

如果你想在系统启动时打开vm,运行下列命令

vzctl set 101 –onboot yes –save

使用下列命令可以设置为虚拟机设置主机名和ip地址:

vzctl set 101 –hostname test.example.com –save
vzctl set 101 –ipadd 192.168.0.101 –save

下面,我们设置接口的数量为120,然后为虚拟机委派几个域名服务器:

vzctl set 101 –numothersock 120 –save
vzctl set 101 –nameserver 145.253.2.75 –nameserver 213.191.92.86 –save

(ps:如果想不是用vzctl命令,你也可以在/etc/vz/conf文件家里直接编辑虚拟机的配置文件)。如果虚拟机的ID是101,其配置文件的位置在etc/vz/conf/101.conf.)

使用下列命令可以启动虚拟机

vzctl start 101

使用下列命令可以为虚拟机设置一个root密码

vzctl exec 101 passwd

使用下列命令可以通过ssh连接到虚拟机(类似于PUTTY):

vzctl enter 101

想要离开虚拟机的终端,直接输入

Exit

停止虚拟机,运行

vzctl stop 101

启动虚拟机,运行

vzctl restart 101

从硬盘里删除虚拟机(ps:在删除之前需要停止虚拟机),运行

vzctl destroy 101

可以通过下列命令查看所有虚拟机的列表和其当前的状态

vzlist –a

server1:~# vzlist -a
VEID      NPROC STATUS  IP_ADDR         HOSTNAME
101          8 running 192.168.0.101   test.example.com
server1:~#

使用下列命令查看分配给虚拟机的资源

vzctl exec 101 cat /proc/user_beancounters

server1:~# vzctl exec 101 cat /proc/user_beancounters
Version: 2.5
uid  resource           held    maxheld    barrier      limit    failcnt
101:  kmemsize         500737     517142   11055923   11377049          0
lockedpages           0          0        256        256          0
privvmpages        2315       2337      65536      69632          0
shmpages            640        640      21504      21504          0
dummy                 0          0          0          0          0
numproc               7          7        240        240          0
physpages          1258       1289          0 2147483647          0
vmguarpages           0          0      33792 2147483647          0
oomguarpages       1258       1289      26112 2147483647          0
numtcpsock            2          2        360        360          0
numflock              1          1        188        206          0
numpty                1          1         16         16          0
numsiginfo            0          1        256        256          0
tcpsndbuf         17856      17856    1720320    2703360          0
tcprcvbuf         32768      32768    1720320    2703360          0
othersockbuf       2232       2928    1126080    2097152          0
dgramrcvbuf           0          0     262144     262144          0
numothersock          1          3        120        120          0
dcachesize            0          0    3409920    3624960          0
numfile             189        189       9312       9312          0
dummy                 0          0          0          0          0
dummy                 0          0          0          0          0
dummy                 0          0          0          0          0
numiptent            10         10        128        128          0
server1:~#

failcnt这一列非常重要,它通常是显示为0。如果不是0的话,这就意味着,当前的虚拟机需要更多的系统资源。打开位于/etc/vz/conf目录下的配置文件,然后适当的增加资源,最后重启虚拟机。

查询更多关于vzctl命令,运行

man vzctl

4.相关链接

在CentOS5.2服务器上使用KVM进行虚拟化应用

2009年10月15日 没有评论

版本 1.0

原作者: Falko Timme <ft [at] falkotimme [dot] com>

文章源地址:http://www.howtoforge.com/virtualization-with-kvm-on-a-centos-5.2-server

最后编辑 03/24/2009

翻译者:Topkey  http://www.unixbar.net

翻译日期 08/18/2009

使用说明:蓝色字体为链接、红色字体为shell中的命令、棕色字体为文件中的内容或者是屏幕中显示的字符、灰色字体为正文

这篇教程将会为你详细描述怎样在一台CentOS5.2服务器上安装和使用KVM,来创建和运行虚拟机,我不仅教大家怎样创建image-based虚拟机,同样也教大家创建一台LVM的虚拟机.KVM是Kernel-based Virtual Machine的缩写,使用的是硬件虚拟化的技术,换言之,你的CPU需要支持硬件虚拟化,例如Intel VT 或者AMD-V技术.

我不保证你参考这篇教程完全能使你正常工作!

1 前言

我使用的一台主机名为server1.example.com和ip地址是192.168.0.100的CentOS5.2服务器作为我的KVM主机。

在这里我也需要一个安装有virt-manager的客户端系统,可以使我们能够连接到虚拟机的图形终端。我在这里使用的是Ubuntu 8.10桌面版。

2安装 KVM

CentOS 5.2 KVM主机:

运行

system-config-securitylevel

并且开启SELinux(如果你的SELinux被禁用,virt-install将不会正常工作)。

然后检查CPU是否支持硬件虚拟化-运行命令

egrep ‘(vmx|svm)’ –color=always /proc/cpuinfo

应该会显示如下信息:

[root@server1 ~]# egrep ’(vmx|svm)’ –color=always /proc/cpuinfo
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall
nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall
nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
[root@server1 ~]#

如果什么也没有显示的话,就说明你的处理器不支持硬件虚拟化技术,下面的内容就不适合你了。

下面我们为软件包导入GPG key

rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY*

然后安装KVM和virtinst(一个创建虚拟机的工具),我们运行

yum install kvm kmod-kvm qemu libvirt python-virtinst

然后重新启动系统:

reboot

启动过后, KVM的内核模块将会被加载:

lsmod | grep kvm

[root@server1 ~]# lsmod | grep kvm
kvm_amd                50452  0
kvm                   109264  1 kvm_amd
[root@server1 ~]#

(这个输出结果是一台拥有AMD-V处理器的系统,如果你的电脑使用的是Intel VT的CPU,将会显示类似kvm_intel字符)

使用下列命令检查KVM是否成功安装

virsh -c qemu:///system list

将会显示如下结果:

[root@server1 ~]# virsh -c qemu:///system list
Id Name                 State
———————————-

[root@server1 ~]#

如果在这里显示的是一个错误的信息,说明有些东西出现了问题。

下面我们需要在我们的服务器上设置一个网桥,就可以使我们的虚拟机从其他主机中读取数据。

要做到这一点,我们安装bridge-utils工具。。。。。。

yum install bridge-utils

… 并且配置一个网桥从/etc/sysconfig/network-scripts/ifcfg-eth0参考BOOTPROTO, BROADCAST, IPADDR, NETMASK和NETWORK等值来创建文件/etc/sysconfig/network-scripts/ifcfg-br0 :

vi /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0

TYPE=Bridge

BOOTPROTO=static

BROADCAST=192.168.0.255

IPADDR=192.168.0.100

NETMASK=255.255.255.0

NETWORK=192.168.0.0

ONBOOT=yes

修改/etc/sysconfig/network-scripts/ifcfg-eth0 as follows (取消注释BOOTPROTOBROADCASTIPADDRNETMASK, 和NETWORK 最后添加 BRIDGE=br0):

vi /etc/sysconfig/network-scripts/ifcfg-eth0

# Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+

DEVICE=eth0

#BOOTPROTO=static

#BROADCAST=192.168.0.255

HWADDR=00:10:A7:05:AF:EB

#IPADDR=192.168.0.100

#NETMASK=255.255.255.0

#NETWORK=192.168.0.0

ONBOOT=yes

BRIDGE=br0

重新启动网络…

/etc/init.d/network restart

… 运行

ifconfig

现在应该显示网桥(br0):

[root@server1 ~]# ifconfig
br0       Link encap:Ethernet  HWaddr 00:10:A7:05:AF:EB
inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0
inet6 addr: fe80::210:a7ff:fe05:afeb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:17 errors:0 dropped:0 overruns:0 frame:0
TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1160 (1.1 KiB)  TX bytes:14875 (14.5 KiB)

eth0      Link encap:Ethernet  HWaddr 00:10:A7:05:AF:EB
inet6 addr: fe80::210:a7ff:fe05:afeb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:13662 errors:7 dropped:160 overruns:4 frame:0
TX packets:11646 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:15144608 (14.4 MiB)  TX bytes:1379942 (1.3 MiB)
Interrupt:74 Base address:0xcc00

lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:38 errors:0 dropped:0 overruns:0 frame:0
TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4308 (4.2 KiB)  TX bytes:4308 (4.2 KiB)

virbr0    Link encap:Ethernet  HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b)  TX bytes:9987 (9.7 KiB)

[root@server1 ~]#

3 在你的Ubuntu 8.10 Desktop上安装virt-viewer 或者virt-manager

Ubuntu 8.10 Desktop:

在这里我们需要一个连接我们客户机图形终端的一个工具-我们可以使用virt-manager来做到这一点(请参考KVM Guest Management With Virt-Manager On Ubuntu 8.10)。我在这里假设我使用的是Ubuntu 8.10 Desktop。

运行

sudo aptitude install virt-manager

来安装virt-manager.

(如果你是用的是Fedora 10 desktop,你可以使用下列命令安装virt-manager:

先成为root。。。

su

… 然后运行

yum install virt-manager

4 创建Debian Lenny客户机(Image-Based)

CentOs 5.2 KVM 主机:

现在让我们回到我们的CentOS 5.2 KVM 主机:

先参考一下

man virt-install

来学习如何使用virt-install.

我们使用bridging模式创建一个名字为vm10,512内存,2个虚拟CPU,磁盘镜像为~/vm10.gcow2(有12G大小)Debian Lenny客户机,并且插入Debian Lenny Netinstall CD到光驱,运行

virt-install –connect qemu:///system -n vm10 -r 512 –vcpus=2 -f ~/vm10.qcow2 -s 12 -c /dev/cdrom –vnc –noautoconsole –os-type linux –os-variant generic26 –accelerate –network=bridge:br0 –hvm

(virt-install 的man文件显示了–os-type 和–os-variant合法的值。CentOS 5。2中附带的virt-install的版本不能识别Debian Lenny,所以我们使用generic26来代替–os-variant.)

当然,你也可以常见一个Debian Lenny Netinstall CD的ISO镜像。。。

dd if=/dev/cdrom of=~/debian-500-amd64-netinst.iso

。。。通过virt-install命令使用ISO镜像:

virt-install –connect qemu:///system -n vm10 -r 512 –vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso –vnc –noautoconsole –os-type linux –os-variant generic26 –accelerate –network=bridge:br0 –hvm

输出结果如下所示:

[root@server1 ~]# virt-install –connect qemu:///system -n vm10 -r 512 –vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso –vnc –noautoconsole –os-type linux –os-variant generic26 –accelerate –network=bridge:br0 –hvm

Starting install…
Creating storage file…  100% |=========================|  12 GB    00:00
Creating domain…                                                 0 B 00:00
Domain installation still in progress.  You can reconnect to
the console to complete the installation process.
[root@server1 ~]#

5 连接到客户机

Ubuntu 8.10 Desktop:

KVM客户机将会从Debian Lenny Netinstall CD启动并且启动Debian installer-这就是我们必须连接到客户机图形终端的原因。你可以通过在Ubuntu 8.10 desktop使用virt-manager来做到这一点。

运行

sudo virt-manager

在Ubuntu desktop 上启动virt-manager.

(如果你是Fedora 10 desktop,运行:

su virt-manager

)

在virt-manager,连接到KVM主机:

1

输入KVM主机的root密码:

2

输入完以后,你就会看到vm10这个主机正在运行了,标注客户机并且点击Open按钮来打开客户机的图形终端:

3

再次输入KVM主机的root密码:

4

你现在就可以连接到客户机的图形终端了。并且能看到Debian installer:

5

现在你既可以像在物理系统中安装Debian一样正常安装Debian了。请注意在安装结束后,Debian客户机需要重启。客户机将会停掉,所以你需要再次重启它。可以使用virt-manager也可以使用我们的CentOS 5.2主机上的命令:

CentOS 5.2 KVM 主机:

virsh –connect qemu:///system

start vm10

quit

然后,你就可以使用virt-manager连接到客户机并且配置它。如果你在客户机中安装了OpenSSH(openssh-server包),你可以通过SSH客户端连接它(类似 PuTTY)。

6 管理KVM客户机

CentOS 5.2 KVM 主机:

可以通过 virsh命令管理KVM客户机,”virtual shell”。连接到virtual shell,运行

virsh –connect qemu:///system

下面就是virtual shell的显示界面:

[root@server1 ~]# virsh –connect qemu:///system
Welcome to virsh, the virtualization interactive terminal.

Type:  ’help’ for help with commands
‘quit’ to quit

virsh #

现在你可以在virtual shell中输入命令来管理你的客户机,运行:

help

获得更多的命令:

virsh # help
Commands:

help            print help
attach-device   attach device from an XML file
attach-disk     attach disk device
attach-interface attach network interface
autostart       autostart a domain
capabilities    capabilities
connect         (re)connect to hypervisor
console         connect to the guest console
create          create a domain from an XML file
start           start a (previously defined) inactive domain
destroy         destroy a domain
detach-device   detach device from an XML file
detach-disk     detach disk device
detach-interface detach network interface
define          define (but don’t start) a domain from an XML file
domid           convert a domain name or UUID to domain id
domuuid         convert a domain name or id to domain UUID
dominfo         domain information
domname         convert a domain id or UUID to domain name
domstate        domain state
domblkstat      get device block stats for a domain
domifstat       get network interface stats for a domain
dumpxml         domain information in XML
freecell        NUMA free memory
hostname        print the hypervisor hostname
list            list domains
migrate         migrate domain to another host
net-autostart   autostart a network
net-create      create a network from an XML file
net-define      define (but don’t start) a network from an XML file
net-destroy     destroy a network
net-dumpxml     network information in XML
net-list        list networks
net-name        convert a network UUID to network name
net-start       start a (previously defined) inactive network
net-undefine    undefine an inactive network
net-uuid        convert a network name to network UUID
nodeinfo        node information
quit            quit this interactive terminal
reboot          reboot a domain
restore         restore a domain from a saved state in a file
resume          resume a domain
save            save a domain state to a file
schedinfo       show/set scheduler parameters
dump            dump the core of a domain to a file for analysis
shutdown        gracefully shutdown a domain
setmem          change memory allocation
setmaxmem       change maximum memory limit
setvcpus        change number of virtual CPUs
suspend         suspend a domain
ttyconsole      tty console
undefine        undefine an inactive domain
uri             print the hypervisor canonical URI
vcpuinfo        domain vcpu information
vcpupin         control domain vcpu affinity
version         show version
vncdisplay      vnc display

virsh #

list

显示所有正在运行的客户机;

list –all

显示所有客户机,正在运行的和没有运行的:

virsh # list –all
Id Name                 State
———————————-
2 vm10                 running

virsh #

如果你修改了一个客户机的xml文件(位于/etc/libvirt/qemu/ 目录),你必须重新定义客户机:

define /etc/libvirt/qemu/vm10.xml

请注意,无论你何时在/etc/libvirt/qemu/ 中修改了客户机的XML文件,你必须重新运行define 命令!

启动和停止客户机,运行:

start vm10

停止一个客户机,运行

shutdown vm10

立即中断一个客户机(类似直接关电源),运行

destroy vm10

挂起一个客户机:

suspend vm10

恢复客户机:

resume vm10

这些都是最重要的命令.

输入

quit

退出virtual shell.

7 创建一个LVM-Based客户机

CentOS 5.2 KVM 主机:

LVM-based 客户机与image-based客户机相比较而言有很多优势。LVM-based不但减轻了硬盘IO的负担,而且很方便就可以备份(使用 LVM snapshots)。

使用LVM-based客户机,你需要有剩余空间的卷组,并且此卷组没有分配给任何逻辑卷。在这个例子中,我使用的卷组叫做/dev/VolGroup00 容量大小大约有148GB。。。

gdisplay

[root@server1 ~]# vgdisplay
/dev/hda: open failed: No medium found
— Volume group —
VG Name               VolGroup00
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  3
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                2
Open LV               2
Max PV                0
Cur PV                1
Act PV                1
VG Size               148.53 GB
PE Size               32.00 MB
Total PE              4753
Alloc PE / Size       968 / 30.25 GB
Free  PE / Size       3785 / 118.28 GB
VG UUID               5faE1k-DkMu-JUEk-K0JV-B9ta-Nyaf-n7tngf

[root@server1 ~]#

。。。这里面其中包涵/dev/VolGroup00/LogVol00的卷组大约30GB,/dev/VolGroup00/LogVol00的卷组(大约1GB)-剩余的空间没有分配,可以让KVM客户机使用:

lvdisplay

[root@server1 ~]# lvdisplay
/dev/hda: open failed: No medium found
— Logical volume —
LV Name                /dev/VolGroup00/LogVol00
VG Name                VolGroup00
LV UUID                qzC8v6-cLyi-Pr4g-BjJv-35Xr-cEJM-LBVs7G
LV Write Access        read/write
LV Status              available
# open                 1
LV Size                29.28 GB
Current LE             937
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           253:0

— Logical volume —
LV Name                /dev/VolGroup00/LogVol01
VG Name                VolGroup00
LV UUID                xA3e1Z-mEc9-rGT1-WcAu-TjF4-lbf3-6LvFaj
LV Write Access        read/write
LV Status              available
# open                 1
LV Size                992.00 MB
Current LE             31
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           253:1

[root@server1 ~]#

现在我创建vm11的虚拟机作为LVM-based的客户机。我预想vm11有20GB的磁盘空间,因此我创建一个 20GB大小的名为/dev/VolGroup00/vm11的逻辑卷:

lvcreate -L20G -n vm11 VolGroup00

然后,我再次使用virt-install来创建客户机:

virt-install –connect qemu:///system -n vm11 -r 512 –vcpus=2 -f /dev/VolGroup00/vm11 -c ~/debian-500-amd64-netinst.iso –vnc –noautoconsole –os-type linux –os-variant generic26 –accelerate –network=bridge:br0 –hvm

请注意我在这里使用的是-f /dev/VolGroup00/vm11而非 -f ~/vm11.qcow2 ,并且我并不需要-s;来重新定义磁盘空间,因为我已经通过vm11 (20GB)定义过一个逻辑卷了。

现在我们就可以按照第五章的流程来安装客户机了。

8链接

在Debian Etch版本的系统中使用Xen3.3.1进行虚拟化应用

2009年10月15日 没有评论

版本 1.0

源地址:http://www.howtoforge.com/virtualization-with-xen-3.3.1-on-debian-etch

原作者: Falko Timme <ft [at] falkotimme [dot] com>

翻译作者:Topkey <http://www.unixbar.net>

最后编辑 02/08/2009

使用说明:蓝色字体为链接、红色字体为shell中的命令、棕色字体为文件中的内容或者是屏幕中显示的字符、灰色字体为正文

这个教程提供手把手的指导,来教会你怎样在Debian Etch(4.0)的系统中安装Xen。

Xen可以帮助你在使用*nix类系统(比如Linux和Freebsd)的主操作系统中创建客户操作系统,也可以叫做“虚拟机”或者domUs,你可以使用Xen在相同的硬件条件下,把你的应用安装在不同的虚拟机当中,这些虚拟机是相互独立的。例如一台虚拟机是作为邮件服务器,一台是作为大流量的web站点,另外的一台作为你的服务客户的web站点,或者创建一个作为Dns服务器的虚拟机等等,这样做的话,不单可以节约你的资金,更重要的是可以大大提升系统的安全性。如果你的作为Dns服务器的虚拟机被入侵了,并不会对你其他的虚拟机产生任何影响.更值得一提的是,你可以移动虚拟机从一台Xen服务器到另外一台。

我不保证这篇论文会适合你!

1 前言

我使用主机名为server1.example.com和IP地址为192.168.0.100的Debian Etch系统来作为我的主系统(dom0).我同时也会在主系统中安装Debian Etch系统来作为我的虚拟机(domU)。

这个教程会为你讲解怎样安装Image-based虚拟机和LVM-based虚拟机。

注意:Xen 3.3.1配合使用的相当老的2.6.18内核。如果你使用新的硬件,这个系统可能由于找不到驱动而不能启动。

2.安装Xen

在我们安装Xen之前,我们必须要安装一些系统依赖的软件包。

apt-get install make gcc libc6-dev zlib1g-dev python python-dev python-twisted bridge-utils iproute libcurl3 libcurl3-dev bzip2 module-init-tools transfig tgif libncurses5-dev patch libvncserver-dev

libsdl-dev libjpeg62-dev bcc bin86 gawk pciutils-dev mercurial build-essential

安装完成后,我们下载Xen 3.3.1

cd /usr/src
wget http://bits.xensource.com/oss-xen/release/3.3.1/xen-3.3.1.tar.gz

并且解压它:

tar -xvzf xen-3.3.1.tar.gz
cd xen-3.3.1

现在我们就可以用下面的命令来编译它了:

make world && make dist

这将会花掉一些时间,请耐心等待,编译完成后,我们就可以安装Xen了:

./install.sh

安装的过程中会显示类似下面的输出:

server1:/usr/src/xen-3.3.1# ./install.sh
Installing Xen from ’./dist/install’ to ’/'…
- installing for udev-based system
- modifying permissions
All done.
Checking to see whether prerequisite tools are installed…
Xen CHECK-INSTALL  Sun Feb 8 21:22:39 CET 2009
Checking check_brctl: OK
Checking check_crypto_lib: OK
Checking check_curl: unused, OK
Checking check_iproute: OK
Checking check_python: OK
Checking check_python_xml: OK
Checking check_udev: OK
Checking check_xml2: unused, OK
Checking check_zlib_lib: OK
All done.
server1:/usr/src/xen-3.3.1#

运行

mv /lib/tls /lib/tls.disabled

然后为Xen创建系统启动项:

update-rc.d xend defaults 20 21
update-rc.d xendomains defaults 21 20

然后我们打开/etc/modules文件并且确保这个文件中有loop max_loop=64这一行(特别注意:这一步骤仅仅是针对你想常见image-based的虚拟机,如果你想创建lvm-based的虚拟机你可以取消这一步骤):

vi /etc/modules

loop max_loop=64

现在我们来看一下/boot文件夹里的东西:

ls -l /boot/

server1:/usr/src/xen-3.3.1# ls -l /boot/
total 15546
-rw-r–r– 1 root root   71818 2007-03-26 18:32 config-2.6.18-4-486
-rw-r–r– 1 root root   66264 2009-02-08 21:21 config-2.6.18.8-xen
drwxr-xr-x 2 root root    1024 2008-12-14 00:07 grub
-rw-r–r– 1 root root 4845777 2008-12-14 00:04 initrd.img-2.6.18-4-486
drwx—— 2 root root   12288 2008-12-13 23:59 lost+found
-rw-r–r– 1 root root  716728 2007-03-27 00:39 System.map-2.6.18-4-486
-rw-r–r– 1 root root  752541 2009-02-08 21:21 System.map-2.6.18.8-xen
-rw-r–r– 1 root root 1220128 2007-03-27 00:39 vmlinuz-2.6.18-4-486
-rw-r–r– 1 root root 1541626 2009-02-08 21:21 vmlinuz-2.6.18.8-xen
-rw-r–r– 1 root root  433689 2009-02-08 21:14 xen-3.3.1.gz
lrwxrwxrwx 1 root root      12 2009-02-08 21:22 xen-3.3.gz -> xen-3.3.1.gz
lrwxrwxrwx 1 root root      12 2009-02-08 21:22 xen-3.gz -> xen-3.3.1.gz
lrwxrwxrwx 1 root root      12 2009-02-08 21:22 xen.gz -> xen-3.3.1.gz
-rw-r–r– 1 root root 6180789 2009-02-08 21:14 xen-syms-3.3.1
server1:/usr/src/xen-3.3.1#

正如你所看到的,这里显示的是新内核2.6.18.8-xen,但是这里没有ramdisk,因此我们来创建一个。

depmod 2.6.18.8-xen
update-initramfs -c -k 2.6.18.8-xen

升级我们的启动引导

update-grub

然后我们重启下系统

reboot

启动完后我们运行命令

uname –r

这时系统的新的Xen内核就会被显示出来

server1:~# uname -r
2.6.18.8-xen
server1:~#

3.安装xen-tools

我们将会使用Xen-tools来创建虚拟机。Xen-tools可以很容易的创建虚拟机,请阅读这个教程来获取更多信息http://www.howtoforge.com/xen_tools_xen_shell_argo.

我们不从 Debian Etch的软件库里安装xen-tools(因为版本相当老),而是直接从开发者的软件库安装,这样的话我们就可以获取最新的版本,打开/etc/apt/sources.list文件。

vi /etc/apt/sources.list

添加下面一行

deb     http://apt.steve.org.uk/etch etch main non-free contrib

然后运行

wget -q http://apt.steve.org.uk/apt-key.gpg -O- | apt-key add – && apt-get update

安装xen-tools:

apt-get install xen-tools

4.创建 Image-Based的虚拟机

现在我们编辑/etc/xen-tools/xen-tools.conf.这个文件包含了xen-create-image脚本使用的默认的参数,无需你在命令行中定义其他的参数。我改变下面的参数并且其他的都设置为默认。

vi /etc/xen-tools/xen-tools.conf

[...]

dir = /home/xen

[...]

dist   = etch     # Default distribution to install.

[...]

gateway   = 192.168.0.1

netmask   = 255.255.255.0

broadcast = 192.168.0.255

[...]

passwd = 1

[...]

kernel      = /boot/vmlinuz-`uname -r`

initrd      = /boot/initrd.img-`uname -r`

[...]

mirror = http://ftp.de.debian.org/debian/

[...]

serial_device = hvc0 #default

[...]

disk_device = xvda #default

[...]

Dir这一行定义虚拟机的镜像存储的位置。

Dist确定将要在虚拟机里安装的版本(Debian Etch)(文件里有一个注释说明所有支持的版本)。

Passwd=1可以使你定义一个创建新的客户域时的root密码。

Mirror定义离你最近的Debian镜像

确保你定义了网关,子网掩码和广播地址。如果你不这样做的话,当你使用xen-create-image命令时,即使你确定了一个IP地址,你的客户域也不能正常工作。

最重要的是在文件中需添加serial_device = hvc0 (or serial_device = xvc0)这一行,否则你的虚拟机可能不能正常启动。

在我们继续下面的操作之前,我们需要创建虚拟机镜像存储文件的目录。

mkdir /home/xen

现在我们来创建我们的第一个客户域,xen1.example.com,所使用的Ip地址是192.168.0.101:

xen-create-image –hostname=xen1.example.com –size=4Gb –swap=256Mb –ip=192.168.0.101 –memory=128Mb –arch=i386 –role=udev

操作已经在/etc/xen-tools/xen-tools.conf文件中定义的命令,在操作你没有在/etc/xen-tools/xen-tools.conf定义的命令时,请确保你在命令中加入了–role=udev,否则你的虚拟机可能不能正常启动!

要学习更多的可用参数说明,请查看xen-create-image的man说明。

man xen-create-image

xen-create-image这时就会为我们创建xen1.example.com虚拟机,这将花费一些时间,输出的结果类似于下面所示。

server1:~# xen-create-image –hostname=xen1.example.com –size=4Gb –swap=256Mb –ip=192.168.0.101 –memory=128Mb –arch=i386 –role=udev

General Information
——————–
Hostname       :  xen1.example.com
Distribution   :  etch
Partitions     :  swap            256Mb (swap)
/               4Gb   (ext3)
Image type     :  sparse
Memory size    :  128Mb
Kernel path    :  /boot/vmlinuz-2.6.18.8-xen
Initrd path    :  /boot/initrd.img-2.6.18.8-xen

Networking Information
———————-
IP Address 1   : 192.168.0.101 [MAC: 00:16:3E:85:BC:FC]
Netmask        : 255.255.255.0
Broadcast      : 192.168.0.255
Gateway        : 192.168.0.1

WARNING
——-
Loopback module not loaded and you’re using loopback images
Run the following to load the module:

modprobe loop loop_max=255

Creating partition image: /home/xen/domains/xen1.example.com/swap.img
Done

Creating swap on /home/xen/domains/xen1.example.com/swap.img
Done

Creating partition image: /home/xen/domains/xen1.example.com/disk.img
Done

Creating ext3 filesystem on /home/xen/domains/xen1.example.com/disk.img
Done
Installation method: debootstrap
Done

Running hooks
Done

Role: udev
File: /etc/xen-tools/role.d/udev
Role script completed.

Creating Xen configuration file
Done
Setting up root password
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
All done

Logfile produced at:
/var/log/xen-tools/xen1.example.com.log
server1:~#

在这里/etc/xen/xen1.example.com.cfg就会出现xen1.example.com的配置文件,打开它并在文件底部添加下面的参数extra = ‘xencons=hvc0 console=hvc0′(或者extra = ‘xencons=xvc0 console=xvc0′如果你在etc/xen-tools/xen-tools.conf文件中配置的是serial_device = xvc0)

vi /etc/xen/xen1.example.com.cfg

#

# Configuration file for the Xen instance xen1.example.com, created

# by xen-tools 4.1 on Sun Feb  8 21:42:15 2009.

#


#

#  Kernel + memory size

#

kernel      = ‘/boot/vmlinuz-2.6.18.8-xen’

ramdisk     = ‘/boot/initrd.img-2.6.18.8-xen’


memory      = ’128′


#

#  Disk device(s).

#

root        = ‘/dev/xvda2 ro’

disk        = [

'file:/home/xen/domains/xen1.example.com/disk.img,xvda2,w',

'file:/home/xen/domains/xen1.example.com/swap.img,xvda1,w',

]



#

#  Physical volumes

#




#

#  Hostname

#

name        = ‘xen1.example.com’


#

#  Networking

#

vif         = [ 'ip=192.168.0.101,mac=00:16:3E:85:BC:FC' ]


#

#  Behaviour

#

on_poweroff = ‘destroy’

on_reboot   = ‘restart’

on_crash    = ‘restart’



extra = ‘xencons=hvc0 console=hvc0′

如果你不加入这一行的话,你再使用xm console命令进入vm的终端时,启动进程就会被永远挂起了(但是事实上,vm正在正常运行,你可以使用ssh连接它)。

(请注意:如果你有双核或者四核的cpu并且想在虚拟机中使用所有的核,请在配置文件中添加vcpus = ’2′ or vcpus = ’4′这一行)。

如果想启动虚拟机,运行命令

xm create /etc/xen/xen1.example.com.cfg

输入

xm console xen1.example.com

就会进入到了虚拟机(如果想返回dom0,在console时敲入CTRL+],在putty时敲入CTRL+5),或者你使用SSh的客户端进入(192.168.0.101).

(如果在vm系统启动进程中看到下列信息

EXT3-fs: mounted filesystem with ordered data mode.

***************************************************************
***************************************************************
** WARNING: Currently emulating unsupported memory accesses  **
**          in /lib/tls glibc libraries. The emulation is    **
**          slow. To ensure full performance you should      **
**          install a ’xen-friendly’ (nosegneg) version of   **
**          the library, or disable tls support by executing **
**          the following as root:                           **
**          mv /lib/tls /lib/tls.disabled                    **
** Offending process: modprobe (pid=1757)                    **
***************************************************************
***************************************************************

Continuing…

在vm中运行下列命令

mv /lib/tls /lib/tls.disabled

如果想查看主机中所有虚拟机,输入

xm list

输出的结果类似于

server1:~# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   874     1     r—–    714.2
xen1.example.com                             1   128     1     -b—-     63.8
server1:~#

如果你想关闭虚拟机,请输入下列命令

xm shutdown xen1.example.com

如果你想虚拟机xen1.example.com在主机启动的时候自动启动,输入下列命令

ln -s /etc/xen/xen1.example.com.cfg /etc/xen/auto

下面将为大家介绍几个重要的Xen命令

xm create -c /path/to/config –启动虚拟机

xm shutdown <name> -关闭虚拟机

xm destroy <name> -立刻关闭虚拟机,类似于直接关闭电源按钮

xm list列出所有运行的系统

xm console <name> -登入虚拟机

xm help – 命令说明列表

使用xen-create-image命令可以显示所有创建过的虚拟机的列表。

xen-list-images

server1:~# xen-list-images
Name: xen1.example.com
Memory: 128
IP: 192.168.0.101
server1:~#

5.创建LVM-Based虚拟机

在这一章将会说明怎样设置一个LVM-Based虚拟机而非使用磁盘镜像的虚拟机,使用磁盘镜像的虚拟机运行时十分慢,并增大了磁盘IO的负担。

在这个例子中,我使用一个带有LVM卷组大约50GB空间的/dev/vg0 Debian Etch主机,/dev/vg0 包含两个逻辑卷,dev/vg0/root 和 /dev/vg0/swap_1 另外剩余12Gb空间没有分配- 可以使我们自爱创建我们的虚拟机时创建逻辑卷。

Vgdisplay

server1:~# vgdisplay
— Volume group —
VG Name               vg0
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  3
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                2
Open LV               2
Max PV                0
Cur PV                1
Act PV                1
VG Size               49.52 GB
PE Size               4.00 MB
Total PE              12678
Alloc PE / Size       3072 / 12.00 GB
Free  PE / Size       9606 / 37.52 GB
VG UUID               iXaW0I-RkGD-WQlQ-dMaD-qfM5-xkvq-2w5uP5

server1:~#

lvdisplay

server1:~# lvdisplay
— Logical volume —
LV Name                /dev/vg0/root
VG Name                vg0
LV UUID                17thCh-CgS8-ZvrJ-FOai-B1AX-89sv-xxq12a
LV Write Access        read/write
LV Status              available
# open                 1
LV Size                10.00 GB
Current LE             2560
Segments               1
Allocation             inherit
Read ahead sectors     0
Block device           253:0

— Logical volume —
LV Name                /dev/vg0/swap_1
VG Name                vg0
LV UUID                u2EZyP-3Vp5-Lr32-nquG-ub5a-f0U5-VI3WRN
LV Write Access        read/write
LV Status              available
# open                 1
LV Size                2.00 GB
Current LE             512
Segments               1
Allocation             inherit
Read ahead sectors     0
Block device           253:1

server1:~#

现在我们编辑/etc/xen-tools/xen-tools.conf.这个文件包含了xen-create-image脚本使用的默认的参数,无需你在命令行中定义其他的参数。我改变下面的参数并且其他的都设置为默认。

vi /etc/xen-tools/xen-tools.conf

[...]

lvm = vg0

[...]

dist   = etch     # Default distribution to install.

[...]

gateway   = 192.168.0.1

netmask   = 255.255.255.0

broadcast = 192.168.0.255

[...]

passwd = 1

[...]

kernel      = /boot/vmlinuz-`uname -r`

initrd      = /boot/initrd.img-`uname -r`

[...]

mirror = http://ftp.de.debian.org/debian/

[...]

serial_device = hvc0 #default

[...]

disk_device = xvda #default

[...]

确保lvm这一行没有注销,并在这一行填入你的卷组(在我的试验中是vg0).同时确保dir这一行已被注销。

Dist确定将要在虚拟机里安装的版本(Debian Etch)(文件里有一个注释说明所有支持的版本)。

Passwd=1可以使你定义一个创建新的客户域时的root密码。

Mirror定义离你最近的Debian镜像

确保你定义了网关,子网掩码和广播地址。如果你不这样做的话,当你使用xen-create-image命令时,即使你确定了一个IP地址,你的客户域也不能正常工作。

最重要的是在文件中需添加serial_device = hvc0 (or serial_device = xvc0)这一行,否则你的虚拟机可能不能正常启动。

在我们继续下面的操作之前,我们需要创建虚拟机镜像存储文件的目录。

mkdir /home/xen

现在我们来创建我们的第一个客户域,xen1.example.com,所使用的Ip地址是192.168.0.101:

xen-create-image –hostname=xen1.example.com –size=4Gb –swap=256Mb –ip=192.168.0.101 –memory=128Mb –arch=i386 –role=udev

操作已经在/etc/xen-tools/xen-tools.conf文件中定义的命令,在操作你没有在/etc/xen-tools/xen-tools.conf定义的命令时,请确保你在命令中加入了–role=udev,否则你的虚拟机可能不能正常启动!

要学习更多的可用参数说明,请查看xen-create-image的man说明。

man xen-create-image

xen-create-image这时就会为我们创建xen1.example.com虚拟机,这将花费一些时间,输出的结果类似于下面所示。

server1:~# xen-create-image –hostname=xen1.example.com –size=4Gb –swap=256Mb –ip=192.168.0.101 –memory=128Mb –arch=i386 –role=udev

General Information
——————–
Hostname       :  xen1.example.com
Distribution   :  etch
Partitions     :  swap            256Mb (swap)
/               4Gb   (ext3)
Image type     :  full
Memory size    :  128Mb
Kernel path    :  /boot/vmlinuz-2.6.18.8-xen
Initrd path    :  /boot/initrd.img-2.6.18.8-xen

Networking Information
———————-
IP Address 1   : 192.168.0.101 [MAC: 00:16:3E:1C:B9:F3]
Netmask        : 255.255.255.0
Broadcast      : 192.168.0.255
Gateway        : 192.168.0.1

Creating swap on /dev/vg0/xen1.example.com-swap
Done

Creating ext3 filesystem on /dev/vg0/xen1.example.com-disk
Done
Installation method: debootstrap
Done

Running hooks
Done

Role: udev
File: /etc/xen-tools/role.d/udev
Role script completed.

Creating Xen configuration file
Done
Setting up root password
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
All done

Logfile produced at:
/var/log/xen-tools/xen1.example.com.log
server1:~#

正如你从输出结果中看到的那样,xen-create-image已经在vg0卷组中为我们的虚拟机创建了一个新的逻辑卷,/dev/vg0/xen1.example.com-disk为vm的启动文件,用下面命令可以查看,

Lvdisplay

同时你也会看到另外一个逻辑卷/dev/vg0/xen1.example.com-swap作为vm的swap

server1:~# lvdisplay
— Logical volume —
LV Name                /dev/vg0/root
VG Name                vg0
LV UUID                17thCh-CgS8-ZvrJ-FOai-B1AX-89sv-xxq12a
LV Write Access        read/write
LV Status              available
# open                 1
LV Size                10.00 GB
Current LE             2560
Segments               1
Allocation             inherit
Read ahead sectors     0
Block device           253:0

— Logical volume —
LV Name                /dev/vg0/swap_1
VG Name                vg0
LV UUID                u2EZyP-3Vp5-Lr32-nquG-ub5a-f0U5-VI3WRN
LV Write Access        read/write
LV Status              available
# open                 1
LV Size                2.00 GB
Current LE             512
Segments               1
Allocation             inherit
Read ahead sectors     0
Block device           253:1

— Logical volume —
LV Name                /dev/vg0/xen1.example.com-swap
VG Name                vg0
LV UUID                No03G8-PzA3-67JH-m936-rUQY-rZFi-djIu21
LV Write Access        read/write
LV Status              available
# open                 0
LV Size                256.00 MB
Current LE             64
Segments               1
Allocation             inherit
Read ahead sectors     0
Block device           253:2

— Logical volume —
LV Name                /dev/vg0/xen1.example.com-disk
VG Name                vg0
LV UUID                xDwpFO-XALQ-7I1N-TA3k-paYc-biG7-TjrNIM
LV Write Access        read/write
LV Status              available
# open                 0
LV Size                4.00 GB
Current LE             1024
Segments               1
Allocation             inherit
Read ahead sectors     0
Block device           253:3

server1:~#

在这里/etc/xen/xen1.example.com.cfg就会出现xen1.example.com的配置文件,打开它并在文件底部添加下面的参数extra = ‘xencons=hvc0 console=hvc0′(或者extra = ‘xencons=xvc0 console=xvc0′如果你在etc/xen-tools/xen-tools.conf文件中配置的是serial_device = xvc0)

vi /etc/xen/xen1.example.com.cfg

#

# Configuration file for the Xen instance xen1.example.com, created

# by xen-tools 4.1 on Sun Feb  8 22:01:30 2009.

#


#

#  Kernel + memory size

#

kernel      = ‘/boot/vmlinuz-2.6.18.8-xen’

ramdisk     = ‘/boot/initrd.img-2.6.18.8-xen’


memory      = ’128′


#

#  Disk device(s).

#

root        = ‘/dev/xvda2 ro’

disk        = [

'phy:/dev/vg0/xen1.example.com-disk,xvda2,w',

'phy:/dev/vg0/xen1.example.com-swap,xvda1,w',

]



#

#  Physical volumes

#




#

#  Hostname

#

name        = ‘xen1.example.com’


#

#  Networking

#

vif         = [ 'ip=192.168.0.101,mac=00:16:3E:1C:B9:F3' ]


#

#  Behaviour

#

on_poweroff = ‘destroy’

on_reboot   = ‘restart’

on_crash    = ‘restart’


extra = ‘xencons=hvc0 console=hvc0′

如果你不加入这一行的话,你再使用xm console命令进入vm的终端时,启动进程就会被永远挂起了(但是事实上,vm正在正常运行,你可以使用ssh连接它)。

(如果你使用的是磁盘镜像而非逻辑卷,disk这一行是下面设置

disk = [ 'file:/path/to/xen1.example.com/disk.img,xvda1,w', 'file:/path/to/xen1.example.com/swap.img,xvda2,w' ])

(请注意:如果你有双核或者四核的cpu并且想在虚拟机中使用所有的核,请在配置文件中添加vcpus = ’2′ or vcpus = ’4′这一行)。

如果要启动虚拟机,运行

xm create /etc/xen/xen1.example.com.cfg

输入

xm console xen1.example.com

就会进入到了虚拟机(如果想返回dom0,在console时敲入CTRL+],在putty时敲入CTRL+5),或者你使用SSh的客户端进入(192.168.0.101).

(如果在vm系统启动进程中看到下列信息

EXT3-fs: mounted filesystem with ordered data mode.

***************************************************************
***************************************************************
** WARNING: Currently emulating unsupported memory accesses  **
**          in /lib/tls glibc libraries. The emulation is    **
**          slow. To ensure full performance you should      **
**          install a ’xen-friendly’ (nosegneg) version of   **
**          the library, or disable tls support by executing **
**          the following as root:                           **
**          mv /lib/tls /lib/tls.disabled                    **
** Offending process: modprobe (pid=1757)                    **
***************************************************************
***************************************************************

Continuing…

在vm中运行下列命令

mv /lib/tls /lib/tls.disabled

想得到正在运行的虚拟机的列表,输入下列命令

xm list

得到的结果应该如下所示:

server1:~# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   874     1     r—–   1367.1
xen1.example.com                             2   128     1     ——     33.3
server1:~#

如果你想关闭虚拟机,请输入下列命令

xm shutdown xen1.example.com

如果你想虚拟机xen1.example.com在主机启动的时候自动启动,输入下列命令

ln -s /etc/xen/xen1.example.com.cfg /etc/xen/auto

下面将为大家介绍几个重要的Xen命令

xm create -c /path/to/config –启动虚拟机

xm shutdown <name> -关闭虚拟机

xm destroy <name> -立刻关闭虚拟机,类似于直接关闭电源按钮

xm list列出所有运行的系统

xm console <name> -登入虚拟机

xm help – 命令说明列表

使用xen-create-image命令可以显示所有创建过的虚拟机的列表。

xen-list-images

server1:~# xen-list-images
Name: xen1.example.com
Memory: 128
IP: 192.168.0.101
server1:~#

想学习如果使用xen-tools的更多的知识,请访问http://www.howtoforge.com/xen_tools_xen_shell_argo

6 相关链接

使用vzdump克隆/备份/恢复OpenVZ虚拟机

2009年10月15日 2 条评论

版本 1.0

源地址:http://www.howtoforge.com/clone-back-up-restore-openvz-vms-with-vzdump

原作者: Falko Timme <ft [at] falkotimme [dot] com>

翻译者:Topkey<http://www.unixbar.net>

最后编辑日期: 11/20/2008

使用说明:蓝色字体为链接、红色字体为shell中的命令、棕色字体为文件中的内容、灰色字体为正文

Vzdump是一款OpenVZ虚拟机的备份和恢复工具,这篇教程将会教会你怎样使用Vzdump克隆/备份/恢复虚拟机。

这篇文章我已经测试成功!

1 前言

我在这篇教程中使用两个OpenVZ服务器:

Server1.example.com:IP 192.168.0,100

Server2.example.com:IP 192.168.0.101

(两台都使用的是Debian Etch的系统,设置的过程大家可以参考这篇教程Installing And Using OpenVZ On Debian Etch-但是vzdump同时也支持其他版本的linux)

我在server1.example.com服务器上运行着一个主机名为test.example.com的虚拟机,它的ip地址是192.168.1.102且他的VEID是102.我想备份这个虚拟机,并把它恢复在server2.example.com这台服务器上。

我们可以原封不动的把虚拟机恢复在server2.example.com的服务器上(例如相同的ip地址和主机名),但是运行克隆在server2的虚拟机时,我们必须停止在server1.example.com服务器上的虚拟机。否则的话,ip地址和主机名将会冲突;第二种方法我们在恢复虚拟机之前,使用vzctl set命令改变一些参数例如ip地址和主机名。这样的话,我们可以同时运行两个虚拟机(原本运行在server1.example.com上的虚拟机和克隆在server2.example.com)第二种方法是克隆虚拟机的最好的方法。

2.准备OpenVz服务器

首先我们必须安装Vzdump和它所依赖的rsync,在debian系统中,命令如下:


server1/server2:

apt-get install vzdump rsync

3创建一个虚拟机的备份

这一章仅需要在server1服务器上操作就可以了

在server1.example.com上,想创建一个VEID为102的虚拟机的备份,先看一下vzdump的帮助

man vzdump

来学习下如何使用vzdump.

要备份你服务器上所有的虚拟机,你可以使用下列命令

vzdump –compress –dumpdir /home/backup –stop –all

–compress 意思是: 压缩备份的文件 (压缩为一个.tgz文件).

–dumpdir确定你想存储备份的文件夹,如果你不定义一个dumpdir,默认为/vz/dump或者/var/lib/vz/dump(依赖你的版本)。

–stop 停止虚拟机,常见备份,然后启动虚拟机。如果你使用—stop你的虚拟机将会停掉几分钟.一个更快的方案是你使用…

–suspend:挂起虚拟机,虚拟机备份这时会拷贝via rsync到一个临时文件.虚拟机将会在定调几秒后立刻得以恢复,然后这个dump被创建使用的是临时文件夹下的拷贝。我推荐使用这种方法如果你不想等太久的话。

你也可以省去–stop 和 –suspend直接备份一个正在运行的虚拟机,大多数情况下这是没有问题的,但是可能会使备份不同意,因此请慎用!

–all创建所有可用虚拟机的备份,如果你想备份一个特定虚拟机的备份,使用虚拟机的VEID来替换。

要想把创建VEID为102的虚拟机备份在/home/backup,并且想在备份的时候停止虚拟机,使用下列命令

vzdump –compress –dumpdir /home/backup –stop 102

要想创建一个dump到默认文件夹(/vz/dump or /var/lib/vz/dump),使用命令

vzdump –compress –stop 102

输出结果将会如下所示

server1:/vz/dump# vzdump –compress –stop 102
INFO: starting backup for VPS 102 (/var/lib/vz/private/102)
INFO: starting first sync /var/lib/vz/private/102 to /var/lib/vz/dump/tmp9009
INFO: stopping vps
Stopping container …
Container was stopped
Container is unmounted
INFO: final sync /var/lib/vz/private/102 to /var/lib/vz/dump/tmp9009
INFO: restarting vps
Starting container …
Container is mounted
Adding IP address(es): 192.168.0.102
Setting CPU units: 1000
Configure meminfo: 65536
Set hostname: test.example.com
File resolv.conf was modified
Container start in progress…
INFO: vps is online again after 15 seconds
INFO: Creating archive ‘/var/lib/vz/dump/vzdump-102.tgz’ (/var/lib/vz/dump/tmp9009/102)
Total bytes written: 340428800 (325MiB, 11MiB/s)
INFO: backup for VPS 102 finished successful (1.37 minutes)
server1:/vz/dump#

不像停止,仅仅挂起虚拟机,使用命令

vzdump –compress –suspend 102

输出结果如下所示

server1:~# vzdump –compress –suspend 102
INFO: starting backup for VPS 102 (/var/lib/vz/private/102)
INFO: starting first sync /var/lib/vz/private/102 to /var/lib/vz/dump/tmp10842
INFO: suspend vps
Setting up checkpoint…
suspend…
get context…
Checkpointing completed succesfully
INFO: final sync /var/lib/vz/private/102 to /var/lib/vz/dump/tmp10842
INFO: resume vps
Resuming…
INFO: vps is online again after 4 seconds
INFO: Creating archive ’/var/lib/vz/dump/vzdump-102.tgz’ (/var/lib/vz/dump/tmp10842/102)
Total bytes written: 340428800 (325MiB, 24MiB/s)
INFO: backup for VPS 102 finished successful  (1.57 minutes)
server1:~#

在备份之后,我们看一下dump的目录…

ls -l /vz/dump/

你将会看到一个以.tgz为后缀的文件:

server1:~# ls -l /vz/dump/
total 147864
-rw-r–r– 1 root root      1170 2008-11-20 17:40 vzdump-102.log
-rw-r–r– 1 root root 151249685 2008-11-20 17:40 vzdump-102.tgz
server1:~#

你现在就可以拷贝这个dump到其他的OpenVZ服务器上了,使用scp把/vz/dump/vzdump-102.tgz这个备份拷贝到server2.example.com的/home文件夹下);

scp /vz/dump/vzdump-102.tgz root@192.168.0.101:/home

4.恢复一个虚拟机

(这一章仅仅是针对server2的!)

在server2.example.com,你现在就可以恢复这个虚拟机了,使用下列命令….

vzdump –restore /home/vzdump-102.tgz 250

在这里250是恢复虚拟机新的VEID-你也可以使用任何在server2.example.com上没有被使用的VEID-你甚至可以再次使用102,如果server2.example.com上没有使用的话。

如果你不想修改虚拟机的设置(例如。Ip地址,主机名),你现在就可以启动它了,但是请确认在server1.example.com上的原始的虚拟机已经停止,否则会导致ip冲突。

vzctl start 250

如果你想同时运行两个虚拟机(原始的和克隆的),你必须克隆虚拟机启动前改变其ip地址和主机名.

要设置一个新的主机名,运行下列命令:


vzctl set 250 –hostname test2.example.com –save

要设置一个新的ip地址,我们必须先删除原来的。

vzctl set 250 –ipdel 192.168.0.102 –save

然后我们设置一个新的

vzctl set 250 –ipadd 192.168.0.250 –save

最后我们就可以启动克隆的虚拟机了。

vzctl start 250

5 相关链接

分类: Debian, Virtualization 标签: ,

在Ubuntu8.10的桌面版中安装VirtualBox 2.0

2009年10月14日 2 条评论

版本 1.0
源地址:http://www.howtoforge.com/installing-virtualbox-2.0.0-on-ubuntu-8.10-desktop
原作者: Falko Timme <ft [at] falkotimme [dot] com>
翻译者:Topkey<tinybiz<at>163.com>
最后编辑时间11/12/2008

使用说明:蓝色字体为链接、红色字体为shell中的命令、棕色字体为文件中的内容、灰色字体为正文

这个教程将会教会你如何在Ubuntu8.10的桌面版中安装Sun xVM VirtualBox。使用VirtualBox你可以在主机系统中创建和运行例如linux和windows的客户操作系统(”虚拟机”)。有两种安装VirtualBox的方法:第一种是基于PUEL license下的找到适合一些版本的预编译的二进制文件进行安装,第二种方法是从基于GPL发行的源文件。这篇文章将会为你展示如何用预编译二进制文件设置VirtualBox2.0。

VirtualBox2.0的版本支持32位和64位的主机和客户操作系统(如果你想安装64位的客户系统你的处理器必须 支持硬件虚拟化,理所当然你的主机操作系统也必须是64位)

这个文档不做任何保证,我想说的是这篇文章的方法并不是设置类似系统的唯一的方法.有很多种方法可以完成这个目标,但是我采用了这个方法,我不保证这篇教程会完全适合你。

从预编译二进制文件中安装VirtualBox

打开Firefox并进入http://www.virtualbox.org/wiki/Linux_Downloads,对于Ubuntu8.10,点击i386 or AMD64 l链接(依赖于你使用的是32位或者是64位的主机系统) right of Ubuntu 8.10 (“Intrepid Ibex”):

1

在Firefox下载的对话框中,选择打开Gdebi包安装程序(默认)

2

在VirtualBox下载完成之后,会打开一个包安装程序的窗口,点击安装包。

3

如果你在安装的过程中看到了这个信息,点击下一步,我将会在这篇教程的后面陈述(这个信息说运行VirtualBox的用户-就是你登陆桌面的用户-必须是vboxusers组的成员);

4

然后点击关闭完成安装并且推出包安装程序。

5

现在我们添加一个用户(在这个例子中是falko)到vboxusers组,我们必须打开一个终端(应用>附件>终端):

6

要想创建falko用户到vboxusers组中,我们运行

sudo usermod -G vboxusers -a falko

在这个终端里,然后我们关闭终端。

想要启动VirtualBox,点击应用>系统工具>运行xVM VirtualBox(如果你没有看到VirtualBox启动器,注销系统重登陆试下);

7

然后输入你的名族和email地址为了注册你的VirtualBox安装。

8

这个注册验证的窗口可能会被隐藏在注册窗口的的后面,如果你填写好注册窗口后,发现没有东京,移动注册窗口,点击注册验证窗口中的ok按钮。

9

这就是这篇教程的全部,现在你就可以使用VirtualBox来创建虚拟机了。

10

当你第一次启动VirtualBox时,你将会被提示接受一个许可:

11

在CentOS5.2上使用Vtonf 控制面板管理OpenVZ

2009年10月14日 没有评论

版本 1.0
源地址:http://www.howtoforge.com/managing-openvz-with-vtonf-control-panel-on-centos-5.2

原作者: Falko Timme <ft [at] falkotimme [dot] com>

译者:Topkey<tinybiz[at]163[dot]com>

最后一次编辑日期 11/11/2008

使用说明:蓝色字体为链接、红色字体为shell中的命令、棕色字体为文件中的内容、黑色字体为正文

Vtonf是一款免费的基于web界面的控制面板(符合GPL),它可以管理OpenVz上虚拟专用服务器(VPS)。使用她甚至是那些有很少专业只是的用户也可以很简单地创建和管理OpenVZ上的虚拟机。到目前为止,Vtonf仅仅支持RedHat, Fedora, 和 CentOS(支持Debian正在计划中)。因此,我将在一个CentOS5.2服务器上讲解Vtonf的安装和使用。

我并不能保证这个教程完全适合你!

1前言

确信你已经在你的CentOS5.2服务器上安装好了OpenVZ。可以参考这篇教程Installing And Using OpenVZ On CentOS 5.2

我将在一个i386平台的系统上做试验,我不知道Vtonf是否工作在x86_64位的系统上-Vtonf附带的INSTALL文件上说不可以,但是Vtonf wiki确没有关于这方面的介绍。

2.安装Vtonf

在我们安装Vtonf之前,我们必须安装一些相关的软件包

yum install vzpkg expect

然后去http://www.vtonf.com/downloads.html网站下载并安装最新的Vtonf包,如下所示:

cd /tmp
wget http://mesh.dl.sourceforge.net/sourceforge/vtonf/vtonfinstaller.1.0-beta1.tar.gz
tar xvfz vtonfinstaller.1.0-beta1.tar.gz
cd vtonfinstaller.1.0-beta1
./install

你将会被问到几个问题:

Do you wish to start the installation procedure (y/n)? : <– y

选择yes继续

1

接受Vtonf的协议

2

接着Vtonf就开始安装了

3

5

输入一个用户名

1

输入一个你想在登陆Vtonf控制面板时所使用的密码

7

然后,Vtonf的安装就结束了:

Vtonf control panel installation completed. Please login to the control panel from the following information

http://192.168.0.100:8001/

Login Name : admin
Password : howtoforge

Visit our forum : http://www.vtonf.com/forum/index.php

Get support : http://www.vtonf.com/support.html

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

正如你所见,安装程序告诉你了Vtonf控制面板的url地址(在我的例子中是http://192.168.0.100:8001/

<!–nextpage–>

3使用Vtonf

打开浏览器并且进入Vtonf管理界面

8

这个就是管理界面的样子了,我将会讲述最重要的功能创建一个虚拟机,点击Create Node(尽管Vtonf非常简单,你可以完全弄清楚了)

9

Vtonf里出现了一个OS templates,centos-4-i386-minimal,选择这一个,选择一个配置文件(例如vps.basic),并且填入主机名和ip地址(在下一个章节,我将讲解怎样添加更多的OS templates),点击Create Node 按钮:

10

几分钟后你就能看到有关虚拟机已经安装创建的信息了

11

在Node Listing下,你就能看到你的新虚拟机了

12

你可以为你的虚拟机创建plans(plans定义一些包含内存,磁盘空间等信息)然后使用这个plan创建虚拟机(创建出来的虚拟机就会具有和这个plan上设定的相同的属性),这可以省去了你手工的输入设置,并且可以快速的创建虚拟机。

13

等你创建好一个虚拟机后,你进入NODE MANAGEMENT并且点击Node Start来启动虚拟机,从下拉菜单中选择虚拟机,并点击Start按钮

14

15

在你第一次启动虚拟机时,你需要设置为它设置一个root密码(这一步必须在虚拟机运行的时候进行),点击Go to SERVICES > Change Node Root Password,选择虚拟机,并且两次输入你想要的管理密码。

17

在NODE NANAGEMENT > Set Nameservers之下,你也可以为你的虚拟机定义一些域名服务器(这一步也必须在虚拟机运行的时候进行)除非你在一个plan中定义了域名服务器,并且虚拟机也是从这个plan中创建的。

21

Vtonf相当易操作,你可以玩下其他的设置,来看看他们能做些什么.

4.添加OS Templates

由于Vtonf仅仅附带一个OS Templates(centos-4-i386-minimal),你可能想添加更多的OS Templates。你可以在http://wiki.openvz.org/Download/template/precreated找到一个OS Templates列表。这些OS Templates必须存储在/vz/template/cache文件夹下,我们来下载两个OS templates (CentOS 5 and Debian Etch):

cd /vz/template/cache
wget http://download.openvz.org/template/precreated/contrib/centos-5-i386-default.tar.gz
wget http://download.openvz.org/template/precreated/debian-4.0-i386-minimal.tar.gz

然后我们必须使得Vtonf重新读取/vz/template/cache,来发现这两个新的OS templates,点开VTONF > Update Settings.

18

并且点击Update按钮

19

然后,当你打开SERVER > Create Node你就会在Operating System下拉菜单中发现新的OS templates。

20

5.相关链接