KVM作为linux内核的一部分,有着无法比拟的优势,相信KVM的大范围企业应用指日可待。

一、KVM宿主服务器环境配置

1. 查看CPU是否支持VT技术

  1. cat /proc/cpuinfo | egrep 'vmx|svm'
  2. flags : fpu vme de pse tsc msr pae mce cx8 apic
  3. mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2
  4. ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts
  5. rep_good aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16
  6. xtpr pdcm dca sse4_1 lahf_lm dts tpr_shadow vnmi flexpriority

如果执行指令后有类似返回,则证明CPU支持VT

2. 安装KVM组件

  1. yum groupinstall Virtualization
  2. yum groupinstall "Virtualization Platform"

3. 检查KVM模块加载

  1. lsmod | grep kvm
  2. kvm_amd                37434  4
  3. kvm                   292815  1 kvm_amd

如果执行指令后有类似返回,则证明KVM模块加载正常,否则检查BIOS中是否开启了CPU VT支持

4. 安装virtsh virt-install 管理工具

  1. yum install libvirt-client python-virtinst

二、虚拟机安装

1. 建立虚拟机磁盘镜像文件

qcow2格式是kvm支持的标准格式,raw格式为虚拟磁盘文件通用格式。有测试数据表明raw格式的I/O性能略高于qcow2格式,但是在加密,容量,快照方面qcow2格式有优势

  1. qemu-img create -f qcow2 test.qcow2 20G //建立qcow2格式磁盘文件
  2. qemu-img create -f raw test.raw 20G  //建立raw格式磁盘文件
  3. qemu-img info test.qcow2 //查看已经创建的虚拟磁盘文件

2. 建立虚拟机示例

创建1G内存、2核CPU、单网卡,磁盘和网络驱动使用virtio的linux虚拟机

  1. virt-install --name rhel5.4 \
  2. --boot network,cdrom,menu=on \
  3. --ram 1024 --vcpus=2 \
  4. --os-variant=rhel5.4 \
  5. --accelerate \
  6. --cdrom=/troodon/ISO/CentOS-6.2-x86_64-bin-DVD1.iso \
  7. --disk path=/troodon/KVM/test01/test01.img,size=30,format=qcow2,bus=virtio \
  8. --bridge=br0,model=virtio --mac=54:52:00:01:79:e9 \
  9. --vnc --vncport=5991 --vnclisten=0.0.0.0.

创建8G内存、4核CPU、双网卡,磁盘和网络驱动使用virtio的linux虚拟机

  1. virt-install --name rhel5.2 \
  2. --boot network,cdrom,menu=on \
  3. --ram 8192 --vcpus=4 \
  4. --os-variant=rhel6 \
  5. --cdrom=/troodon/ISO/CentOS-6.2-x86_64-bin-DVD1.iso \
  6. --disk path=/troodon/KVM/test01/test01.img,format=qcow2,bus=virtio \
  7. --bridge=br0,model=virtio --mac=54:52:00:0b:8b:79 \
  8. --bridge=br1,model=virtio --mac=54:52:00:7e:8e:cd \
  9. --vnc --vncport=5991 --vnclisten=0.0.0.0

创建1G内存、1核CPU、单网卡,磁盘和网络驱动使用virtio的windows虚拟机

  1. virt-install --name win2k3 \
  2. --ram 1024 --vcpus=1 \
  3. --os-variant=win2k3 \
  4. --accelerate \
  5. --cdrom=/troodon/ISO/Windows/2003/win2k3sp1.iso \
  6. --disk path=/troodon/KVM/win2k3/win2k3.img,size=5,format=qcow2,bus=virtio \
  7. --bridge=br0,model=virtio \
  8. --vnc --vncport=5991 --vnclisten=0.0.0.0

一些解释:

virtio驱动对于磁盘和网络I/O性能有很大提升(默认qemu驱动),linux虚拟机安装完成后自动加载virtio驱动,windows虚拟机需要下载virtio驱动后安装

--mac参数指定网卡mac地址,如果不指定系统会自动分配

虚拟机配置文件存储在 /etc/libvirt/qemu 目录,配置文件为XML格式

开机自启动的虚拟机配置可以通过链接放到 /etc/libvirt/qemu/autostart 目录,配置文件为XML格式

3. 虚拟机安装指令 virt-install 简介

  1. --name 指定虚拟机名称,virsh操作指定虚拟机时所需要的参数,不可以重复。
  2. --ram 分配内存大小,安装完成后可以用 virsh 调整。
  3. --vcpus 分配CPU核心数,最大与实体机CPU核心数相同,安装完成后也可以用 virsh 调整。
  4. --disk 指定虚拟机镜像, size 指定分配大小单位为G。
  5. --network 网络类型,此处用的是默认,一般用的应该是 bridge 桥接。
  6. --os-variant 指定操作系统类型,此处使用的是标准Linux 2.6,其他的可以通过 man virt-install 详细查看。
  7. --accelerate 加速,具体什么原理还不太清楚。
  8. --cdrom 指定安装镜像所在。
  9. --vnc 启用VNC远程管理,一般安装系统都要启用。
  10. --vncport 指定 VNC 监控端口,默认端口为 5900,端口不能重复。
  11. --vnclisten 指定 VNC 绑定IP,默认绑定127.0.0.1,这里将其改为 0.0.0.0 以便可以通过外部连接。

4. 虚拟机管理指令 virsh 简介

  1. virsh list 列出当前虚拟机列表,不包括未启动的
  2. virsh list --all 列出所有虚拟机,包括所有已经定义的虚拟机
  3. virsh start domain-name 启动指定虚拟机
  4. virsh shutdown domain-name 停止指定虚拟机
  5. virsh reboot domain-name 重新启动指定虚拟机
  6. virsh autostart domain-name 指定虚拟机开机自动启动

KVM 虚拟机命令行安装配置的更多相关文章

  1. win10下使用命令行安装配置appium环境

    安装列表 安卓sdk目录,即ANDROID_HOME设置 关于sdk的安装配置此处略,参考之前文章<Appium+Java(一) Windows环境搭建篇> node运行环境 appium ...

  2. Linux下命令行安装配置android sdk

    首先, 你得有个VPN 参考以下三篇完成Android SDK的安装 https://www.digitalocean.com/community/tutorials/how-to-build-and ...

  3. 命令行安装kvm虚拟机、桥接网络、用virt-manager管理

    宿主机CentOS Linux release 7.2.1511 (Core),内核3.10.0-327.el7.x86_64 1.配置宿主机网络桥接 想让虚拟机有自己的ip且外网可访问,需要在安装虚 ...

  4. VMware10中的CentOS6.5命令行安装VMwaretools工具启用windows与虚拟机中Linux系统的共享目录

    VMware10中的CentOS6.5命令行安装VMwaretools工具启用windows与虚拟机中Linux系统的共享目录 一.描述 系统描述:win7旗舰版64位系统+VMware Workst ...

  5. .NET 跨平台RPC框架DotNettyRPC Web后台快速开发框架(.NET Core) EasyWcf------无需配置,无需引用,动态绑定,轻松使用 C# .NET 0配置使用Wcf(半成品) C# .NET Socket 简单实用框架 C# .NET 0命令行安装Windows服务程序

    .NET 跨平台RPC框架DotNettyRPC   DotNettyRPC 1.简介 DotNettyRPC是一个基于DotNetty的跨平台RPC框架,支持.NET45以及.NET Standar ...

  6. kvm虚拟机命令梳理

    kvm虚拟机命令梳理 )查看KVM虚拟机配置文件及运行状态 KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/ autostart目录是配置kvm虚拟机开机自启动目录. virsh命 ...

  7. kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置

    KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...

  8. Linux下命令行安装weblogic10.3.6

    Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...

  9. Oracle 图形化以及命令行安装

    @(Oracle)[Install] Oracle 安装 相关版本说明 不同版本的Oracle需要安装在特定的系统版本之上. 如Oracle 11gR2的11.2.0.1.0需要安装在CentOS 5 ...

随机推荐

  1. HDU 2610 (自己完全找不到思路) Sequence one

    搜索虐我千百遍,我待搜索...好吧,我还木有初恋 题意: 我开始理解题意就理解偏了,Orz 题中有n个元素构成的序列,求出前p个非递减子序列.子序列是先按长度排序的,然后按原序列先后位置排序的. 这里 ...

  2. UVa 10935 Throwing cards away I【队列】

    题意:给出 n张牌,从上往下编号依次为1到n,当牌的数目至少还剩下2张时,把第一张牌扔掉,然后把新的一张牌放在牌堆的最底部,问最后剩下的那一张牌是哪一张牌. 模拟队列的操作------- #inclu ...

  3. 软件设计之UML—UML的构成[上]

    UML是一种通用的建模语言,其表达能力相当的强,不仅可以用于软件系统的建模,而且可用于业务建模以及其它非软件系统建模.UML综合了各种面向对象方法与表示法的优点,至提出之日起就受到了广泛的重视并得到了 ...

  4. const,readonly 常量与只读

    Const是常量 Const在编译时会被编译为静态成员,它确定于编译时期,属类型级,通过类型来访问. 现在通过以下几种情况来说明const常量: (1)初始化 public const string  ...

  5. 【英语】Bingo口语笔记(73) - 以tly,tely结尾的误读

  6. Heritrix源码分析(十五) 各种问题总结(转)

    开博客以及建立Heritrix 群有一段时间了(这里谢谢大家的关注),这篇博客将整理这段时间所遇到的问题.同时由于自己从今年5月份开始就不怎么接触Heritrix,很多东西开始遗忘(不过里面思想没忘) ...

  7. GUID转换成16位字符串或19位数据(确保唯一)

    // <summary> /// 根据GUID获取16位的唯一字符串 /// </summary> /// <param name=\"guid\"& ...

  8. 仿Twitter登陆移动背景效果

    有使用Twitter客户端的朋友应该有发现在登录的时候,屏幕上方和下方的云朵图片是不断移动着的,再加上Twitter那支可爱的小鸟在不停的动着,给人的感觉就好像是小鸟在飞翔一样,感觉效果很不错. 我也 ...

  9. JSTL笔记(胖先生版)

    今天系统的学习了一下jstl,来记录一下. 在学习jstl以前,先要引两个jar包,然后再加入标签: <%@ taglib prefix="c" uri="http ...

  10. 运行Python2.x程序报编码错误的解决办法-UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position 7: ordina not in range(128)

    Python编码问题的终极解决方案:在python的Lib\site-packages文件夹下新建一个sitecustomize.py文件,输入: import sys sys.setdefaulte ...