存档

‘Linux’ 分类的存档

在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 标签: ,

使用Ubuntu的dhcpd进行自动备份

2009年10月14日 没有评论

源地址:http://www.howtoforge.com/automated-backups-using-dhcpd-on-ubuntu

原作者:mcielen

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

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

这篇教程将为你展示如何设置Ubuntu的dhcp来自动备份Linux的主机

我将会使用到下列软件:

  • dhcp3
  • custom scripts

1 在服务器上

1.1 配置 dhcp3

在 /etc/dhcp3/dhcps.conf 文件中添加:

on commit {

execute (

“/etc/dhcp3/startbackup.sh”,

“start”,

binary-to-ascii(10,8,”.”,leased-address)

);

}

1.2 创建 startbackup.sh脚本

sudo vi /etc/dhcp3/startbackup.sh

#!/bin/bash

case “$1″ in

start)

sudo -u backup /etc/dhcp3/rsync.sh $2

;;

*)

;;

esac

exit 0

1.3 创建 rsync.sh脚本

sudo vi /etc/dhcp3/rsync.sh

#!/bin/bash

nohup rsync -azuvb backup@$1:/home /backup/$1 &

并创建/backup文件夹:

sudo mkdir /backup

1.4 添加backup的用户

sudo useradd backup

sudo chown backup:backup /backup

创建私/公ssh keys:

ssh-keygen -t rsa

拷贝公匙到你想要备份的所有的主机上:

ssh-copy-id -i ~/.ssh/id_rsa backup@[host]

用你的主机地址,或ip地址替代 [host]处。

1.5 配置sudo

sudo visudo

添加如下一行:

dhcpd ALL=(backup)NOPASSWD: /etc/dhcp3/startbackup.sh, /etc/dhcp3/rsync.sh

1.6 配置 AppArmor

sudo vi /etc/apparmor.d/usr.sbin.dhcpd3

把下列部分:

/etc/dhcp3/ r,

/etc/dhcp3/** r,

/etc/dhcpd.conf r,

/etc/dhcpd_ldap.conf r,

改变成:

/etc/dhcp3/ r,

/etc/dhcp3/** r,

/etc/dhcp3/startbackup.sh Uxr,

/etc/dhcpd.conf r,

/etc/dhcpd_ldap.conf r,

1.7 重启服务

sudo /etc/init.d/apparmor restart

sudo /etc/init.d/dhcp3-server restart

2 在客户端上

2.1 添加Backup的用户

sudo useradd backup

sudo usermod -G root

2.2 测试设置

sudo dhclient [interface]

在这里interface指的是你想renew的机器

现在你在服务器上就应该有了客户机的备份了。

分类: Backup, Ubuntu 标签: , ,

在Debian Lenny上为Apache2安装mod_geoip模块

2009年10月14日 1 条评论

版本 1.0

源地址:http://www.howtoforge.com/installing-mod_geoip-for-apache2-on-debian-lenny
原作者: Falko Timme <ft [at] falkotimme [dot] com>
翻译者:Topkey www.txtbar.cn

最后编辑日期 08/04/2009

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

这篇教程为你展示怎样在一个Debian Lenny系统上设置带有mod_geoip的Apache2服务器。mod_geoip可以查询终端客户的ip地址,它允许你重定向或者阻止某个国家的用户。你也可以用它来配合你的OpenX(前身为OpenAds 或phpAds)广告服务器进行地理定位。

我测试没有任何问题!

1 初步说明

在这里我假设你已经安装了一个可以运行Apache2的Debian Lenny系统,如果你们有安装,可以参考下面的教程The Perfect Server – Debian Lenny (Debian 5.0) [ISPConfig 2]安装。

2 安装 mod_geoip

我们运行下列命令来安装mod_geoip:

aptitude install libapache2-mod-geoip

然后我们打开/etc/apache2/mods-available/geoip.conf,取消GeoIPDBFile这一行的评注,并修改成下面的形式。

vi /etc/apache2/mods-available/geoip.conf

<IfModule mod_geoip.c>

GeoIPEnable On

GeoIPDBFile /usr/share/GeoIP/GeoIP.dat

</IfModule>

下面我们重启Apache:

/etc/init.d/apache2 restart

一切就绪!

3 一个简单的测试

我们可以创建在我们的web空间(例如/var/www)里创建一个小型的PHP文件,来检测mod_geoip是否正常工作,

vi /var/www/geoiptest.php

<html>

<body>

<?php

$country_name = apache_note(“GEOIP_COUNTRY_NAME”);

print “Country: ” . $country_name;

?>

</body>

</html>

在浏览器里访问这个文件,就可以看到你所在的国家了(需要注意的是,你需要从公网IP访问,而非本地)。

4 用例

你可以使用mod_geoip来重定向或者阻止允许基于某个国家的用户。你可以在这里来找到一些有用的例子。: http://www.maxmind.com/app/mod_geoip

如果你想配合OpenX/OpenAds/phpAdsNew 使用mod_geoip,这里有可作为教程的PDF: http://www.maxmind.com/openads_geoip.pdf

5 相关链接

分类: Apache, Debian 标签: , ,

在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.相关链接

在Debian Etch系统中设置支持TLS的ProFTPd服务器

2009年10月14日 没有评论

版本 1.0

源地址:http://www.howtoforge.com/proftpd-tls-debian-etch

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

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

最后一次编辑时间 12/03/2007

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

FTP是一个非常不安全的协议因为所有的密码和数据都是以明文的形式传输的。通过使用TLS,整个的传输过程都会被加密,因此可以是FTP变得更加的安全。这篇文章将会说明如何在你的Debian Etch系统中设置支持TLS的ProFTPd服务器。

我做这篇教程不能保证完全适合你!

1.前言

在这篇教程中我使用的主机名是server1.example.com,IP地址是192.168.0.100.这些设置可能与你的系统有所不同,所以你可以做适当的修改。

2.安装ProFTPd和OpenSSL

TLS需要使用OpenSSL,要安装ProFTPd和OpenSSL,我们运行下列命令:

apt-get install proftpd openssl

你将会回答下列的提问

Run proftpd from inetd or standalone? <– standalone

接下来打开/etc/proftpd/proftpd.conf文件并且修改UseIPv6从on状态到off状态;否则你将会在启动ProFTPd时出现下列警告:

Starting ftp server: proftpd – IPv6 getaddrinfo ‘server1.example.com’ error: Name or service not known

vi /etc/proftpd/proftpd.conf

[...]

DefaultRoot ~

IdentLookups off

ServerIdent on “FTP Server ready.”

[...]

由于安全的原因,你也可以在你的/etc/proftpd/proftpd.conf文件中添加以下几行(感谢Reinaldo Carvalho的文章;我在这里找到了更多的安全设置说明http://proftpd.org/localsite/Userguide/linked/userguide.html

vi /etc/proftpd/proftpd.conf

[...]

DefaultRoot ~

IdentLookups off

ServerIdent on “FTP Server ready.”

[...]

3.为TLS创建SSL的证书

要使用TLS,我们必须创建一个SSl证书,我把它创建在/etc/proftpd/ssl文件夹下,所以我们要先创建这个文件夹。

mkdir /etc/proftpd/ssl

然后,我们使用下列命令创建SSL证书

openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem

Country Name (2 letter code) [AU]: <– 输入你的国家的名字 (例如, “DE”).
State or Province Name (full name) [Some-State]: <– 输入你的省或者县市的名字.
Locality Name (eg, city) []: <– 输入你的城市名.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <– 输入你的组织名(例如., 你公司的名字).
Organizational Unit Name (eg, section) []: <–输入你组织的部门名(例如”IT 部门”).
Common Name (eg, YOUR name) []: <– 输入你的服务器的域名(例如 “server1.example.com”).
Email Address []: <– 输入你的EMAIL地址.

4 使ProFTPd支持TLS

要使ProFTPd支持TLS,打开/etc/proftpd/proftpd.conf文件并且找到这以<IfModule mod_tls.c>开头的部分

vi /etc/proftpd/proftpd.conf

在类似这里的地方

[...]


<IfModule mod_tls.c>


TLSEngine off


</IfModule>


[...]

修改上面的参数为

[...]

<IfModule mod_tls.c>

TLSEngine on

TLSLog /var/log/proftpd/tls.log

TLSProtocol SSLv23

TLSOptions NoCertRequest

TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem

TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem

TLSVerifyClient off

TLSRequired on

</IfModule>

[...]

如果你的配置中TLSRequired 是on的,你的FTP服务器只支持TLS的链接(这样的话将会阻止任何所有的老的不支持TLS的FTP客户端);注销掉这一行或者把TLSRequired设置为off的话,TLS和不支持TLS的链接都将会被允许,依赖你的FTP客户端的支持。

然后重启ProFTPd

/etc/init.d/proftpd restart

做到这一步,你就可以用FTP客户端试着连接服务器,你应该配置你的FTP客户端使用TLS模式(如果你设置TLSRequired on的话这一步是必不可少的)看下一章节我们如何用FileZilla来做到这一点的。

如果你在使用TLS的过程中遇到问题,你可以查看TLS的日志文件/var/log/proftpd/tls.log.

5 配置FileZilla支持TLS

要使用FTP的TLS功能,你需要你的客户端支持TLS,例如FileZilla.

在FileZilla中,打开服务器管理器:

filezilla

filezilla

选择服务器使用ProFTPd支持TLS;在服务器类型的下拉菜单中,选择文件而非默认的FTP:

2

现在你可以连接你的服务器.如果你第一次这样做,你必须接受服务器的新的SSL证书。

3

如果一切正常的话,你将会登录到服务器

4

6 链接

分类: Debian, FTP, Security 标签: , ,

在CentOS5.3上安装Apache2+PHP5+MySQL(LAMP)

2009年10月11日 21 条评论

版本:1.0

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

文章源地址:http://www.howtoforge.com/installing-apache2-with-php5-and-mysql-support-on-centos-5.3-lamp

最后编辑日期 07/24/2009

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

翻译日期: 08/19/2009

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

LAMP是Linux,Apache,Mysql,PHP的缩写。这篇教程将会为您讲解如何在一台CentOS5.3服务器上安装带有PHP5(mod­_php)和Mysql支持Apache2的网站服务器。

我不保证这篇教程里的内容,完全适合您。

1.首项附注

在这篇教程中,我将使用的主机名是 server1.example.com ,IP地址是192.168.0.100.这些设置可能与你的机器不同,因此你需要在合适的地方更换下。

2.安装MySQL5.0

我们通过执行下面的命令来安装MySQl:

yum install mysql mysql-server

然后我们为MySQL创建系统启动快捷键(这样的话,MySQL就会在系统启动的时候自动启动)并且启动MySQL服务器:

chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start

运行

mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

来为root用户设置一个密码(否则的话任何人都可以访问你的MySQL数据库!)。

3安装Apache2

Apache2 是CentOS的一个可供选择的包,因此我们可以使用下列命令安装它:

yum install httpd

现在配置你的系统使得Apache可以自动启动。。。

chkconfig –levels 235 httpd on

… 并且启动Apache

/etc/init.d/httpd start

现在你可以在你的浏览器中转到http://192.168.0.100,你应该看到Apache2的预留页:

apache preloadpage
apache preloadpage

在CentOS里Apache的默认文档路径的位置是在/var/www/html,配置文件的路径是/etc/httpd/conf/httpd.conf。其他的配置存储在/etc/httpd/conf.d/ 文件夹里。

4 安装PHP5

我们可以使用下列命令来安装PHP5和Apache的PHP5模块:

yum install php

然后我们必须重新启动Apache:

/etc/init.d/httpd start

5测试PHP5/获取PHP5安装的一些信息

网站的默认文档的路径是/var/www/html.我们可以在这个目录里创建一个简单的php文件(info.php)并且在浏览器中调用。这文件将会显示很多关于PHP安装时候的有用的细节,例如PHP的安装的版本。

vi /var/www/html/info.php

<?php

phpinfo();

?>

现在我们可以再浏览器中访问这个文件(例如http://192.168.0.100/info.php):

phpinfo
phpinfo

正如你所看到的,PHP5现在正在工作,正如Server API这一行中显示的一样,它是工作在Apache 2.0 Handler模式下。如果你向下滑动的话,你将会看到所有的模块都可以在PHP5中使用了,MySQL并没有在这里被列出来,这也就意味着PHP5并不支持MySQL。

6 使得PHP5支持MySQL

要使得在PHP中支持MySQL,我们可以安装 php-mysql这个包。最好的办法是安装一些其他的PHP5模块,这些模块可能其他应用程序会用到。你可以使

用search命令寻找可用的PHP5模块:

yum search php

选择你所需要的包,然后通过下列命令安装他们:

yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc

现在重新启动Apache2

/etc/init.d/httpd restart

现在在你的浏览器中重新加载http://192.168.0.100/info.php 这个页面,并再次查看模块部分,你现在就能看到多了很多模块,包括我们刚刚安装的MySQL模块。

mysql module
mysql module

7 phpMyAdmin

phpMyAdmin是一款MySQL数据库web化的管理工具。

第一步我们先使我们的CentOS支持RPMforge repository,因为phpMyAdmin并不在CentOS5.3官方的依赖包里:

对于 x86_64 系统:

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

对于 i386系统

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

现在你就可以使用下列命令来安装phpMyAdmin了:

yum install phpmyadmin

现在我们配置下phpMyAdmin。我们改下Apache的配置文件,使的phpMyAdmin不单单是本机访问。 (取消注释<Directory “/usr/share/phpmyadmin”> 节):

vi /etc/httpd/conf.d/phpmyadmin.conf

#

#  Web application to manage MySQL

#

#<Directory “/usr/share/phpmyadmin”>

#  Order Deny,Allow

#  Deny from all

#  Allow from 127.0.0.1

#</Directory>

Alias /phpmyadmin /usr/share/phpmyadmin

Alias /phpMyAdmin /usr/share/phpmyadmin

Alias /mysqladmin /usr/share/phpmyadmin

下面我们改变下phpMyAdmin的认证方式,从cookie改成http:

vi /usr/share/phpmyadmin/config.inc.php

[...]

/* Authentication type */

$cfg['Servers'][$i]['auth_type'] = ‘http’;

[...]

最后,你就可以通过http://192.168.0.100/phpmyadmin/当问phpMyAdmin了:

phpmyadmin
phpmyadmin

8 Links

分类: Apache, CentOS, MySQL, PHP 标签: , , , ,