努力挣扎的生活 努力挣扎的生活
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Dcoker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • ELK(EFK)
  • 虚拟化
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)

yangfk

瑟瑟发抖的小运维
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Dcoker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • ELK(EFK)
  • 虚拟化
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)
  • Docker

  • Kubernetes

  • Nexus

  • Rancher

  • Prometheus

  • ELK

  • 虚拟化

    • 虚拟化KVM
      • kvm介绍
      • virt工具安装
      • 创建kvm虚拟机
        • kvm虚拟机常用操作命令
      • kvm磁盘管理,和快照
      • kvm快照管理
      • kvm克隆
        • virt-clone命令(完整克隆)
        • 手动克隆(完整克隆)
        • 链接克隆
    • 虚拟化KVM管理
    • OpenStack常用命令整理(mitaka)
    • openStack部署mitaka版本
//
  • 云计算虚拟化
  • 虚拟化
yangfk
2022-11-04

虚拟化KVM

//

# kvm介绍

KVM官网 (opens new window)

KVM(用于基于内核的虚拟机)是一个针对x86硬件上的Linux的完整虚拟化解决方案,包含虚拟化扩展(Intel VT或AMD-V)。它由一个可加载的内核模块kvm组成。ko,它提供了核心虚拟化基础设施和处理器专用模块kvmintel。ko或kvm-amd.ko。

使用KVM,可以运行运行未经修改的Linux或Windows映像的多个虚拟机。每个虚拟机都有专用虚拟化硬件:网卡、磁盘、图形适配器等。

KVM是开源软件。KVM的内核组件自2.6.20起包含在主线Linux中。KVM的用户空间组件自1.3起包含在主流QEMU中。

# virt工具安装

  • centos7

yum install libvirt virt-install qemu-kvm -y

  • 如果需要安装图形化界面,执行下面两条命令

yum groups install "GNOME Desktop" -y

yum install tigervnc-server.x86_64 virt-manager -y

  • ubuntu

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

  • 麒麟服务器

yum install libvirt virt-install qemu -y # virt-manager

  • 查看是否支持

lsmod |grep kvm

# 创建kvm虚拟机

  • 创建虚拟机,centos7

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /data/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7.9-x86_64-Minimal-2009.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

查看iptables规则转发,会添加几个内部网段到 virbr0网卡 的规则:iptables -t nat -L -n

参数说明

参数 说明
--virt-type kvm 虚拟机的类型(qemu)
--os-type=linux 系统类型
--os-variant rhel7 系统版本
--name centos7 虚拟机的名称
--memory 1024 分配的内存 M
--vcpus 1 分配的CPU数量
--disk /data/centos2.raw,format=raw,size=50 存储路径,格式,大小/G
--cdrom /data/CentOS-7.9-x86_64-Minimal-2009.iso 镜像路径
--network network=default 网络,默认使用NAT
--graphics vnc,listen=0.0.0.0 图形化工具TightVNC,监听端口默认从5900开始
--noautoconsole 控制台

raw: 性能好(连续读写),不支持快照,裸格式,占用空间较大,不方便传输,size设置50G,占用50G

qcow2: 性能比raw差一点(随机读写),支持快照,占用空间小,方便传输,size设置50G,使用多少占用多少

配置文件存储路径:ls /etc/libvirt/qemu

# kvm虚拟机常用操作命令

  • 查看虚拟机列表,“--all”查看包含关机的虚拟机

virsh list --all

  • VNC端口查看

virsh vncdisplay --domain centos7

  • 备份配置

在虚拟机开机状态,或者虚拟机未设置undefine,

virsh dumpxml centos7 >centos7.xml

  • 还原配置

当磁盘raw还在,配置文件也存在,恢复

virsh define centos7.xml

  • 删除配置,(当关闭虚拟机,virsh list 不可见,但磁盘存储文件还在),

virsh undefine centos7

  • 重命名

virsh domrename centos7 centos7.9

  • 启停虚拟机命令

关机:virsh shutdown centos7

拔电源:virsh destroy centos7

开机:virsh start centos7

重启:virsh reboot centos7

挂起:virsh suspend centos7

恢复:virsh resume centos7

  • 设置虚拟机开机自启动,libvirtd控制

设置开机自启:virsh autostart centos7

取消开机自启:virsh autostart --disable centos7

  • Centos7宿主机使用console登录虚拟机

kvm虚拟机修改内核配置:/boot/grub2/grub.cfg,记得备份

grubby --update-kernel=ALL --args="console=ttyS0,115200n8",reboot 重启虚拟机

kvm_console1.jpg

# kvm磁盘管理,和快照

  • 创建虚拟硬盘

qemu-img create -f raw /data/test1.raw 1G

  • 查看虚拟磁盘信息

qemu-img info /data/test1.raw

  • 设置虚拟磁盘大小

qemu-img resize /data/test1.raw +5G 如果是“+5G”就是加5G,如果是“5G”就是设置大小为5G,只可加不可减

  • 转换虚拟硬盘格式

当需要把 centos7.raw 格式的数据盘,修改为 centos7.qcow2 的格式

关闭虚拟机:virsh shutdown centos7

数据盘格式转换:qemu-img convert -f raw -O qcow2 centos7.raw centos7.qcow2

编辑虚拟机xml:virsh edit centos7

  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'> 
      <driver name='qemu' type='qcow2'/> 修改type类型为qcow2
      <source file='/data/centos7.qcow2'/> 修改新的数据盘名

启动虚拟机:virsh start centos7

查看,编辑nat网络:virsh net-list,virsh net-edit --network default

# kvm快照管理

注意:raw不支持快照,qcow2支持快照(写时复制)

创建快照:virsh snapshot-create centos7

查看虚拟机centos7有哪些快照:virsh snapshot-list centos7

kvm_snapshot1.jpg

还原快照:virsh snapshot-revert centos7 --snapshotname 1667551587

删除快照:virsh snapshot-delete centos7 --snapshotname 1667551587

# kvm克隆

# virt-clone命令(完整克隆)

注意:克隆需要挂起或者关机虚拟机

老虚拟机:centos7,新虚拟机名:centos7-01,完整克隆

virt-clone --auto-clone -o centos7 -n centos7-01

# 手动克隆(完整克隆)

拷贝数据文件,centos7.qcow2

dumpxml 导一份配置,修改参数: (name重命名,domain:uuid删除 ,disk:source修改路径,interface:mac删除)

# 链接克隆

从centos7链接克隆新的为cento7-02

进入到数据源目录:qemu-img create -f qcow2 -b centos7.qcow2 centos7-02.qcow2

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-02 --memory 1024 --vcpus 1 --disk /data/centos7-02.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

--boot:指定为本地硬盘

//
点击 -->> 给博主买咖啡 (opens new window)
上次更新: 2022/11/11, 16:11:16
es-logstash-kibana部署日志展示
虚拟化KVM管理

← es-logstash-kibana部署日志展示 虚拟化KVM管理→

最近更新
01
Pod探针
12-20
02
kubeadm证书替换
12-20
03
kubeadm安装k8s(版本1.26.0)
12-16
更多文章>
Theme by Vdoing | Copyright © 2019-2023 yangfk | 湘ICP备2021014415号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
//