koflover 发表于 2018-10-20 10:54:21

KVM系列之KVM Server 部署

  介绍
  什么是虚拟化?

[*]  通过虚拟化工具,将真实的硬件资源模拟划分成更少的虚拟硬件资源。
[*]  虚拟话技术分为软件模拟、虚拟化层翻译、容器虚拟化。
[*]  虚拟化层翻译分为


[*]  软件模拟出所有的硬件设备又称软件全虚拟化,例如:qemu
[*]  改造系统内核加以虚拟化层翻译,又叫半虚拟化,例如:Xen
[*]  硬件支持虚拟化层翻译,通过VMM(虚拟机监视器)将硬件分配和管理,又称硬件全虚拟化。
  半虚拟化/全虚拟化

[*]  半虚拟化(para virtualization):半虚拟化宿主机(虚拟机承载主机/母机)和客户机(虚拟机/子机)都需要修改操作系统的内核,客户机知道宿主机的存在,两者之间需要协同合作,优化I/O协议使客户机操作系统可以和VMM紧密结合,近似于物理机的速度,因此性能高于全虚拟化。例如:Xen
[*]  全虚拟化(full virtualization):全虚拟化为客户机提供完整的虚拟硬件资源,宿主机与客户机都不需要修改系统内核,也不需要知道宿主机的存在。例如:KVM、VMware
  KVM简介

[*]  KVM全称kernel virtual machine 是针对包含虚拟化扩展(Intel VT或AMD-V)的x86硬件上的完全原生的虚拟化解决方案。
[*]  是以色列Qumranet开发,基于Linux内核。2008年9月4日被RedHat收购。
[*]  rhel5/centos5默认是Xen,rhel6/centos6之后版本KVM代替Xen。
  KVM架构
  KVM驱动:作为Linux内核的一个模块,主要负责虚拟机的创建、虚拟内存分配、VCPU寄存器的读写以及运行。
  Qemu:模拟虚拟机用户空间组件。
  Libvirt/virsh:解决qemu效率不高,RedHat为KVM开发的辅助工具,例如virsh、libguestfs.
  Virt-manager:是一套由Python开发编写的虚拟机管理图形界面,用户可以通过它操作不同虚拟机,利用libvirt的API实现。
  qemu官网:http://www.qemu.org/
  kvm官网:https://www.linux-kvm.org
  KVM Server 部署
  实验环境

  系统版本:CentOS Linux>  系统位数:x86_64
  硬件支持:CPU开启虚拟化支持
  查看虚拟化支持
  # egrep '(vmx|svm)' --color=always /proc/cpuinfo
  注意:信息有输出表示支持虚拟化,否则就不支持虚拟化,无法安装KVM。
  关闭防火墙
  # systemctl stop firewalld.service
  # systemctl disable firewalld.service
  关闭SELinux
  # setenforce 0#临时关闭
  # sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config#永久
  安装KVM Server
  # yum install -y virt-*libvirtbridge-utils qemu-imglibvirt-client
  说明:
  libvirt-client #libvirt的客户端,宿主机关机通知虚拟机关机,避免强制关机造成数据丢失。
  gpxe-roms-qemu #虚拟机IPXE启动固件,支持虚拟机的网络启动
  libvirt-python #为python提供API
  python-virtinst #一套python虚拟机安装工具
  qemu-kvm#KVM在用户空间运行程序
  virt-manager#基于libvirt的图形化虚拟机管理软件
  libvirt#用于管理虚拟机,提供一套虚拟机管理API
  virt-viewer#显示虚拟机的控制台console
  virt-top #类似top,查看资源使用情况
  virt-what #虚拟机内部执行,查看虚拟机的虚拟化平台
  qemu-img#用于操作虚拟机硬盘景象的创建、查看、格式转化
  检查KVM模块
  # lsmod |grep kvm
  kvm_intel             1701810
  kvm                   5546091 kvm_intel
  irqbypass            135031 kvm
  创建软连接
  # ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
  启动服务
  # systemctl start libvirtd
  查看版本
  # virsh --version
  2.0.0
  # virt-install --version
  1.4.0
  # qemu-kvm --version
  QEMU emulator version 1.5.3 (qemu-kvm-1.5.3-126.el7_3.5)...
  创建第一台虚拟机
  创建虚拟机磁盘
  # qemu-img create /data/pool/windows_2k3 -f qcow2-opreallocation=metadata   30G
  创建虚拟主机
  # virt-install -n windows2k3 -r 1024 -vcpus=1-c /data/iso/windows_server_2003.iso --disk path=/data/pool/windows_2k3,format=qcow2,size=30,bus=ide--hvm --os-type=windows--vnc --vncport 5901 --network network=default --force --autostart
  说明:
  -n:定义虚拟机在名称;
  -r:设置分配1G内存大小;
  -vcpus:设置分配1个CPU;
  -c:指定系统安装镜像位置;
  --disk path:指定虚拟机存储设备及其属性;
  format:指定磁盘映像格式,如raw、qcow2、vmdk;
  size:指定磁盘大小;
  bus:指定磁盘类型,如ide、scsi、virtio;
  --hvm:当物理机同时支持全虚拟化和半虚拟化时,指定使用全虚拟化;
  --os-type=windows:指定系统类型,如Windows、linux;
  --vnc :指定使用VNC服务;
  --vncport :指定VNC端口;
  --network network:指定网络类型为默认(NAT);
  --force:禁止交互模式,自动回答yes;
  --autostart:指定虚拟机随物理启动后自动启动;
  注意:Windows类系统需要设置为ide,否则安装时提示找不到硬盘。
  连接VNC

  根据Windows server 2003系统安装步骤,进行系统安装。不做过多介绍。

  虚拟机网络配置

  检查网络

  注意:还需要在虚拟机承载主机上配置相应的防火墙规则,才能实现访问网络,网上有很多教程,我就不再啰嗦了。
  FQA
  Q:如何开启虚拟化支持?
  A:在BIOS中设置虚拟机开启。
  Q:VMware如何开启虚拟化支持?
  A:虚拟机设置--处理器--勾选虚拟化(虚拟机关机状态操作)。
  Q:KVM 安装后无法查看到模块。
  A:检查安装是否正确,或重启系统在查看模块。
  Q:创建linux虚拟机时提示,无法找到硬盘。
  A:原因可能是创建虚拟机磁盘格式为ide,重新创建格式为scsi格式的虚拟机磁盘。

页: [1]
查看完整版本: KVM系列之KVM Server 部署