第一步:修改网卡配置文件并重启网络服务:
cd /etc/sysconfig/network-scripts/
[root@KVM3 network-scripts]# cat ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
TYPE=Bridge
BOOTPROTO=static
#HWADDR=F0:1F:AF:DA:7A:55
#IPADDR=0.0.0.0
#NETMASK=255.255.255.0
[root@KVM3 network-scripts]# cat ifcfg-br1
DEVICE="br1"
ONBOOT="yes"
TYPE=Bridge
BOOTPROTO=static
#HWADDR=F0:1F:AF:DA:7A:56
IPADDR=192.168.20.248
NETMASK=255.255.255.0
[root@KVM3 network-scripts]# cat ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet
BRIDGE=br0
[root@KVM3 network-scripts]# cat ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
TYPE=Ethernet
BRIDGE=br1
[root@KVM3 network-scripts]# /etc/init.d/network restart
查看网卡配置
[root@KVM3 network-scripts]# ip addr
1: lo:
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0:
link/ether f0:1f:af:da:7a:55 brd ff:ff:ff:ff:ff:ff
inet6 fe80::f21f:afff:feda:7a55/64 scope link
valid_lft forever preferred_lft forever
3: eth1:
link/ether f0:1f:af:da:7a:56 brd ff:ff:ff:ff:ff:ff
inet6 fe80::f21f:afff:feda:7a56/64 scope link
valid_lft forever preferred_lft forever
4: br0:
link/ether f0:1f:af:da:7a:55 brd ff:ff:ff:ff:ff:ff
inet6 fe80::f21f:afff:feda:7a55/64 scope link
valid_lft forever preferred_lft forever
5: br1:
link/ether f0:1f:af:da:7a:56 brd ff:ff:ff:ff:ff:ff
inet 192.168.20.248/24 brd 192.168.20.255 scope global br1
inet6 fe80::f21f:afff:feda:7a56/64 scope link
valid_lft forever preferred_lft forever
第二步:配置Centos6官方的yum源,
[root@KVM3 yum.repos.d-bak]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
[root@KVM3 yum.repos.d-bak]# cat CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[root@KVM3 yum.repos.d-bak]# cat CentOS-Debuginfo.repo
# CentOS-Debug.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# All debug packages from all the various CentOS-5 releases
# are merged into a single repo, split by BaseArch
#
# Note: packages in the debuginfo repo are currently not signed
#
[debug]
name=CentOS-6 - Debuginfo
baseurl=http://debuginfo.centos.org/6/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-6
enabled=0
[root@KVM3 yum.repos.d-bak]# cat CentOS-Media.repo
# CentOS-Media.repo
#
# This repo can be used with mounted DVD media, verify the mount point for
# CentOS-6. You can use this repo and yum to install items directly off the
# DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
# yum --enablerepo=c6-media [command]
#
# or for ONLY the media repo, do this:
#
# yum --disablerepo=\* --enablerepo=c6-media [command]
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[root@KVM3 yum.repos.d-bak]# cat CentOS-Vault.repo
# CentOS-Vault.repo
#
# CentOS Vault holds packages from previous releases within the same CentOS Version
# these are packages obsoleted by the current release and should usually not
# be used in production
#-----------------
[C6.0-base]
name=CentOS-6.0 - Base
baseurl=http://vault.centos.org/6.0/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[C6.0-updates]
name=CentOS-6.0 - Updates
baseurl=http://vault.centos.org/6.0/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[C6.0-extras]
name=CentOS-6.0 - Extras
baseurl=http://vault.centos.org/6.0/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[C6.0-contrib]
name=CentOS-6.0 - Contrib
baseurl=http://vault.centos.org/6.0/contrib/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[C6.0-centosplus]
name=CentOS-6.0 - CentOSPlus
baseurl=http://vault.centos.org/6.0/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
#-----------------
[C6.1-base]
name=CentOS-6.1 - Base
baseurl=http://vault.centos.org/6.1/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[C6.1-updates]
name=CentOS-6.1 - Updates
baseurl=http://vault.centos.org/6.1/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[C6.1-extras]
name=CentOS-6.1 - Extras
baseurl=http://vault.centos.org/6.1/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[C6.1-contrib]
name=CentOS-6.1 - Contrib
baseurl=http://vault.centos.org/6.1/contrib/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[C6.1-centosplus]
name=CentOS-6.1 - CentOSPlus
baseurl=http://vault.centos.org/6.1/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
#-----------------
[C6.2-base]
name=CentOS-6.2 - Base
baseurl=http://vault.centos.org/6.2/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[C6.2-updates]
name=CentOS-6.2 - Updates
baseurl=http://vault.centos.org/6.2/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[C6.2-extras]
name=CentOS-6.2 - Extras
baseurl=http://vault.centos.org/6.2/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[C6.2-contrib]
name=CentOS-6.2 - Contrib
baseurl=http://vault.centos.org/6.2/contrib/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[C6.2-centosplus]
name=CentOS-6.2 - CentOSPlus
baseurl=http://vault.centos.org/6.2/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
#-----------------
[C6.3-base]
name=CentOS-6.3 - Base
baseurl=http://vault.centos.org/6.3/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[C6.3-updates]
name=CentOS-6.3 - Updates
baseurl=http://vault.centos.org/6.3/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[C6.3-extras]
name=CentOS-6.3 - Extras
baseurl=http://vault.centos.org/6.3/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[C6.3-contrib]
name=CentOS-6.3 - Contrib
baseurl=http://vault.centos.org/6.3/contrib/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[C6.3-centosplus]
name=CentOS-6.3 - CentOSPlus
baseurl=http://vault.centos.org/6.3/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[root@KVM3 yum.repos.d-bak]# yum clean all
第三步:安装所需要的虚拟化包
[root@KVM3 network-scripts]# yum grouplist
[root@KVM3 network-scripts]# yum groupinstall -y 'Virtualization' 'Virtualization Client' 'Virtualization Platform' 'Virtualization Tools'
第四步:ntsysv 管理开机自启动服务
第五步:关闭selinux服务
[root@KVM3 yum.repos.d-bak]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
第六步:拷贝KVM虚拟主机镜像文件
mkdir -p /home/kvm/kvm_p_w_picpath/
cd /home/kvm/kvm_p_w_picpath/
nc -l 5555 | tar xf -
第七步:拷贝KVM虚拟主机的XML文件
cd /etc/libvirt/qemu
nc -l 5555 | tar xf -
[root@KVM3 ~]# cat /etc/libvirt/qemu/base.xml
#镜像的位置
#镜像的位置
[root@KVM3 ~]#
重启服务:/etc/init.d/libvirtd restart
第八步:克隆虚拟主机
virt-clone -o base --name=web20-203 -f /home/kvm/kvm_p_w_picpath/web20-203-sys.img -f /home/kvm/kvm_p_w_picpath/web20-203-data.img
如果不想挂在data盘,需做如下操作:
1,假设90.169是一块有data盘的虚拟机,
virsh # edit test_90_169
将如下行注释掉:
在90.169上
umount /home/
修改/etc/fstab,注释掉如下行:
#UUID=5aecd5f9-47ac-435c-b59b-6ef991aded21 /home ext4 defaults 1 2
userdel -r wuxy #如果有其他用户,类似删除然后重建
useradd -m wuxy
shutdown -h now
2,使用90.169作为模板clone新的模板base2
virt-clone -o test_90_169 -n base2 -f /home/kvm/kvm_p_w_picpath/base2-system.img
virsh
克隆VM
1.克隆vm
virt-clone -o vm1 --name=vm5 -f /home/kvm/kvm_p_w_picpath/vm5.img -f /home/kvm/kvm_p_w_picpath/vm-data.img
2.
virsh:
shutdown vm5
需要虚拟机启动acpi
console vm5
需要虚拟机终端从定向道serial,配置方法(如下是base模板主机的grub.conf):
[root@20-net ~]# cat /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/vda3
# initrd /initrd-[generic-]version.img
#boot=/dev/vda
default=0
timeout=5
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-431.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=5f0ec9a4-b564-410b-a36a-663c1156c89a rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet rd_NO_DM biosdevname=0 serial=tty0 console=ttyS0,115200n8
initrd /initramfs-2.6.32-431.el6.x86_64.img
destroy vm5
强制关闭虚拟机,不启动acpi,也可以关掉
start vm5
启动虚拟机
edit vm5
编辑虚拟机配置文件
dominfo vm5
查看虚拟机信息
setmem vm5 512
开机状态设置内存
list --all
虚拟机
###########
define xml
undefine vm5 会同时删除虚拟机对应的xml配置文件
#####
qemu-img info vm5.img 查看映像格式
qemu-img create -f raw vm5.img 4G
qemu-img create -f qcow2 vm5.img 4G
raw 转换qcow2
qemu-img convert -f raw centos.img -O qcow2 centos.qcow2