Centos 7+KVM(Windows Server 2008 r2 )

KVM虚拟机

               Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理。

               KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。

KVM 架构图:

          

  • Guest:客户机系统,包括CPU(vCPU)、内存、驱动(Console、网卡、I/O 设备驱动等),被 KVM 置于一种受限制的 CPU 模式下运行。
  • KVM:运行在内核空间,提供 CPU 和内存的虚级化,以及客户机的 I/O 拦截。Guest 的 I/O 被 KVM 拦截后,交给 QEMU 处理。
  • QEMU:修改过的被 KVM 虚机使用的 QEMU 代码,运行在用户空间,提供硬件 I/O 虚拟化,通过 IOCTL /dev/kvm 设备和 KVM 交互。

 

 KVM安装:

1.查看计算机CPU虚拟环境

    

2.安装KVM及管理工具

     yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client -y

3.使用 qemu-img 和 qemu-kvm 命令行方式安装 

      3.1 qume-img创建虚拟磁盘 (qcow2格式)

          简介:qcow2 镜像格式是 QEMU 模拟器支持的一种磁盘镜像。它也是可以用一个文件的形式来表示一块固定大小的块设备磁盘。与普通的 raw 格式的镜像相比,有以下特性:

                  1.更小的空间占用

                  2.支持写时复制(cow,copy on write)

                  3.支持快照(snapshot)

                  4.可选择基于 zlib 的压缩方式及AES加密

        qemu-img create -f qcow2 WindowServer.qcow2     30G

1.开始创建虚拟机并安装2008

virt-install --virt-type kvm --name instance-0002 --ram 1024 --cdrom=/system_iso/windows_server_2008_r2_standard_sp1_x64_617598.iso  --boot cdrom --network network=default  --graphics vnc,listen=0.0.0.0 --disk path=/kvm_img/WindowServer.qcow2 --noautoconsole --os-type=windows

 

 打开 virt-manager 

安装系统

  

 分区格式化

   

 

 等待文件复制安装

   

 安装完成

   

 

  其它: 

虚拟机管理工具:
virsh 常用命令:
virsh start x 启动名字为x的非活动虚拟机
virsh list 列出虚拟机
virsh create x.xml 创建虚拟机(创建后,虚拟机立即执行,成为活动主机)
virsh suspend x 暂停虚拟机
virsh resume x 启动暂停的虚拟机
virsh shutdown x 正常关闭虚拟机
virsh destroy x 强制关闭虚拟机
# virsh undefine x 删除虚拟机
virsh dominfo x 显示虚拟机的基本信息
virsh domname 2 显示id号为2的虚拟机名
virsh domid x 显示虚拟机id号
virsh domuuid x 显示虚拟机的uuid
virsh domstate x 显示虚拟机的当前状态
virsh dumpxml x 显示虚拟机的当前配置文件(可能和定义虚拟机时的配置不同,因为当虚拟机启动时
,需要给虚拟机分配id号、uuid、vnc端口号等等)
virsh setmem x 512000 给不活动虚拟机设置内存大小
virsh edit x 编辑配置文件(一般是在刚定义完虚拟机之后)

 

服务器主机网卡不能自动加入br0桥做如下设置:

chkconfig NetworkManager off

chkconfig network on 

systemctl stop NetworkManager

 

虚拟机克隆:

[root@localhost ~]# virt-clone -o template -n logSystem -f /mnt/operation/systemImage/logsystem.qcow2 

 

记录:

1.centos 7 有图形安装
2.找不到字体可以安装 yum install fontconfig


virt-install --name=tomcat_01 --ram 1024 --vcpus=1 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio --vnc --accelerate --force --autostar

 

下面通过一个实际的例子来说明如何计算应该分配的交换空间大小以满足内存的过载使用。


某个服务器有32GB的物理内存,想在其上运行64个内存配置为1GB的客户机。在宿主机中,大约需要4GB大小的内存用于满足系统进程、驱动、磁盘缓存及其他应用程序所需(不包括客户机进程所需内存)。计算过程如下:

客户机所需交换分区为:64 x 1GB + 4GB - 32GB = 36GB。

而根据Redhat的建议[7],对于32GB物理内存的RHEL系统推荐使用8GB的交换分区。

所以,在宿主机中总共就需要建立44GB(36GB+8GB)的交换分区来满足安全地实现客户机内存的过载使用。

下面是在一台Ivy Bridge桌面级的硬件平台上进行的简单实验,可以看出客户机并非开始就在宿主机中占用其启动时配置的内存。

 

Linux中的交换分区的大小分配推荐法则
曾经,有人推荐使用物理内存1/2、1倍、2倍的容量作为SWAP分区的大小。随着计算机内容容量的增大,如果有16G内存的机器,分个16G的Swap空间,似乎感觉有点浪费磁盘空间,而且多数情况下用处也并不大。在Linux系统,我们可以参照Redhat公司为RHEL5、RHEL6推荐的SWAP空间的大小划分原则,在你没有其他特别需求时,可以作为很好的参考依据。

内存小于4GB时,推荐不少于2GB的swap空间;

内存4GB~16GB,推荐不少于4GB的swap空间;

内存16GB~64GB,推荐不少于8GB的swap空间;

 

KVM的性能调优,我们可以从四个方面入手 —— CPU、内存、磁盘IO、网络。

posted @ 2018-05-14 14:09  冬日的温暖  阅读(434)  评论(0编辑  收藏  举报