Linux学习总结(七十二)虚拟化之kvm

一 虚拟化介绍

1 常见虚拟化软件
VMware系列
VMware workstation、VMware vsphere(VMware esxi)、VMware Fusion(Mac)
Xen 开源 半虚拟化
XenServer 商业,厂商Ctirx,基于Xen的
KVM 开源 基于linux内核模块
Hyper-V 商业,厂商微软
Openvz 开源 基于linux 虚拟机和宿主机共用一个内核
VirtualBox 开源 Sun公司开发 Oracle收购Sun
http://developer.huawei.com/ict/forum/thread-23385-1-1.html
2 虚拟化架构

参考 http://developer.huawei.com/ict/forum/thread-23385-1-1.html

二 kvm

1 为什么选择kvm
Vmware,Xen,Hyper-V 通通收费,剩下openvz了,可是虚拟机要跟宿主机共用内核,比如要装一个windos虚拟机,实现不了。kvm免费的,而且是作为linux内核的一个功能模块而存在。因此yum安装后就能使用,非常方便。
2 kvm 技术
KVM是以色列初创公司Qumranet开发,2008年9月RedHat公司收购了Qumranet
KVM是Linux内核的一个模块,它把Linux内核变成了一个Hypervisor
KVM是完全开源的,RedHat基于KVM的虚拟化解决方案叫做RHEV
KVM在Linux操作系统里面以进程的形式出现,由标准的Linux调度程序进行调度,这使得KVM能够使用Linux内核的已有功能
只有一个KVM内核模块还不能实现虚拟化的全部功能,就好比操作系统只有内核还不能成为一个完整的操作系统一样
QEMU是一个开源的虚拟化软件,纯软件,可以虚拟化所以的硬件,性能不强
KVM基于QEMU开发了一个能够运行在用户空间的工具QEMU-KVM
磁盘、网络设备等都是通过QEMU-KVM这个工具模拟出来的
KVM和QEMU-KVM通信是通过/dev/kvm实现的
libvirt是用来管理KVM虚拟机的API,其命令为virsh

3 Centos7上安装KVM
前提是CPU支持虚拟化
虚拟机设置内存2G,增加一个50G的虚拟磁盘,处理器2核,虚拟化引擎两个虚拟化相关的选项打上对勾

关闭iptables或者firewalld
systemctl stop iptables
systemctl stop firewalld
关闭selinux
setenforce 0
vim /etc/selinux/config
设置SELINUX=disabled
格式化新磁盘,挂载到/kvm
mkfs.ext4 /dev/sdc
blkid /dev/sdc
mkdir /kvm
mount /dev/sdc /kmv
添加开机自动挂载
vim /etc/fstab
对照之前的挂载规则,增加一条
/dev/sdc                /kvm                ext4    defaults        0 0

下载一个centos7的镜像文件
检查cpu参数是否支持虚拟化
grep -Ei ‘vmx|svm‘ /proc/cpuinfo
安装kvm
yum install -y virt-* libvirt bridge-utils qemu-img
4 配置网卡并安装centos7
配置网卡,增加桥接网卡
设置一个br0网卡,TYPE为Bridge,IP地址设置为ens33的ip
ens33配置文件里把IP地址去掉,增加BRIDGE=br0
检查KVM模块是否加载
lsmod|grep kvm
启动libvirtd服务
systemctl start libvirtd
brctl show可以看到两个网卡br0和virbr0
命令行安装centos7
virt-install --name=lvlinux01 --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/tmp/CentOS-7-x86_64-DVD-1708.iso --disk path=/kvm/lvlinux01.img,size=10 --bridge=br0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"
5 虚拟机管理
安全完虚拟机需要重启,要退出虚拟机使用快捷键ctrl ]
ps aux |grep kvm//查看kvm进程
virsh list //查看虚拟机列表,只能看到运行的虚拟机
virsh list --all //查看虚拟机列表,包括未运行的虚拟机
virsh console lvlinux01//进入指定虚拟机
virsh shutdown lvlinux01 //关闭虚拟机
virsh start lvlinux01 //开启虚拟机
virsh destroy lvlinux01//类似stop,这个是强制停止
virsh undefine lvlinux01//彻底销毁虚拟机,会删除虚拟机配置文件,virsh list --all就看不到了
ls /etc/libvirt/qemu/ //可以查看虚拟机配置文件
virsh autostart lvlinux01//宿主机开机该虚拟机也开机
virsh autostart --disable lvlinux01//解除开机启动
virsh suspend lvlinux01//挂起
virsh resume lvlinux01//恢复
6 虚拟机克隆
virsh shutdown lvlinux01
virt-clone --original lvlinux01 --name lvlinux02 --file /kvm/lvlinux02.img
--original指定克隆源虚拟机
--name指定克隆后的虚拟机名字
--file指定目标虚拟机的虚拟磁盘文件
如果lvlinux01虚拟机开机状态,则提示先关闭或者暂停虚拟机
7 快照管理
创建快照 virsh snapshot-create lvlinux01
raw格式的虚拟磁盘不支持做快照,qcow2支持
qemu-img info /kvm/lvlinux01.img //查看lvlinux01.img信息,同时会查看到快照列表
virsh snapshot-list lvlinux01//列出所有快照
virsh snapshot-current lvlinux01//查看当前快照版本
ls /var/lib/libvirt/qemu/snapshot/lvlinux01//查看所有快照配置文件
virsh snapshot-revert lvlinux01 1513440854//恢复指定快照
virsh snapshot-delete lvlinux01 1513440854//删除快照
8 磁盘格式
虚拟磁盘常用格式raw、qcow2
qemu-img info /kvm/lvlinux01.img//查看虚拟磁盘格式
qemu-img create -f raw /kvm_data/lvlinux01_2.img 2G//创建2G的raw格式磁盘
把raw格式的磁盘转换为qcow2格式
qemu-img convert -O qcow2 /kvm/lvlinux01_2.img /kvm/lvlinux01_2.qcow2
转换后用ls -lh查看磁盘文件的大小,可以看到qcow2文件比较小,raw文件大小和我们指定空间大小一样是2G
raw格式的磁盘性能比qcow2要好,但是raw格式的磁盘无法做快照
给lvlinux02转换为raw格式的磁盘
virsh shutdown lvlinux02
qemu-img convert -O raw /kvm/lvlinux02.img /kvm/lvlinux02_3.raw
virsh edit lvlinux02//更改格式和文件路径
virsh start lvlinux02
9 磁盘扩容 – raw格式

qemu-img resize /kvm/lvlinux02_3.raw +2G
qemu-img info /kvm/lvlinux02_3.raw
virsh destroy lvlinux02
virsh start lvlinux02
virsh console lvlinux02

fdisk -l 查看磁盘情况,并分新的分区
除了对已有磁盘扩容外,还可以额外增加磁盘

qemu-img create -f raw /kvm/lvlinux02_2.raw 5G
virsh edit lvlinux02 //增加<disk>…</disk>,注意更改source、target、slot
virsh destroy lvlinux02
virsh start lvlinux02

磁盘扩容 – qcow2格式
qemu-img resize /kvm/lvlinux01.img +2G
若提示qemu-img: Can‘t resize an image which has snapshots,需要删除快照
qemu-img info /kvm/lvlinux01.img
virsh destroy lvlinux01
virsh start lvlinux01
virsh console lvlinux01
fdisk -l 查看磁盘情况,并分新的分区
除了对已有磁盘扩容外,还可以额外增加磁盘
qemu-img create -f qcow2 /kvm/lvlinux01_2.img 5G
virsh edit lvlinux01 //增加<disk>…</disk>,注意更改source、target、slot
virsh destroy lvlinux01
virsh start lvlinux01
10 调整cpu、内存、网卡
virsh dominfo lvlinux01 //查看配置
virsh edit lvlinux01//更改如下部分内容

 <memory unit=‘KiB‘>1048576</memory>
  <currentMemory unit=‘KiB‘>524288</currentMemory>
  <vcpu placement=‘static‘ current=‘1‘>2</vcpu>

virsh shutdown lvlinux01
virsh start lvlinux01
virsh setmem lvlinux01 800m//动态调整内存
virsh dumpxml lvlinux01 &gt; /etc/libvirt/qemu/lvlinux01.xml//需要把配置写入到配置文件里
virsh setvcpus lvlinux01 2 //动态调整cpu数量
virsh domiflist lvlinux01//查看网卡
virsh attach-interface lvlinux01 --type bridge --source virbr0//增加一块新的网卡,并设置为nat网络模式(virbr0类似vmware的vmnet8),这里如果写--source br0,则网络模式为桥接
virsh dumpxml lvlinux01 &gt; /etc/libvirt/qemu/lvlinux01.xml//需要把配置写入到配置文件里
11 迁移虚拟机
该方式要确保虚拟机是关机状态
virsh shutdown lvlinux01
virsh dumpxml lvlinux01 &gt; /etc/libvirt/qemu/lvlinux03.xml // 如果是远程机器,需要把该配置文件拷贝到远程机器上
virsh domblklist lvlinux01 //查看虚拟机磁盘所在目录
rsync -av /kvm/lvlinux01.img /kvm/lvlinux03.img //如果是迁移到远程,则需要把该磁盘文件拷贝到远程机器上
vi /etc/libvirt/qemu/lvlinux03.xml //因为是迁移到本机,配置文件用的是lvlinux01子机的配置,不改会有冲突,所以需要修改该文件,如果是远程机器不用修改
修改domname: <name>lvlinux03</name>
修改uuid(随便改一下数字,位数不要变)
修改磁盘路径
virsh define /etc/libvirt/qemu/lvlinux03.xml//定义新虚拟机
virsh list --all //会发现新迁移的lvlinux03虚拟机

原文地址:http://blog.51cto.com/12606610/2149215

时间: 2024-08-11 01:21:45

Linux学习总结(七十二)虚拟化之kvm的相关文章

Linux学习笔记(十二)--命令学习(用户创建、删除等)

通过上面的几章学习,我们对linux有了一些了解,现在我们再继续进行下去.... 我们习惯的windows 界面系统中,只要在界面里去下鼠标,填写等这些就可以完成了一个用户创建.删除.添加所属组等,那我们在linux里又是怎么操作的呢??? 下面在学习如何使用命令进行一系列的操作时,我们要先了解一些别的: 在linux系统里除了我们要新建的用户外,还有一些特定的用户,我们称呼它为:伪用户. -----------------------------------------------------

linux学习笔记-第二十二课-LNMP环境搭建(一)

一.LNMP环境搭建前的准备 LNMP就是Linux系统下Nginx+MySQL+PHP这种网站服务器架构,所以需要下载mysql,php,与nginx这三套软件. MySQL : 32位 :http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz 64位 :http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-x86

linux学习笔记-第十二课-Shell脚本之正则表达式(一)

一.grep,egrep,fgrep 1)grep 格式:grep [选项] [模式] [文件名] 常用选项:-n:显示行号和匹配的行 -v:反向匹配 -c:不显示匹配的行,只显示匹配的行数 -i:忽略大小写 -r:递归搜索 -E:支持扩展正则表达式 -P:支持Perl正则表达式 -F:不支持正则表达式,将模式按字面意义匹配 示例: grep示例 说明 grep '\<Tom>\' file 显示包含单词Tom的行 grep 'Tom Jerry' file 显示包含'Tom Jerry'的行

Linux学习之CentOS(十二)------磁盘的分区、格式化、挂载(转)

磁盘分区.格式化.挂载磁盘分区    新增分区    查询分区    删除分区磁盘格式化    mkfs    mke2fs磁盘挂载与卸载    mount    umount 磁盘的分区.格式化.挂载 对于一个系统管理者( root )而言,磁盘的的管理是相当重要的一环,尤其近来硬盘已经渐渐的被当成是消耗品了 ..... 如果我们想要在系统里面新增一颗硬盘时,应该有哪些动作需要做的呢: 对磁盘进行分区,以创建可用的 partition : 对该 partition 进行格式化( format

salesforce零基础学习(七十二)项目中的零碎知识点小总结(一)

项目终于告一段落,虽然比较苦逼,不过也学到了好多知识,总结一下,以后当作参考. 一.visualforce标签中使用html相关的属性使用 曾经看文档没有看得仔细,导致开发的时候走了一些弯路.还好得到了小兵同学的指点,get到了一个简单实用的知识.即使用html- + attribute方式,在visualforce标签解析成html标签时,添加相关属性,从而实现一些功能性的校验等功能. 比如我们经常会用到<apex:inputTextarea>标签来放置textarea字段的前台显示,而对于

Linux学习之CentOS(十二)----认识ext文件系统(转)

认识ext文件系统 硬盘组成与分割 文件系统特性 Linux 的 EXT2 文件系统(inode) 与目录树的关系 EXT2/EXT3 文件的存取与日志式文件系统的功能 Linux 文件系统的运行 挂载点的意义 其他 Linux 支持的文件系统与 VFS 认识 EXT2 文件系统 Linux最传统的磁盘文件系统(filesystem)使用的是EXT2这个啦!所以要了解文件系统就得要由认识EXT2开始! 而文件系统是创建在硬盘上面的,因此我们得了解硬盘的物理组成才行,所以底下只会很快的复习这两部份

Linux学习笔记(十二)usermod、passwd、mkpasswd

一.usermod修改用户信息 usermod -u   111   username   #修改用户 usermod -g   grp2 username      #修改用户组 usermod -d  /home/chinantfy2     username  #修改用户家目录 usermod -s  /sbin/nologin   username  #修改用户shell 一个用户可以属于多个组,但是gid只有一个 id  username可以查看用户uid与gid和所属组 usermo

我的MYSQL学习心得(十二)

原文:我的MYSQL学习心得(十二) 我的MYSQL学习心得(十二) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL学习心得(五) 我的MYSQL学习心得(六) 我的MYSQL学习心得(七) 我的MYSQL学习心得(八) 我的MYSQL学习心得(九) 我的MYSQL学习心得(十) 我的MYSQL学习心得(十一) 这一篇<我的MYSQL学习心得(二)>将会讲解MYSQL的触发器 触发器是一个特殊的存储过程,不

马哥学习笔记三十二——计算机及操作系统原理

缓存方式: 直接映射 N路关联 缓存策略: write through:通写 write back:回写 进程类别: 交互式进程(IO密集型) 批处理进程(CPU密集型) 实时进程(Real-time) CPU: 时间片长,优先级低IO:时间片短,优先级高 Linux优先级:priority 实时优先级: 1-99,数字越小,优先级越低 静态优先级:100-139,数据越小,优先级越高 实时优先级比静态优先级高 nice值:调整静态优先级   -20,19:100,139   0:120 ps

鬼谷子七十二术(完整版)值得永久收藏!终生研读!

静中有动,动中有静,“变生于事.事生谋.谋生计.计生议.议生说.说生进.进生退.退生制,因以于制事”. 第一计 阳谋阴谋 鬼谷子曰:“智略计谋,各有形容,或圆或方,或阴或阳,圣人谋之于阴故曰‘神’,成之于阳故曰‘明’,所谓主事成者,积德也.” 计谋,有阴谋和阳谋之别,在任何情况下,人们都不可轻视对方,因为事件.环境.情报都有假的.所以圣人应该高深莫测.鬼谷子所谓“阴”,是谋之于阴成之于阳.第二计 扭转乾坤鬼谷子曰:“故静固志意,神归其舍,则威覆盛矣,威覆盛,则内实坚,内实坚,则莫当.” 鬼谷子认