您的位置:首页 > 其它

kvm虚拟化安装配置手册

2014-03-17 12:38 344 查看
文章源于http://www.opsadmin.com/archives/kvm%E8%99%9A%E6%8B%9F%E5%8C%96%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE%E6%89%8B%E5%86%8C.html

环境
系统 centos6.2-x86_64
IP地址 192.168.0.99

一、KVM宿主机安装:
1、安装条件:
1)含有KVM的Linux 发行版本必须在64bit环境中才能使用。
2)KVM需要一台可以运行最新linux内核的Intel处理器(VT虚拟化技术)或AMD处理器(含SVM安全虚拟机技术的AMD处理器, 也叫AMD-V)。

可以使用如下命令检查:
[root@kvm ~]# grep -Po "(vmx|svm)" --color=always /proc/cpuinfo
vmx
vmx

如果输出的结果包含 vmx,它是 Intel处理器虚拟机技术标志;如果包含 svm则说明是 AMD处理器虚拟机技术标志。如果你甚么都得不到,那应你的系统并没有支持虚拟化的处理,不能使用kvm。

3)打开CPU支持虚拟化(以DELL服务器为例):
服务器启动后,按F2键进入BIOS设置,按上下键找到”PROCESSOR SETTINGS”--〉回车--〉找到“Virtualization Technology”,按空格键,选择ENABLED--〉esc保存退出

2、安装KVM
1)在现有系统中安装 KVM 软件包
这部分论述了要在正常工作的 Centos6.2 系统中安装 KVM 管理程序的步骤。
要在 Centos6.2 中使用虚拟化,您需要有 kvm 软件包。kvm 软件包中含有 KVM 内核模块,它可在默认Linux 内核中提供 KVM 管理程序。
To install the kvm package, run:
# yum install kvm
安装其它推荐的虚拟化软件包:
# yum install virt-manager libvirt libvirt-python python-virtinst

3、安装后验证
1)测试KVM加载成功
运行命令 lsmod | grep kvm 检查 KVM 模块是否成功安装。如果结果类似于以下输出,那么 KVM 模块已成功安装:
[root@kvm ~]# lsmod | grep kvm
kvm_intel 50380 6
kvm 305113 1 kvm_intel

2)确认KVM安装成功

关闭SELinux:
修改/etc/selinux/config文件中的SELINUX=disabled,然后重启。
如果不想重启系统,使用命令setenforce 0
———————————————————————————————————
修改虚拟化配置文件:vi /etc/libvirt/libvirtd.conf, 不然对应服务不能启动
listen_tcp = 1
mdns_adv = 0

[root@kvm ~]# virsh -c qemu:///system list
Id Name State
———————————-
因本机初始安装,所以虚拟机列表为空,如果在这里显示的是一个错误的信息,说明有些东西出现了问题。

4、宿主机网络设置

1)安装必要的软件
宿主服务器安装完后先要设定网络,一般设置为bridge模式,即桥接模式,桥接模式需要手动设置。
首先安装bridge-utils和tunctl
yum install bridge-utils tunctl
然后查看tun模块是否已经被加载
lsmod | grep tun
如果没有,则需要手动加载tun模块
modprobe tun

2)修改宿主服务器网卡文件
方法1:使用命令行配置
[root@kvm ~]#cd /etc/sysconfig/network-scripts/
[root@kvm network-scripts]#cp ifcfg-eth0 ifcfg-br0

修改拷贝的文件配置
[root@kvm network-scripts]# sed -i -e ‘s/DEVICE=eth0/DEVICE=br0/’
/etc/sysconfig/network-scripts/ifcfg-br0
echo TYPE=Bridge >>/etc/sysconfig/network-scripts/ifcfg-br0
echo BRIDGE=br0 >> /etc/sysconfig/network-scripts/ifcfg-eth0

方法2:手动配置
配置之后文件为:
[root@kvm ~]#cd /etc/sysconfig/network-scripts/
[root@kvm network-scripts]# vi ifcfg-br0
填入:
DEVICE=br0
ONBOOT=yes
TYPE=Bridge
IPADDR=192.168.0.99
NETMASK=255.255.255.0
GATEWAY=192.168.0.1

[root@kvm network-scripts]# vi ifcfg-eth0
填入:
DEVICE=eth0
HWADDR=18:03:73:CC:23:2F
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
BRIDGE=br0

配置好好,重启宿主网卡:
Service network restart

如果有多个网卡需要使用桥接方式,按此方法,依次增加

5、防火墙设置

Vi /etc/sysconfig/iptables
-I FORWARD -m physdev –physdev-is-bridged -j ACCEPT
Service iptables restart

6、系统参数设置

Vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

Sysctl -p

7、重启libvirt
Service libvirtd restart

二、创建虚拟机

1. 建立虚拟机磁盘镜像文件qcow2格式是kvm支持的标准格式,raw格式为虚拟磁盘文件通用格式。有测试数据表明raw格式的I/O性能略高于qcow2格式,但是在加密,容量,快照方面qcow2格式有优势
qemu-img create -f qcow2 test.qcow2 20G  //建立qcow2格式磁盘文件

qemu-img create -f raw test.raw 20G //建立raw格式磁盘文件

qemu-img info test.qcow2 //查看已经创建的虚拟磁盘文件

2. 建立虚拟机示例创建1G内存、2核CPU、单网卡,磁盘和网络驱动使用virtio的linux虚拟机
virt-install --name rhel5.4 \

--boot network,cdrom,menu=on \

--ram 1024 --vcpus=2 \

--os-variant=rhel5.4 \

--accelerate \

--cdrom=/troodon/ISO/CentOS-6.2-x86_64-bin-DVD1.iso \

--disk path=/troodon/KVM/test01/test01.img,size=30,format=qcow2,bus=virtio \

--bridge=br0,model=virtio --mac=54:52:00:01:79:e9 \

--vnc --vncport=5991 --vnclisten=0.0.0.0.

创建8G内存、4核CPU、双网卡,磁盘和网络驱动使用virtio的linux虚拟机
virt-install --name rhel5.2 \

--boot network,cdrom,menu=on \

--ram 8192 --vcpus=4 \

--os-variant=rhel6 \

--cdrom=/troodon/ISO/CentOS-6.2-x86_64-bin-DVD1.iso \

--disk path=/troodon/KVM/test01/test01.img,format=qcow2,bus=virtio \

--bridge=br0,model=virtio --mac=54:52:00:0b:8b:79 \

--bridge=br1,model=virtio --mac=54:52:00:7e:8e:cd \

--vnc --vncport=5991 --vnclisten=0.0.0.0

创建1G内存、1核CPU、单网卡,磁盘和网络驱动使用virtio的windows虚拟机
virt-install --name win2k3 \

--ram 1024 --vcpus=1 \

--os-variant=win2k3 \

--accelerate \

--cdrom=/troodon/ISO/Windows/2003/win2k3sp1.iso \

--disk path=/troodon/KVM/win2k3/win2k3.img,size=5,format=qcow2,bus=virtio \

--bridge=br0,model=virtio \

--vnc --vncport=5991 --vnclisten=0.0.0.0

一些解释:
virtio驱动对于磁盘和网络I/O性能有很大提升(默认qemu驱动),linux虚拟机安装完成后自动加载virtio驱动,windows虚拟机需要下载virtio驱动后安装--mac参数指定网卡mac地址,如果不指定系统会自动分配虚拟机配置文件存储在 /etc/libvirt/qemu 目录,配置文件为XML格式开机自启动的虚拟机配置可以通过链接放到 /etc/libvirt/qemu/autostart 目录,配置文件为XML格式3. 虚拟机安装指令 virt-install 简介
--name 指定虚拟机名称,virsh操作指定虚拟机时所需要的参数,不可以重复。

--ram 分配内存大小,安装完成后可以用 virsh 调整。

--vcpus 分配CPU核心数,最大与实体机CPU核心数相同,安装完成后也可以用 virsh 调整。

--disk 指定虚拟机镜像, size 指定分配大小单位为G。

--network 网络类型,此处用的是默认,一般用的应该是 bridge 桥接。

--os-variant 指定操作系统类型,此处使用的是标准Linux 2.6,其他的可以通过 man virt-install 详细查看。

--accelerate 加速,具体什么原理还不太清楚。

--cdrom 指定安装镜像所在。

--vnc 启用VNC远程管理,一般安装系统都要启用。

--vncport 指定 VNC 监控端口,默认端口为 5900,端口不能重复。

--vnclisten 指定 VNC 绑定IP,默认绑定127.0.0.1,这里将其改为 0.0.0.0 以便可以通过外部连接。

4. 虚拟机管理指令 virsh 简介
virsh list 列出当前虚拟机列表,不包括未启动的

virsh list --all 列出所有虚拟机,包括所有已经定义的虚拟机

virsh start domain-name 启动指定虚拟机

virsh shutdown domain-name 停止指定虚拟机

virsh reboot domain-name 重新启动指定虚拟机

virsh autostart domain-name 指定虚拟机开机自动启动

5.通过VNC安装虚拟机
下载windows客户端

http://sourceforge.net/projects/tigervnc/files/

根据vncPort连接进入后和正常安装系统一样
安装完成后用virsh start domain-name 启动指定虚拟机
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: