Rootop 服务器运维与web架构

centos6.5下安装kvm虚拟机

| 暂无评论

selinux关闭,iptables关闭,NetworkManager服务关闭

KVM需要CPU的支持(Intel VT或AMD SVM),在安装KVM之前检查一下CPU是否提供了虚拟技术的支持:
[root@localhost ~]# grep -E -o ‘vmx|svm’ /proc/cpuinfo  #单引号
vmx

安装kvm:
[root@localhost ~]# yum install qemu-kvm libvirt python-virtinst bridge-utils -y
(或者用yum -y groupinstall ‘Virtualization’ ‘Virtualization Client’ ‘Virtualization Platform’ ‘Virtualization Tools’  没测试)
检查kvm模块:
[root@localhost ~]# lsmod | grep kvm
kvm_intel 54285 3
kvm 333172 1 kvm_intel

配置物理机网卡:
/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.118
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=8.8.8.8
BRIDGE=br0
USERCTL=no

配置桥接网卡br0(新建):
/etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.118
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=8.8.8.8
USERCTL=no

保存,退出,重启网络服务:
[root@localhost ~]# service network restart
再通过ifconfig看eth0设备的ip地址已经不显示了。绑定到br0了。通过br0桥接实现kvm虚拟机和外网的通讯。
[root@localhost ~]# ip route list
192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.118
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
169.254.0.0/16 dev br0 scope link metric 1003

[root@localhost ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29579e52 no eth0
vnet0
virbr0 8000.525400b417e2 yes virbr0-nic

[root@localhost ~]# /etc/init.d/libvirt-guests start
[root@localhost ~]# /etc/init.d/libvirtd start

[root@localhost ~]# mkdir /mnt/images #存放虚拟机镜像文件的路径
[root@localhost ~]# qemu-img create -f qcow2 /mnt/images/centos.qcow2 10G #创建一个镜像文件格式为qcow2,大小为10G的虚拟机

[root@localhost ~]# virt-install --connect qemu:///system --name centos --ram 512 --vcpus=1 --disk path=/mnt/images/centos.qcow2,device=disk,format=qcow2,bus=virtio,cache=none,size=73 --cdrom=/smb/CentOS-6.5-x86_64-bin-DVD1.iso --os-type=linux --network bridge=br0,model=virtio,model=e1000 --hvm --os-variant=rhel6 --graphics vnc,listen=0.0.0.0,port=5903 --virt-type=kvm --noautoconsole

开始安装……
创建域…… | 0 B 00:00
域安装仍在进行。您可以重新连接
到控制台以便完成安装进程。
[root@localhost ~]# lsof -i:5903  #vnc端口
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
qemu-kvm 5167 qemu 12u IPv4 25501 0t0 TCP *:5903 (LISTEN)
通过vnc客户端连接控制台以后,继续进行系统安装过程。安装以后会提示重启,然后继续用vnc客户端连接,连接不上。
貌似kvm不会自动重启。我这里手动去启动过程创建的centos虚拟机。

[root@localhost ~]# virsh list #列出当前运行的虚拟机
 Id 名称 状态
----------------------------------------------------

[root@localhost ~]# virsh list --all #列出所有
 Id 名称 状态
----------------------------------------------------
 - centos 关闭

[root@localhost ~]# virsh start centos #启动名称为centos的虚拟机
域 centos 已开始

[root@localhost ~]# virsh list
 Id 名称 状态
----------------------------------------------------
 2 centos running

然后继续通过vnc客户端连接,设置好虚拟机的ip地址即可。完成。
通过登陆centos物理机,ifconfig发现vnet0的mac地址等于虚拟机centos系统的eth0设备mac地址。

libvirt提供了一个图形界面下的管理工具,可以在GUI下安装虚拟机。方法如下:

[root@localhost ~]# yum install -y virt-manager   //安装工具

在 applications-system tools找到 virtual machine manager 可以图形安装。很简单,这里不做演示了。

PS:
转来的其它命令:

virsh list :显示正在运行的虚拟机
virsh list --all:显示所有虚拟机
virsh start vm6 :启动名字为vm6的虚拟机
virsh shutdown vm6:关闭名字为vm6的虚拟机
virsh destroy vm6:强制关闭名字为vm6的虚拟机
virsh undefine vm6 :移除名字为vm6的虚拟机
virsh autostart vm6 :设置vm6虚拟机开机启动

重命名虚拟机
1、导出虚拟机的配置文件
virsh dumpxml vm5 > /etc/libvirt/qemu/reg.xml

2、编辑配置文件更改名字
vi /etc/libvirt/qemu/reg.xml ==>
<name>reg</name>

3、移除原有虚拟机
virsh undefine vm5

4、加载新的虚拟机
virsh define reg.xml

虚拟机创建快照
1、转换磁盘镜像文件格式为qcow2
virsh shutdown vm5
qemu-img convert -f raw -O qcow2 vm5.img vm5qcow2.img
2、创建快照
virsh snapshot-create-as vm5 ok
3、查看快照
virsh snapshot-list vm5
4、恢复快照
virsh snapshot-revert vm5 ok
5、删除快照
virsh snapshot-delete vm5 ok

virt-install命令参数:

--connect=URI
连接到虚拟机管理程序与libvirt的URI,如qemu:///system

-r MEMORY, --ram=MEMORY
分配虚拟机实例(Guest)内存,单位为M

-n NAME, --name=NAME
虚拟机实例(Guest)的名称

--vcpus=VCPUS
配置实例(Guest)CPU数目

--disk path=DISKFILE
指定实例(Guest)存储路径及其镜像

-c CDROM, --cdrom=CDROM
指定安装镜像所在位置和名称, 它可以是一个ISO映像的路径, 它也可以是URL,从中提取/访问的最小引导ISO映像。

--vnc
启用VNC远程管理,该选项不被赞同,可以用"--graphics vnc,..."代替

--vnclisten=VNCLISTEN
可以用"--graphics vnc,listen=LISTEN,..." 代替

--vncport=VNCPORT
可以用"--graphics vnc,port=PORT,..."代替

--noautoconsole
不要自动尝试连接到guest虚拟机控制台。默认行为是启动一个VNC客户端显##示的图形控制台

--os-type=OS_TYPE
优化实例(Guest)配置操作系统类型如linux或windows

--os-variant=OS_VARIANT
优化实例(Guest)配置一个特定的操作系统(如##win7,winxp,win2k3,win2k8,rhel6)

--hvm
要求使用完全虚拟化

--accelerate
加速该选项已经过时可以参考--virt-type qemu

-w NETWORK, --network=NETWORK,opt1=val1,opt2=val2
实例(Guest)连接到主机的网络, 网桥--network bridge=br0,用nat路由出站##--network network=default

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/2645.html

作者:Venus

服务器运维与性能优化

发表回复