美文网首页
2019-05-20 kvm虚拟化

2019-05-20 kvm虚拟化

作者: 点亮生活501 | 来源:发表于2019-05-20 13:31 被阅读0次

1:什么是虚拟化?

虚拟化,通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。

2:为什么要用虚拟化?

阿里云   kvm开源
azure
vmware ESXI商业软件

没有虚拟化之前:
计算机的硬件配置越来越高

512G 内存,4路 8核16线程 ,12* PCI-E 1T的SSD;
ntp服务,安装多个mysql,安装多个tomcat,安装.... 

linux开源的,很多软件都有依赖包openssl  nginx

充分利用资源,软件运行环境的隔离,只有虚拟化才行实现。



场景1:同一台物理机运行多个php版本 php5.3(openssl,gd)  php5.5  php7.2

场景2:机房的迁移,解决了硬件和系统的依赖

场景3:openstack环境,软件发布方式

场景4:开发环境和测试环境,使用虚拟化
只靠一台物理服务器,30台虚拟机

产品  -- 开发 -- 运维 -- 测试
so结尾,linux 库文件

场景5:业务的快速部署  
从头安装系统,安装服务,配置
克隆虚拟机,改ip,

虚拟化:提高了资源的利用率,各个服务的安全性隔离,解决了系统和硬件之间的依赖

3:kvm虚拟化管理软件的安装


curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
echo "192.168.21.15 mirrors.aliyun.com" >>/etc/hosts

yum install libvirt virt-install qemu-kvm -y
cd /opt
dd if=/dev/cdrom of=CentOS-7-x86_64-DVD-1804.iso

yum install ntpdate -y
*/5 * * * * ntpdate ntp6.aliyun.com &>/dev/null

[root@oldboy opt]# ll
total 4365320
-rw-r--r-- 1 qemu qemu 4470079488 May 20 09:52 CentOS-7-x86_64-DVD-1804.iso
 vim /boot/grub2/grub.cfg   内核文件
libvirt  作用:虚拟机的管理软件
libvirt: kvm,xen,qemu,lxc....

virt   virt-install virt-clone   作用:虚拟机的安装工具和克隆工具
qemu-kvm  qemu-img (qcow2,raw)作用:管理虚拟机的虚拟磁盘

虚拟化软件:
qemu      软件纯模拟全虚拟化软件,特别慢!AIX,兼容性好!
xen(半)   性能特别好,需要使用专门修改之后的内核,兼容性差!  redhat 5.5  xen
KVM(linux)    全虚拟机,它有硬件支持cpu,基于内核,而且不需要使用专门的内核   centos6 kvm
性能较好,兼容较好
[root@oldboy opt]# lsmod|grep -i kvm  查看内核模块
kvm_amd                69849  3 
kvm                   566340  1 kvm_amd
irqbypass              13503  1 kvm

4:安装一台kvm虚拟机

分发软件TightVNC或者VNC Viewer 4.exe
宿主机

vnc:远程的桌面管理工具
向日葵


systemctl start libvirtd.service
systemctl status libvirtd.service

10.0.0.11  宿主机

建议虚拟机内存不要低于1024M,否则安装系统特别慢!
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1804.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
vnc-service:5900

vnc:10.0.0.11:5900

--virt-type kvm    虚拟化的类型(qemu)
--os-type=linux    系统类型
--os-variant rhel7 系统版本ii
--name centos7     虚拟机的名字 
--memory 1024      虚拟机的内存
--vcpus 1          虚拟cpu的核数
--disk /opt/centos2.raw,format=raw,size=10
--cdrom /opt/CentOS-7-x86_64-DVD-1708.iso 
--network network=default   使用默认NAT的网络
--graphics vnc,listen=0.0.0.0 
--noautoconsole


raw:10G  不支持做快照,性能好
qcow2:   支持快照

5:kvm虚拟机的virsh日常管理和配置

virsh list  只能查看开机 暂停状态的虚拟机
virsh list --all   查看所有虚拟机状态
virsh shutdown centos2    关机  (正常关机)
virsh start centos2     开机 
virsh destroy  centos2 拔电源关机  (比较危险)

导出配置dumpxml  例子:virsh dumpxml centos7 >centos7-off.xml
virsh undefine centos2    删除  推荐:先destroy,在undefine
 virsh define centos7.xml   导入配置define   
修改配置edit(自带语法检查)
 
重命名domrename (低版本不支持)
挂起suspend
恢复resume
查询vnc端口号vncdisplay    virsh vncdisplay centos2 

6:kvm虚拟机开机启动和console 控制台 登录

kvm运行业务程序

开机启动autostart,前提:systemctl enable libvirtd;
systemctl restart libvirtd.service   重启服务
virsh  autostart  centos2 开机自启
virsh  autostart --disable centos2 取消开机启动

centos7的kvm虚拟机:
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"

reboot

作业1:实现centos6的kvm虚拟机,console命令行登录?
安装一台centos6的kvm虚拟机
console命令行登录

作业2:centos6实现没有swap分区,启动进系统

kvm链接克隆

第一种方法

第一步:
qemu-img create -f qcow2 -b web02.qcow2 web06.qcow2

第二步:基于已有磁盘,启动一台新虚拟机
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web06 --memory 1024 --vcpus 1 --disk /data/web06.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

第二种 链接克隆脚本

自动kvm链接克隆  模板机(web02)  新虚拟机
vim vm_auto_clone_v2.sh
#!/bin/sh
old=$1
new=$2
virsh dumpxml $old >$new.xml

old_disk=`virsh dumpxml $old|grep 'qcow2'|grep -oP "(?<=file=')[^']+"`
dir=`dirname $old_disk`

qemu-img create -f qcow2 -b $old_disk ${dir}/$new.qcow2

sed -ri 's#(<name>)(.*)(</name>)#\1'$new'\3#g' $new.xml
sed -i '/<uuid>/d' $new.xml
sed -ri "s#(<source file=')(.*)('/>)#\1${dir}/$new.qcow2\3#g" $new.xml
sed -i '/<mac address/d' $new.xml

virsh define $new.xml

virsh start $new
rm -rf $new.xml
脚本尚不完善。需要做判断。

9:kvm虚拟机的桥接网络

默认的虚拟机网络是NAT模式,网段192.168.122.0/24

默认NAT模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
桥接模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

1:创建桥接网卡
virsh iface-bridge eth0 br0

取消桥接网卡
virsh iface-unbridge br0

2:virsh edit centos7

    <interface type='bridge'>
      <mac address='52:54:00:55:aa:fa'/>
      <source bridge='br0'/>
在宿主机上,重启虚拟机生效

3:测试虚拟机网络

虚拟机添加磁盘扩容

创建新硬盘
qemu-img create -f qcow2  /data/web03-add01.qcow2 10G
附加新硬盘
virsh attach-disk  web03  --source /data/web03-add01.qcow2 --target vdb --subdriver qcow2

默认是raw格式
-f  qcow2 格式  添加参数 --subdriver qcow2
虚拟机中:
fdisk -l
mkfs.xfs  /dev/vdb
mount /dev/vdb  /mnt
....
扩容:
umount  /mnt

剥离硬盘
virsh detach-disk  web03  --target vdb

扩容:
qemu-img resize /data/web03-add01.qcow2 +10G
再插上硬盘
virsh attach-disk  web03  --source /data/web03-add01.qcow2 --target vdb --subdriver qcow2

虚拟机中:
fdisk -l
mount /dev/vdb  /mnt
xfs_growfs /dev/vdb
df -h
ls /mnt

根分区扩容:

1)在宿主机上关闭虚拟机并调整虚拟机磁盘大小
qemu-img resize oldboy.qcow2 +10G

2)虚拟机中fdisk重新分区
fdisk /dev/vda

3)重启之后,执行xfs_growfs /dev/vda1,
如果虚拟机磁盘文件系统是ext4:resize2fs /dev/vda1

https://www.qstack.com.cn/archives/188.html 根分区扩容

kvm虚拟机在线热添加网卡

virsh attach-interface web03 --type bridge --source br0 --model virtio  桥接 临时添加网卡
virsh attach-interface web03 --type bridge --source br0 --model virtio --config  桥接 永久添加网卡

virsh attach-interface web03 --type network --source default --model virtio   默认添加网卡
virsh detach-interface web03 --type network --mac 52:54:00:f5:b0:ce  删除默认网卡

临时热添加内存

virsh setmem web04 1024M
setmem web04 1024M --live
永久增大内存
setmem web04 1024M --config

kvm虚拟机在线热添加cpu

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
热添加cpu核数
setvcpus web04 4 --live
永久添加cpu核数
setvcpus web04 4 --config

相关文章

  • 20171207 虚拟化

    虚拟化技术概览KVM简介KVM的管理操作 一、虚拟化技术概览 (一)虚拟化技术类型: 主机虚拟化:xen, kvm...

  • 36-虚拟化

    本章内容 ◆ 虚拟化基础◆ 虚拟化技术之KVM◆ kvm实战案例 一:虚拟化基础 https://www.vmwa...

  • 2019-05-20 kvm虚拟化

    1:什么是虚拟化? 2:为什么要用虚拟化? 3:kvm虚拟化管理软件的安装 4:安装一台kvm虚拟机 5:kvm虚...

  • docker(一)

    1.什么是容器? 2.容器和虚拟化的区别 linux容器技术,容器虚拟化和kvm虚拟化的区别 kvm虚拟化: 需要...

  • 虚拟化

    目录 一、了解虚拟化二、常见虚拟化软件三、虚拟化架构四、KVM介绍五、Centos7上安装KVM六、配置网卡七、创...

  • kvm虚拟化存储管理(4)

    一、KVM 存储虚拟化介绍 KVM 的存储虚拟化是通过存储池(Storage Pool)和卷(Volume)来管理...

  • kvm虚拟化

    KVM 虚拟化技术 CPU虚拟化技术 内存虚拟化技术 IO虚拟化技术 网络IO虚拟化技术 磁盘IO虚拟化技术 虚拟...

  • KVM常用知识点

    KVM常用知识点 如何查看支持虚拟化 如果有输出信息说明cpu支持虚拟化 KVM是那几部分组成的? KVM:内核虚...

  • KVM虚拟化

    kvm实验 环境准备,我这里使用虚拟机进行模拟,先设定好虚拟化 进入系统查看是否支持虚拟化 KVM:Kernel-...

  • 【01】KVM中小企业实践-概述

    KVM与QEMUQEMU做上层虚拟化:1、设备驱动 2、针对模拟PC硬件的用户空间组件KVM需要CPU中虚拟化功能...

网友评论

      本文标题:2019-05-20 kvm虚拟化

      本文链接:https://www.haomeiwen.com/subject/heckzqtx.html