KVM通俗的说就是一台服务器当多台用,详细介绍去百度和谷歌。
首先查看服务器是否支持虚拟化
[root@KVM ~]# 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 sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pcl mulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse 4_2 x2apic popcnt tsc_deadline_timer aes xsave 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.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum clean all
yum makecache
安装KVM并检查模块
yum install qemu-kvm -y
[root@KVM ~]# lsmod | grep kvm
kvm_intel 54285 0
kvm 333172 1 kvm_intel
安装管理工具
yum install virt-manager python-virtinst qemu-kvm-tools -y
yum install libvirt libvirt-python -y
物理机配置桥接网卡
[root@KVM network-scripts]# cat ifcfg-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
[root@KVM network-scripts]# cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
BRIDGE=br0
重启网络服务
service network restart
开启路由转发
查看完成后网络配置
[root@KVM ~]# 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/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:143000 errors:0 dropped:0 overruns:0 frame:0
TX packets:44349 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:10882563 (10.3 MiB) TX bytes:16649590 (15.8 MiB)
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:0 dropped:0 overruns:0 frame:0
TX packets:77679 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:71695893 (68.3 MiB) TX bytes:19745769 (18.8 MiB)
Memory:fbe20000-fbe40000
创建空硬盘,相当于物理机的硬盘(公司常用的qcow2格式)
# /home/kvm需要手动创建,一般存放在较大空间目录下,自行修改
[root@KVM ~]# 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/libvirtd start
创建一个新的虚拟机
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 使用的网络
--disk path=/home/kvm/kvm-demo.qcow2 指定磁盘(之前创建的)
通过virsh list --all查看虚拟机状态
[root@KVM ~]# 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 虚拟机随宿主机启动