文章目录

  • 1. kvm虚拟机的桥接网络
    • 1.1 创建桥接网卡
    • 1.2 新虚拟机使用桥接模式
    • 1.3 桥接和NAT原理图
    • 1.4 将已有虚拟机网络修改为桥接模式
  • 2. 热添加技术
    • 2.1 kvm热添加硬盘
    • 2.2 扩容:
    • 练习1:扩容kvm虚拟机的根分区
    • 2.3kvm虚拟机在线热添加和删除网卡
    • 2.4 kvm虚拟机在线热添加内存
    • 2.5 kvm虚拟机在线热添加cpu
  • 3. 热迁移 (共享的网络文件系统)
    • 详细步骤
    • 3.1 清理当前的宿主机环境,保证一个干净的环境测试
    • 3.2 调整宿主机 并克隆第二台kvm02宿主机和nfs01共享主机
    • 3.3 给三台主机同时安装nfs环境
    • 3.4 配置nfs服务端(nfs01上)
    • 3.5 挂载并测试
    • 3.6 将虚拟机从kvm02宿主机迁移到kvm01宿主机上
    • 3.7 再次将迁移过到kvm01上的web03虚拟机迁移回kvm02上
  • 4. 安装ESXI并安装一台虚拟机
    • 4.1 安装ESXI
    • ESXI的常用配置
    • 4.2 下面是按照centos6的步骤
  • 5. 练习
    • 5.1 将kvm虚拟机迁移到esxi上(未完成)
    • 5.2 将ESXI虚拟机迁移到kvm上(未完成)

云计算的虚拟机不要挂起,不然上不了网

1. kvm虚拟机的桥接网络

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

1.1 创建桥接网卡

创建桥接网卡命令

virsh iface-bridge eth0 br0

取消桥接网卡命令

virsh iface-unbridge br0

1.2 新虚拟机使用桥接模式

默认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
创建链接克隆生成虚拟机磁盘文件
qemu-img  create  -f qcow2  -b 49-web01.qcow2 49-web04.qcow2创建桥接网卡命令
virsh iface-bridge eth0 br0新虚拟机使用桥接模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web05 --memory 1024 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network  bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

1.3 桥接和NAT原理图

1.4 将已有虚拟机网络修改为桥接模式

a:关机状态下修改虚拟机配置文件:
例如:virsh edit centos7
<interface type='bridge'>
<source bridge='br0'/>b:启动虚拟机,测试虚拟机网络
<interface type='network'><mac address='52:54:00:6e:d2:c9'/><source network='default'/>

2. 热添加技术

热添加硬盘、网卡、内存、cpu

2.1 kvm热添加硬盘

临时生效

virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2

永久生效 --config

virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2 --config

临时剥离硬盘

virsh detach-disk web01 vdb

永久剥离硬盘

virsh detach-disk web01 vdb --config

2.2 扩容:

virsh shutdown web05
qemu-img resize web05.qcow2 100G
qemu-img info web05.qcow2
virsh console web05进入到kvm虚拟机
[root@localhost ~]# fdisk -l
[root@localhost ~]# mkfs.xfs  /dev/vdb
[root@localhost ~]# mount /dev/vdb /mnt/
/dev/vdb        100G   33M  100G   1% /mnt

kvm虚拟机硬盘扩容规范

1.在kvm虚拟机里把扩容盘的挂载目录,卸载掉
[root@localhost ~]# umount /mnt2.在宿主机上剥离硬盘
[root@kvm01 /data]# virsh detach-disk web05 vdb
Disk detached successfully3.在宿主机上调整容量
[root@kvm01 /data]# qemu-img resize web05.qcow2 200G
Image resized.4.在宿主机上再次附加硬盘
[root@kvm01 /data]# virsh attach-disk web05 /data/web05.qcow2 vdb --subdriver qcow2
Disk attached successfully5.在虚拟机里再次挂载扩容盘
[root@localhost ~]# mount /dev/vdb /mnt
[root@localhost ~]# df -h
/dev/vdb        100G   33M  100G   1% /mnt6.在虚拟机里用xfs_growfs更新扩容盘超级块信息
[root@localhost ~]# xfs_growfs /dev/vdb
data blocks changed from 26214400 to 52428800
[root@localhost ~]# df -h
/dev/vdb        200G   33M  200G   1% /m    扩容为200G

练习1:扩容kvm虚拟机的根分区

链接

关闭虚拟机
shutdown -h now在宿主机上执行操作
[root@kvm01 /data]# qemu-img resize web04.qcow2 50G
[root@kvm02 /data]# qemu-img info web04.qcow2
image: web04.qcow2
file format: qcow2
virtual size: 50G (53687091200 bytes)
disk size: 439M
cluster_size: 65536
Format specific information:compat: 1.1lazy refcounts: false[root@kvm02 /data]# virsh start web04
[root@kvm02 /data]# virsh console web04
Connected to domain web04
Escape character is ^]
...
[root@localhost ~]#  df -h
[root@localhost ~]#  fdisk -l
[root@localhost ~]# fdisk /dev/vda
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Command (m for help): d
Selected partition 1
Partition 1 is deletedCommand (m for help): n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-104857599, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599):
Using default value 104857599
Partition 1 of type Linux and of size 50 GiB is setCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.[root@localhost ~]# reboot       重新添加分区后重启
[root@localhost ~]# xfs_growfs /dev/vda1   更新超级块
[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G  915M   50G   2% /

2.3kvm虚拟机在线热添加和删除网卡

创建虚拟机:
[root@kvm01 /data]# virsh destroy web04
[root@kvm01 /data]# virsh undefine web04
[root@kvm01 /data]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024,maxmemory=2048 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole在宿主机上添加网卡:
virsh attach-interface web04 bridge br0
virsh attach-interface web04 bridge br0 --model  virtio
# --model virtio    此产参数可以修改网卡名称为eth*在宿主机上删除网卡:删除虚拟机每张网卡的mca地址
virsh detach-interface web04 bridge --mac 52:54:00:68:68:40
virsh detach-interface web04 bridge --mac 52:54:00:a8:72:44
# 只剩下一块网卡时不需要加mac地址,直接删除即可上面的操作临时生效,下次重启后恢复,可以添加--config参数使永久生效
virsh attach-interface web04 bridge br0 --model  virtio --config

2.4 kvm虚拟机在线热添加内存

临时热添加内存
virsh setmem web03 1024M
永久增大内存
virsh setmem web03 1024M --config
删除web03这台虚拟机:
[root@kvm02 /data]# virsh destroy web03
[root@kvm02 /data]# virsh undefine web03 再次创建web03虚拟机 设置最大内存maxmemory=2048:
[root@kvm02 /data]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web03 --memory 512,maxmemory=2048 --vcpus 1 --disk /data/web03.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
[root@kvm02 /data]# virsh listId    Name                           State
----------------------------------------------------2     web04                          running4     web03                          running连接web03查看内存情况
[root@kvm02 /data]# virsh console web03
...
[root@localhost ~]# free -mtotal        used        free      shared  buff/cache   available
Mem:            465          63         297           8         104         280
Swap:             0           0           0在宿主机上修改内存大小为1024M
[root@kvm02 /data]# virsh setmem web03 1024M在web03虚拟机上查看内存已经变大了
[root@localhost ~]# free -mtotal        used        free      shared  buff/cache   available
Mem:            977          63         808           8         104         791
Swap:             0           0           0再增加为2048M
[root@kvm02 /data]# virsh setmem web03 2048M再次查看虚拟机内存变大了
[root@localhost ~]# free -mtotal        used        free      shared  buff/cache   available
Mem:           2001          63        1832           8         104        1816
Swap:             0           0           01.如果修改的内存超过了设置的最大值,则报错
[root@kvm02 /data]# virsh setmem web03 4096M
error: invalid argument: cannot set memory higher than max memory2.如果将虚拟机关机后增加内存是可以调整的,但是超过宿主机的最大内存的话,会导致不能启动
3.如果修改的内存过小,则会让虚拟机奔溃掉

2.5 kvm虚拟机在线热添加cpu

setvcpus     核心数
setvcpu     特性热添加cpu核数
virsh setvcpus web04 4
永久添加cpu核数
virsh setvcpus web04 4 --config

先把虚拟机web03删除掉:
virsh destroy web03
virsh undefine web03 创建web03虚拟机:
[root@kvm02 /data]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web03 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /data/web03.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole登录到虚拟机web03查看cpu核心数
[root@kvm02 /data]# virsh console web03
...
[root@localhost ~]# lscpu |head -5
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                1    #当前为1核心
On-line CPU(s) list:   0在宿主机上增加web03虚拟机的cpu核心数为2核
[root@kvm02 /data]# virsh setvcpus web03 2查看虚拟机web03的cpu核心数
[root@localhost ~]# lscpu |head -5
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2        #改为2核心
On-line CPU(s) list:   0,1修改虚拟机的cpu核心数为4核
[root@kvm02 /data]# virsh setvcpus web03 4再次查看虚拟机cpu
[root@localhost ~]# lscpu |head -5
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3


3. 热迁移 (共享的网络文件系统)

kvm虚拟机热迁移资料—old强哥
web04.qcow2 的环境下载链接: 提取码: sw23

冷迁移
1.关机
2.备份配置文件
3.scp传输配置文件和磁盘文件,传输到新的宿主机
4.virsh define web04.xml
5.启动

热迁移
kvm虚拟机:配置文件,nfs共享


详细步骤

环境要求:
主机名 ip 内存 网络 软件需求 虚拟化
kvm01 10.0.0.11 2G 创建br0桥接网卡 kvm和nfs 开启虚拟化
kvm02 10.0.0.12 2G 创建br0桥接网卡 kvm和nfs 开启虚拟化
nfs01 10.0.0.31 1G nfs

kvm虚拟机热迁移大体步骤规划

  • 两边的环境(桥接网卡)
  • 实现共享存储(nfs)
  • 虚拟机桥接网络
  • 在线热迁移

注意:需要互相做好host解析 ↓

不然后面可能有报错,会因为主机名重复吗,
修改主机名:
hostnamectl set-hostname kvm01 或 kvm02kvm01和kvm02宿主机都添加host解析:
[root@kvm01 ~]# cat /etc/hosts
192.168.37.202 mirrors.aliyun.com
10.0.0.11 kvm01
10.0.0.12 kvm02scp -rp /etc/hosts 10.0.0.12:/etc/

3.1 清理当前的宿主机环境,保证一个干净的环境测试

保留一个配置文件web04.qcow2,将/opt/下和/data/下的其余全部删除掉[root@kvm01 ~]# rm -rf /opt/*
[root@kvm01 ~]# mv /data/web04.qcow2 /opt/
[root@kvm01 ~]# rm -rf  /data/*
[root@kvm01 ~]# mv /opt/web04.qcow2 /data/
[root@kvm01 ~]# ll /data/
total 450688
-rw-r--r-- 1 qemu qemu 459800576 Sep  3 17:08 web04.qcow2删除所有的配置文件:
[root@kvm01 /data]# rm -rf /etc/libvirt/qemu/*.xml
[root@kvm01 /data]# systemctl restart libvirtd
[root@kvm01 /data]# virsh list --allId    Name                           State
----------------------------------------------------
\\没有虚拟机了#想kvm01宿主机关机
[root@kvm01 /data]# shutdown -h now

3.2 调整宿主机 并克隆第二台kvm02宿主机和nfs01共享主机

调整内存大小后,克隆两台主机,分别为kvm02和nfs01

开机后修改IP地址并重启网卡

因为是桥接网卡,索引网卡修改路径是
vim /etc/sysconfig/network-scripts/ifcfg-br0
systemctl restark network

kvm01 默认 10.0.0.11
kvm02 修改为10.0.0.12
nfs01 修改为10.0.0.31

3.3 给三台主机同时安装nfs环境

yum install nfs-utils rpcbind

如果没有网络可能是dhcp的原因,暂时关掉

3.4 配置nfs服务端(nfs01上)

添加配置文件(async异步同步,性能更高)
[root@nfs01 ~]# vim /etc/exports
/data  10.0.0.0/24(rw,async,no_root_squash,no_all_squash)重启
[root@nfs01 ~]# systemctl restart rpcbind
[root@nfs01 ~]# systemctl restart nfs创建/data目录
[root@nfs01 ~]# mkdir /data去kvm01和02上检查是否连接nfs
[root@kvm01 /data]#  showmount -e 10.0.0.31
Export list for 10.0.0.31:
/data 10.0.0.0/24[root@kvm02 /data]#  showmount -e 10.0.0.31
Export list for 10.0.0.31:
/data 10.0.0.0/24

3.5 挂载并测试

kvm01上:
[root@kvm01 ~]# mount -t nfs 10.0.0.31:/data/ /data/
[root@kvm01 ~]# df -h
10.0.0.31:/data   48G  2.2G   46G   5% /datakvm02上:
[root@kvm02 /data]# mount -t nfs 10.0.0.31:/data/ /data/
[root@kvm02 /data]# df -h
10.0.0.31:/data   48G  2.2G   46G   5% /data查看nfs01的/data目录是否同步之前的文件:
[root@nfs01 ~]# ll -h /data/
total 446M
-rw-r--r-- 1 107 107 6.3M Sep  3 22:14 web03.qcow2
-rw-r--r-- 1 107 107 439M Sep  3 22:24 web04.qcow2

3.6 将虚拟机从kvm02宿主机迁移到kvm01宿主机上

虚拟机都在kvm02上:
[root@kvm02 /data]# virsh list Id    Name                           State
----------------------------------------------------2     web04                          running6     web03                          running当前的kvm01上没有虚拟机:
[root@kvm01 ~]# virsh list --allId    Name                           State
----------------------------------------------------执行迁移的命令 (将kvm02上的web03迁移到10.0.0.11宿主机上)
[root@kvm02 /data]# virsh migrate --live --verbose web03 qemu+ssh://10.0.0.11/system --unsafe
root@10.0.0.11's password:
Migration: [100 %]在kvm01上查看web03虚拟机已迁移过来了
[root@kvm01 ~]# virsh listId    Name                           State
----------------------------------------------------3     web03                          running登录web03上修改网卡配置文件
[root@kvm01 ~]# virsh console web03
[root@localhost ~]# sed -i 's#dhcp#static#' /etc/sysconfig/network-scripts/ifcfg-eth0添加下面的内容到网卡配置中
IPADDR=10.0.0.129
GATEWAY=10.0.0.254
NETMASK=255.255.255.0
DNS1=223.5.5.5重启网卡
systemctl restart network

3.7 再次将迁移过到kvm01上的web03虚拟机迁移回kvm02上

迁移到10.0.0.12的kvm02宿主机上:
[root@kvm01 ~]# virsh migrate --live --verbose web03 qemu+ssh://10.0.0.12/system --unsafe
root@10.0.0.12's password:
Migration: [100 %]
[root@kvm01 ~]# virsh listId    Name                           State
----------------------------------------------------在kvm02宿主机上查看已经迁移回来了:
[root@kvm02 /data]# virsh list Id    Name                           State
----------------------------------------------------2     web04                          running7     web03                          running

迁移过程中会丢包


4. 安装ESXI并安装一台虚拟机

4.1 安装ESXI

新建虚拟机

添加镜像
镜像网盘提取码: mhtx
VMware-viclient网盘下载链接 提取码: jfcr













用VMware vSphere软件连接















ESXI的常用配置

开启ssh功能

点击启动后去控制台操作

4.2 下面是按照centos6的步骤














等待安装好后就可以操作使用了

5. 练习

5.1 将kvm虚拟机迁移到esxi上(未完成)

qemu-img convert -f qcow2 oldimage.qcow2 -O vmdk newimage.vmdk
#可能不需要
vmkfstools -i oldimage.vmdk newimage.vmdk -d thin

5.2 将ESXI虚拟机迁移到kvm上(未完成)

将虚拟机导出ova文件
virt-v2v -i ova centos-dev-test01-v2v.ova -o local -os /opt/test -of qcow2






云计算day02-KVM相关推荐

  1. 世民谈云计算:KVM 介绍

    http://www.cnblogs.com/sammyliu/p/4543110.html KVM 介绍(1):简介及安装 学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 ...

  2. 云计算之KVM虚拟化实战

    1 基础环境规划 1.1 主机环境规划 系统版本 主机名 IP地址 内存 磁盘 CentOS6.9 kvm-node1 10.0.0.200 2G 20G CentOS6.9 kvm-node2 10 ...

  3. [ 云计算相关 ] KVM虚拟化平台windows虚拟机迁移到openstack虚拟化平台(KVM虚拟化环境中Windows虚拟机安装Virtio驱动程序)

  4. 云计算系统管理、 云计算应用管理、系统服务管理进阶

    云计算系统管理. 云计算应用管理.系统&服务管理进阶 云计算系统管理 DAY01 开学典礼.云网络基础 DAY02 Linux系统简介.安装Linux系统.Linux基本操作 DAY03 命令 ...

  5. 带你走进虚拟化世界之kvm(转载)

    http://chuck.blog.51cto.com/10232880/1720953 带你走进虚拟化世界之kvm 2015-12-08 23:10:46 标签:云计算 虚拟化 kvm 原创作品,允 ...

  6. 完全虚拟化和半虚拟化区别

    半虚拟化和全虚拟化最大的区别: 半虚拟化是需要更改系统内核才得以实现虚拟化,而完全虚拟化是不需要修改内核. Xen虚拟机有两种运行方式:完全虚拟化(full virtualization)和半虚拟化( ...

  7. mysqldba及linux企业集群实战工程师

    linux运维工程师和DBA那个越老越吃香?哪个适合一直做? 这两个都是经验越多越吃香.并不是越老越吃香.要靠验的不断积累,而不是年龄. Linux培训内容有哪些 以下是比较经典的Linux编程学习路 ...

  8. kvm架构服务器_顺应云计算变革大势,腾讯云全新星星海自研服务器真正为云而生...

    编辑 | 小互 从云计算到云原生,云计算的加速进化正在给底层计算带来新需求. 今年以来,受疫情影响和新基建的不断加速推进,越来越多的企业开始选择上云,基于云的各种新产业.新业态.新模式全面爆发. 由腾 ...

  9. KVM 虚拟化技术以及 KVM 和云计算的关系

    KVM 是 Kernel-based Virtual Machine 的简称,KVM 要求 CPU 支持硬件虚拟化技术(如 intel VT 或 AMD-V),是 Linux 下的全虚拟化解决方案.K ...

  10. 云计算技术背后的那些天才程序员:KVM之父Avi Kivity

    摘要:KVM以其精简的架构,清晰的定位获得Linux社区多数开发人员的支持并快速被合并入主干,从而成为x86全虚拟化技术的一颗新星,其提出者Avi Kivity对于计算机体系架构和Linux内核有深入 ...

最新文章

  1. Angela启动步骤
  2. gns3 查看网关_gns3常用命令
  3. 基于DDD的.NET开发框架 - ABP工作单元(Unit of Work)
  4. qpython获取手机gps_基于Python获取照片的GPS位置信息
  5. Postresql初始安装后用户的创建
  6. textarea文本域
  7. 莫烦python学习笔记1
  8. 鸿蒙曰蜉蝣不知所求,《庄子》释解(五七):浮游不知所求,猖狂不知所往
  9. 严格执行系统,严格止损,不要心存侥幸,勇敢承认错误,不给自己的错误找理由。
  10. 弘辽科技:淘宝搜索流量是什么意思?如何提升流量?
  11. 数据结构之ElemType
  12. useLocalStorage
  13. 怎么用c语言编写画图软件,大佬们,小菜鸟想问一问用vc编译器做简易画图软件...
  14. 手机通讯录删除了怎么恢复
  15. 2020春季学期哈工大软件构造学习心得二
  16. 1007: 求正方形面积
  17. 【CSS—美化网页元素】
  18. 【2013Esri中国用户大会】商业智能位置分析之Esri Maps for Cognos
  19. window 2003安装完系统之后网卡驱动处理办法
  20. 【数据结构】详解栈的应用之表达式求值

热门文章

  1. 巨型电子计算机应用,1989年11月17日 我国首台小巨型电子计算机研制成功
  2. 7. 【containerd】连接远程containerd问题
  3. pytorch网络知识点四_thop计算Parameter和FLOPs,__all__的作用, GFLOPs =? GMacs
  4. 简述中断处理的6个步骤_完整的中断处理过程分为那几个阶段?
  5. Li‘s 影像组学视频学习笔记(29)-ICC的计算
  6. 在eclipes 中配置python
  7. Chrome的隐身模式
  8. 中国石油大学《高等数学二》第二次在线作业
  9. C语言编程编制职工档案管理程序,c语言人事档案管理程序
  10. Autosar MCAL开发必知的“术语”+“缩写”概念