KVM搭建与应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KVM搭建与应用相关的知识,希望对你有一定的参考价值。

KVM通俗的说就是一台服务器当多台用,详细介绍去百度和谷歌。

 

首先查看服务器是否支持虚拟化

 

[[email protected]~]# grep -E ‘(vmx|svm)‘ /proc/cpuinfo --color

反馈如下:

  flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov p    at pse36 clflush dts acpi mmx fxsr sse sse2ss ht tm pbe syscall nx pdpe1gb rdtscp lm    constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tscaperfmperf pni pcl    mulqdq dtes64monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse    4_2 x2apic popcnt tsc_deadline_timer aesxsave avx f16c rdrand lahf_lm arat epb xsave   opt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms

 

备注:如果是使用VMware测试搭建,需要开启虚拟化支持:右击虚拟机-设置-处理器-虚拟化引擎首选模式为Intel VT-x/EPT 或 AMD-V/RVI,并勾选虚拟化"Intel VT-x/EPT 或AMD-V/RVI",之后内存最好大于2G,CPU最好大于2. 

 

 

安装阿里云源

wget -O /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-6.repo

yum clean all

yum makecache

 

安装KVM并检查模块

yuminstallqemu-kvm -y

[[email protected]~]# lsmod | grep kvm

kvm_intel              54285  0

kvm                   333172  1 kvm_intel

 

 

安装管理工具

yuminstallvirt-manager python-virtinst qemu-kvm-tools -y

yuminstalllibvirt libvirt-python -y

 

 

物理机配置桥接网卡

[[email protected]]# catifcfg-br0

DEVICE=br0

TYPE=Bridge

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=none(也可以设置成dhcp,按需配置)

DNS2=114.114.114.114

DNS1=202.106.0.20

IPADDR=172.16.10.189

NETMASK=255.255.255.0

GATEWAY=172.16.10.1

 

[[email protected]]# catifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

BRIDGE=br0

 

 

重启网络服务

servicenetwork restart

开启路由转发

查看完成后网络配置

[[email protected]~]# ifconfig

br0       Link encap:Ethernet  HWaddr 70:E2:84:08:EB:AE 

          inet addr:172.16.10.189  Bcast:172.16.10.255  Mask:255.255.255.0

          inet6 addr:fe80::72e2:84ff:fe08:ebae/64Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:143000 errors:0dropped:0overruns:0frame:0

          TX packets:44349 errors:0dropped:0overruns:0carrier:0

          collisions:0 txqueuelen:0

          RX bytes:10882563 (10.3MiB)  TX bytes:16649590 (15.8MiB)

 

eth0      Link encap:Ethernet  HWaddr 70:E2:84:08:EB:AE 

          inet6 addr: fe80::72e2:84ff:fe08:ebae/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:189220 errors:0dropped:0overruns:0frame:0

          TX packets:77679 errors:0dropped:0overruns:0carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:71695893 (68.3MiB)  TX bytes:19745769 (18.8MiB)

          Memory:fbe20000-fbe40000

         

         

创建空硬盘,相当于物理机的硬盘(公司常用的qcow2格式)
# /home/kvm需要手动创建,一般存放在较大空间目录下,自行修改

[[email protected]~]# qemu-img create -f qcow2 /home/kvm/kvm-demo2.qcow2 100G

Formatting‘/home/kvm/kvm-demo2.qcow2‘, fmt=qcow2 size=107374182400 encryption=off cluster_size=65536

 

上传磁盘镜像/home/kvm/CentOS-6.5.iso(可使用winscp上传,这个是装机用的光盘,因为配置了桥接网卡,同样可以使用PXE或者cobbler进行装系统)

启动libvirt

/etc/init.d/libvirtdstart

 

 

创建一个新的虚拟机

  virt-install --virt-type kvm --name kvm-demo --boot network,cdrom,menu=on--ram 512 --cdrom=/home/kvm/CentOS-6.5.iso --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel6 --accelerate--disk path=/home/kvm/kvm-demo.qcow2,size=5,format=qcow2,bus=virtio --bridge=br0,model=virtio --autostart

  解释:

    --virt-type kvm                         类型

    --name                            名字

    --ram                            内存

    --cdrom=/home/kvm/CentOS-6.5.iso    安装使用的镜像

    --network                        使用的网络

--diskpath=/home/kvm/kvm-demo.qcow2    指定磁盘(之前创建的) 

 

    virsh setvcpus kvm-test --maximum 8 --config

添加cpu会用到这条命令

 

通过virshlist --all查看虚拟机状态

[[email protected]~]# virsh list --all

 Id   Name                          State

----------------------------------------------------

 12    kvm-demo                       running

 

 使用VNC登录查看,并进行装机(VNC端口默认是从5900开始)

    技术分享

登录上去以后即可进行装机。

装机完成以后再次进行连接,界面如下

技术分享

登录到系统查看IP

技术分享

至此KVM虚拟机搭建完成,可以使用Xshell连接上去,之后就和普通服务器没什么大的区别了。

常用virsh指令

1)virsh list 列出当前虚拟机列表,不包括未启动的

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

3)virsh destroy vm-name 关闭虚拟机

4)virsh start vm-name 启动虚拟机

5)virsh edit vm-name 编辑虚拟机xml文件

6)virsh undefine vm-name 删除虚拟机

7)virsh shutdown vm-name 停止虚拟机

8)virsh reboot vm-name 重启虚拟机

9)virsh autostart vm-name 虚拟机随宿主机启动

技术分享

++++++++++++++++++++++++++++++创建和拍摄快照++++++++++++++++++++++++++++++++++

 

KVM快照方法常用的是qemu-img snapshot 和virsh snapshot

经过我多次试验qemu-imgsnapshot -c 快照名 域名,此种方法已经不能再百分百成功创建快照,创建后可能导致虚拟机无法启动,报Filetoo large的错误,并且未找到解决办法。下面将介绍virsh snapshot创建还原快照的方法。

 

查看KVM虚拟机运行状态

[[email protected]~]# virsh list

 Id    名称                         状态

----------------------------------------------------

 5     kvm-test                       running

 

首先创建一个纯净版的快照,没有安装任何服务

[[email protected]~]#virsh snapshot-create-as --domain kvm-test --name kvm_clean

Domainsnapshot kvm_clean created

domain是虚拟机的名字 name是快照的名字

备注:创建快照的速度根据服务器的配置会有所不同,在创建快照的同时,KVM虚拟机会处于暂时暂停的状态(创建快照完成后会自动转换为running),如果是线上服务器,请自行定夺。

 

 

查看创建的快照

[[email protected]~]# virsh snapshot-list kvm-test

 名称               Creation Time             状态

------------------------------------------------------------

 kvm_clean            2016-01-2515:07:14 +0800 running

登录到kvm虚拟机 kvm-test中

安装Apache服务并启动

yuminstallhttpd -y ; echo"Test KVM snapshot">> /var/www/html/index.html ; /etc/init.d/httpd restart

 

访问测试

[[email protected]~]# curl 127.0.0.1

TestKVM snapshot

 

再次创建快照

[[email protected]~]# virsh snapshot-create-as --domain kvm-test --name kvm_httpd

Domainsnapshot kvm_httpd created

 

 

再次查看快照

[[email protected]~]# virsh snapshot-list kvm-test

 名称               Creation Time             状态

------------------------------------------------------------

 kvm_clean            2016-01-2515:07:14 +0800 running

 kvm_httpd           2016-01-2516:03:52 +0800 running

 

还原测试:

    首先还原至纯净版,未安装Apache服务

    关闭虚拟机(也可开机还原,不建议)

    [[email protected] ~]# virsh snapshot-revertkvm-test kvm_clean

    登录到虚拟机查看能否访问httpd服务

    [[email protected] ~]# curl 127.0.0.1

    curl: (7) couldn‘t connect to host

    无法访问,说明还原成功,再次还原到已安装httpd服务的状态

    [[email protected] ~]# virsh snapshot-revertkvm-test kvm_httpd

    访问测试

    [[email protected] ~]# curl 127.0.0.1

    Test KVM snapshot

    还原成功。

   

 

 

+++++++++++++++++++++++++++++++在线增加CPU个数+++++++++++++++++++++++++++++++

 

查看为增加之前的逻辑CPU个数

[[email protected]~]# cat /proc/cpuinfo | grep process | wc -l

2

 

增加CPU一条命令即可

[[email protected]~]# virsh setvcpus kvm-test 3

 

再次查看

[[email protected]~]# cat /proc/cpuinfo | grep process | wc -l

3

 

 

+++++++++++++++++++++++++++++++在线增加内存+++++++++++++++++++++++++++++++++++

查看现有的内存

[[email protected]~]# free -m | grep Mem | awk‘{print $2}‘

628

 

增加内存至1024M同样一条命令

[[email protected]~]# virsh setmem kvm-test 1024M

 

再次查看

[[email protected]~]# free -m | grep Mem | awk‘{print $2}‘

852

 

Over

技术分享

 


本文出自 “小看博客论坛” 博客,请务必保留此出处http://xiaokan.blog.51cto.com/10445299/1969157

以上是关于KVM搭建与应用的主要内容,如果未能解决你的问题,请参考以下文章

部署KVM虚拟化平台------搭建

搭建KVM服务器

快速搭建 kvm web 管理工具 WebVirtMgr

在linux上基于KVM虚拟机搭建lamp

kvm虚拟化平台搭建

KVM虚拟化平台的基础知识及搭建部署!