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

    • 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管理
      • kvm网络
        • kvm的Bridge网络模式
        • 创建桥接网卡br1
        • 桥接模式的kvm虚拟机
      • kvm虚拟机在线热添加
        • 添加硬盘
        • 扩容硬盘
        • 添加网卡
        • 添加内存,CPU
      • kvm热迁移
        • V2V迁移(二)ESXI 到KVM迁移
        • p2v-迁移到openstack
    • OpenStack常用命令整理(mitaka)
    • openStack部署mitaka版本
//
  • 云计算虚拟化
  • 虚拟化
yangfk
2022-11-10

虚拟化KVM管理

//

# kvm网络

kvm虚拟机的网络模式有两种:桥接模式和NAT模式(默认)

1)NAT模式(默认):也是用户模式,数据包由NAT方式通过主机的接口进行传送,可以访问公网,但是无法从外部访问虚拟机网络,所以一般不会用到。网络依赖内核转发会自动添加(net.ipv4.ip_forward=1)
2)Bridge:也就是桥接模式,这种模式允许虚拟机像一个独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持,一般有线网卡都支持。

# kvm的Bridge网络模式

# 创建桥接网卡br1

  • 创建桥接网卡,建议先备份 ifcfg-eth1 网卡配置文件

virsh iface-bridge eth1 br1

在centos7 系统里面,会修改目录下/etc/sysconfig/network-scripts 如ifcfg-eth1 的网卡配置,同时新增ifcfg-br1的网卡配置

  • 取消桥接网卡

virsh iface-unbridge br1

会把ifcfg-br1 的配置覆盖掉ifcfg-eth1 的配置,会发现缺省一些参数,比如:DEFROUTE=yes,TYPE=Ethernet,DNS1=XXXXXX

  • 查看

virsh net-list,brctl show

# 桥接模式的kvm虚拟机

  • 方式一

链接克隆centos7,进入到数据源目录:qemu-img create -f qcow2 -b centos7.qcow2 centos7-02.qcow2

基于centos7-02虚拟机数据盘起虚拟机,且网络是“bridge=br1”,如果虚拟机内部网络配置的是dhcp,则网段就是和宿主机同IP网段,

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

  • 方式二

编辑已经存在的 NAT网络模式 的虚拟机配置,virsh edit centos7

kvm_console1.jpg

以下是通过创建bridge虚拟机生成的配置

<interface type='bridge'>
  <source bridge='br1'/>
  <model type='virtio'/>

重启虚拟机,才能生效配置,我这里默认虚拟机内部网络是dhcp

# kvm虚拟机在线热添加

查看帮助:virsh attach-disk --help

# 添加硬盘

给centos7-02 添加硬盘

  • 创建虚拟硬盘,cd /data

qemu-img create -f qcow2 data-centos7-02.qcow2 50G

  • 给虚拟机热添加硬盘,** --config ** 永久添加修改 xml配置, 默认subdriver格式是raw格式

临时生效:virsh attach-disk centos7-02 /data/data-centos7-02.qcow2 vdb --subdriver qcow2

永久生效:virsh attach-disk centos7-02 /data/data-centos7-02.qcow2 vdb --subdriver qcow2 --config

  • 查看

virsh domblklist centos7-02

  • 登录到虚拟机初始化,挂载硬盘

mkdir /data && mkfs.xfs /dev/vdb && mount /dev/vdb /data

kvm_console1.jpg

# 扩容硬盘

  • qemu扩容虚拟硬盘

a.虚拟机 umount 卸载硬盘;b,登录到宿主机,剥离虚拟硬盘;c,宿主机扩容虚拟硬盘;d,重新添加硬盘;e.虚拟机挂载

  • 剥离虚拟硬盘,需提前卸载,防止数据丢失

virsh detach-disk centos7-02 vdb

  • 扩容虚拟硬盘

qemu-img resize /data/data-centos7-02.qcow2 100G

  • 添加硬盘,** --config ** 永久添加修改 xml配置

virsh attach-disk centos7-02 /data/data-centos7-02.qcow2 vdb --subdriver qcow2 默认subdriver格式是raw格式

  • 登录虚拟机刷新block,innod

挂载:mount /dev/vdb /data ,刷新innod,block块:xfs_growfs /data/,如果是ext4:resize2fs /dev/vdb

kvm_console1.jpg

# 添加网卡

  • 给虚拟机centos7-02 添加网卡

临时生效:virsh attach-interface centos7-02 --type bridge --model virtio --source br1

永久生效:virsh attach-interface centos7-02 --type bridge --model virtio --source br1 --config

  • 删除网卡(登录虚拟机查看网卡的mac地址)

查看:virsh domiflist centos7-02

virsh detach-interface centos7-02 --type bridge --mac 52:54:00:42:c9:23

  • 参数说明

      type: 桥接模式,,或者nat模式
      model: 默认 “rtl8139”,网卡名为ensXXX,如果网卡名为eth0 改为virtio
      source: 桥接网卡名
    

# 添加内存,CPU

  • 添加内存,在启动之前配置内存启动参数:--memory 1024,maxmemory=2048,

临时生效:virsh setmem centos7-02 2048M --live

永久添加:virsh setmem centos7-02 2048M --live --config

  • 添加CPU,在启动之前配置CPU启动参数:--vcpus 1,maxvcpus=10,记录:在虚拟化中,绑定cpu性能最高:--vcpus cpuset=1-2

临时生效:virsh setvcpus centos7-02 8 --live

永久添加:virsh setvcpus centos7-02 8 --live --config

# kvm热迁移

kvm_console1.jpg

  • 注意

1,挂载目录结构一致;2,宿主机创建桥接网络;3,添加hosts解析;4,data01机器启动nfs挂载,kvm机器挂载数据盘目录

  • kvm01机器(迁移到 192.168.108.20)

创建桥接网卡:virsh iface-bridge eth1 br1

创建虚拟机

迁移命令:virsh migrate --live centos7-02 qemu+ssh://192.168.108.20/system --unsafe

# V2V迁移(二)ESXI 到KVM迁移

V2V迁移(二)ESXI 到KVM迁移 (opens new window)

# p2v-迁移到openstack

离线迁移windows、linux到OpenStack中 (opens new window)

//
点击 -->> 给博主买咖啡 (opens new window)
上次更新: 2022/11/11, 16:11:16
虚拟化KVM
OpenStack常用命令整理(mitaka)

← 虚拟化KVM OpenStack常用命令整理(mitaka)→

最近更新
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
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
//