热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS6.4系统中在命令行下安装配置KVM虚拟机

KVM作为linux内核的一部分,有着无法比拟的优势,相信KVM的大范围企业应用指日可待。一、KVM宿主服务器环境配置1.查看CPU是否支持VT技术cat/proc/cpuinfo|egrepvmx|svmflags:fpuvmedepsetscmsrpaemcecx8apicmtrrpgemcacmovpatpse3
KVM作为linux内核的一部分,有着无法比拟的优势,相信KVM的大范围企业应用指日可待。

一、KVM宿主服务器环境配置
1. 查看CPU是否支持VT技术
cat /proc/cpuinfo | egrep 'vmx|svm' 
flags : fpu vme de pse tsc msr pae mce cx8 apic
mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2
ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts
rep_good aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16
xtpr pdcm dca sse4_1 lahf_lm dts tpr_shadow vnmi flexpriority
如果执行指令后有类似返回,则证明CPU支持VT

2. 安装KVM组件
yum groupinstall Virtualization 
yum groupinstall "Virtualization Platform" 

3. 检查KVM模块加载
lsmod | grep kvm 
    kvm_amd                37434  4  
    kvm                   292815  1 kvm_amd 
如果执行指令后有类似返回,则证明KVM模块加载正常,否则检查BIOS中是否开启了CPU VT支持
4. 安装virtsh virt-install 管理工具
yum install libvirt-client python-virtinst 

二、虚拟机安装
1. 建立虚拟机磁盘镜像文件
qcow2格式是kvm支持的标准格式,raw格式为虚拟磁盘文件通用格式。有测试数据表明raw格式的I/O性能略高于qcow2格式,但是在加密,容量,快照方面qcow2格式有优势
qemu-img create -f qcow2 test.qcow2 20G //建立qcow2格式磁盘文件
qemu-img create -f raw test.raw 20G  //建立raw格式磁盘文件
qemu-img info test.qcow2 //查看已经创建的虚拟磁盘文件

2. 建立虚拟机示例
创建1G内存、2核CPU、单网卡,磁盘和网络驱动使用virtio的linux虚拟机
virt-install --name rhel5.4 \ 
--boot network,cdrom,menu=on \ 
--ram 1024 --vcpus=2 \ 
--os-variant=rhel5.4 \ 
--accelerate \ 
--cdrom=/troodon/ISO/CentOS-6.2-x86_64-bin-DVD1.iso \ 
--disk path=/troodon/KVM/test01/test01.img,size=30,format=qcow2,bus=virtio \ 
--bridge=br0,model=virtio --mac=54:52:00:01:79:e9 \ 
--vnc --vncport=5991 --vnclisten=0.0.0.0. 

创建8G内存、4核CPU、双网卡,磁盘和网络驱动使用virtio的linux虚拟机
virt-install --name rhel5.2 \ 
--boot network,cdrom,menu=on \ 
--ram 8192 --vcpus=4 \ 
--os-variant=rhel6 \ 
--cdrom=/troodon/ISO/CentOS-6.2-x86_64-bin-DVD1.iso \ 
--disk path=/troodon/KVM/test01/test01.img,format=qcow2,bus=virtio \ 
--bridge=br0,model=virtio --mac=54:52:00:0b:8b:79 \
--bridge=br1,model=virtio --mac=54:52:00:7e:8e:cd \
--vnc --vncport=5991 --vnclisten=0.0.0.0 

创建1G内存、1核CPU、单网卡,磁盘和网络驱动使用virtio的windows虚拟机
virt-install --name win2k3 \ 
--ram 1024 --vcpus=1 \ 
--os-variant=win2k3 \ 
--accelerate \ 
--cdrom=/troodon/ISO/Windows/2003/win2k3sp1.iso \ 
--disk path=/troodon/KVM/win2k3/win2k3.img,size=5,format=qcow2,bus=virtio \ 
--bridge=br0,model=virtio \ 
--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 简介
--name 指定虚拟机名称,virsh操作指定虚拟机时所需要的参数,不可以重复。 
--ram 分配内存大小,安装完成后可以用 virsh 调整。 
--vcpus 分配CPU核心数,最大与实体机CPU核心数相同,安装完成后也可以用 virsh 调整。 
--disk 指定虚拟机镜像, size 指定分配大小单位为G。 
--network 网络类型,此处用的是默认,一般用的应该是 bridge 桥接。 
--os-variant 指定操作系统类型,此处使用的是标准Linux 2.6,其他的可以通过 man virt-install 详细查看。 
--accelerate 加速,具体什么原理还不太清楚。 
--cdrom 指定安装镜像所在。 
--vnc 启用VNC远程管理,一般安装系统都要启用。 
--vncport 指定 VNC 监控端口,默认端口为 5900,端口不能重复。 
--vnclisten 指定 VNC 绑定IP,默认绑定127.0.0.1,这里将其改为 0.0.0.0 以便可以通过外部连接。 

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

推荐阅读
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 龙蜥社区开发者访谈:技术生涯的三次蜕变 | 第3期
    龙蜥社区的开发者们通过自己的实践和经验,推动着开源技术的发展。本期「龙蜥开发者说」聚焦于一位资深开发者的三次技术转型,分享他在龙蜥社区的成长故事。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
author-avatar
Hydhuyfh________
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有