云底层-虚拟化

常见虚拟化技术

VMware----VMware Workstation

Redhat-----KVM

虚拟化与云计算的关系

虚拟化是一种技术 ,将不可拆分的实体资源变成可以自由化分的逻辑资源,从而实现资源的整合、隔离、在分配

云计算是 利用虚拟化的技术 对外提供的一种服务

虚拟化平台的介绍(KVM)

kvm(Kernel-based Virtaul Machine)

linux内核把kvm的模块放入了内核中,已经编译了进去 ,在之后目前的CPU厂商,集成了虚拟化指令集(硬件支持虚拟化),所以性能也随之提高

1.查看内核模块

lsmod 查看安装了哪些模块

modprobe 加载内核模块名称 

rmmod 停止内核模块名

查看硬件是否支持虚拟化

grep "vmx|svm" /proc/cpuinfo
lsmod | grep kvm

KVM是linux内核模块,需要CPU指令集

QEMU是一个虚拟化的仿真工具,通过ioctl与内核模块交互完成对硬件的虚拟化支持

Libvirt 是一个对虚拟化管理的接口和工具 提供命令有virsh virt-manager

2. Linux虚拟化平台安装

yum repolist
yum install -y qemu-kvm \
               libvirt-daemon \
               libvirt-client \
               libvirt-daemon-driver-qemu
systemctl enable --now libvirtd

virsh version

qemu-kvm 提供底层仿真支持

libvirt-daemon  libvirtd守护进程 管理虚拟机

libvirt-client 客户端软件提供virsh命令

libvirt-daemon-driver-qemu 连接qemu驱动

网络管理命令virsh

命令说明
virsh list [--all]列出虚拟机
virsh start/shutdown启动/关闭虚拟机
virsh destroy强制停止虚拟机
virsh define/undefine创建/删除虚拟机
virsh console连接虚拟机的 console
virsh edit修改虚拟机的配置
virsh autostart设置虚拟机自启动
virsh dominfo查看虚拟机摘要信息
virsh domiflist查看虚拟机网卡信息
virsh domblklist查看虚拟机硬盘信息
virsh net-list [--all]列出虚拟网络
virsh net-start启动虚拟交换机
virsh net-destroy强制停止虚拟交换机
virsh net-define根据xml文件创建虚拟网络
virsh net-undefine删除一个虚拟网络设备
virsh net-edit修改虚拟交换机的配置
virsh net-autostart设置开机自启动

3.创建网桥(交换机)

默认配置文件位置 /etc/libvirt/qemu/networks/vbr.xml

bridge name是ifconfig看到的网卡的名字

ip address是网桥的网关

[root@ecs ~]# vim /etc/libvirt/qemu/networks/vbr.xml
<network>
  <name>vbr</name>
  <forward mode='nat'/>
  <bridge name='vbr' stp='on' delay='0'/>
  <ip address='192.168.100.254' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.100.128' end='192.168.100.200'/>
    </dhcp>
  </ip>
</network>
[root@ecs ~]# yum install -y ebtables iptables dnsmasq
[root@ecs ~]# systemctl restart libvirtd
[root@ecs ~]# virsh net-define /etc/libvirt/qemu/networks/vbr.xml
[root@ecs ~]# virsh net-list --all
[root@ecs ~]# virsh net-start vbr
[root@ecs ~]# virsh net-autostart vbr
[root@ecs ~]# ifconfig vbr # 验证

4.创建虚拟机

host.img(存储磁盘文件,有一个可以启动的操作系统) /var/lib/libvirt/images/xx.img
host.xml(配置文件定义内存cpu网络等)/etc/libvirt/qemu/network/xx.xml

4.1 创建后端盘

4.11(兄弟们不用看,跳过4.11,我留着自己用)这就是镜像模版的制作过程

创建原始磁盘

qemu-img create -f qcow2 disk.img 20G

然后创建系统的时候用它当作硬盘,往里装系统 ,然后关闭虚拟机,把disk.img拷出来

 从这开始看创建硬盘(带后端盘的文件)

上传 cirros.qcow2 到虚拟机

下载地址http://donload.cirros-cloud.net/0.4.0/
选择“cirros-0.4.0-x86_64-disk.img"

-f 指定格式

-b 指定后端盘

[root@ecs ~]# cp cirros.qcow2 /var/lib/libvirt/images/
[root@ecs ~]# cd /var/lib/libvirt/images/
[root@ecs ~]# qemu-img create -f qcow2 -b cirros.qcow2 vmhost.img 20G
[root@ecs ~]# qemu-img info vmhost.img #查看信息

4.2 虚拟机配置文件 

官方文档地址 https://libvirt.org/format.html

 定义了虚拟机的设备、例如:CPU、内存、网卡等

[root@ecs ~]# vim /etc/libvirt/qemu/vmhost.xml
02: <name>vmhost</name>
03: <memory unit='KB'>1024000</memory>
04: <currentMemory unit='KB'>1024000</currentMemory>
05: <vcpu placement='static'>2</vcpu>
26: <source file='/var/lib/libvirt/images/vmhost.img'/>
30: <source bridge='vbr'/>

 4.3 启动虚拟机

[root@ecs ~]# virsh define /etc/libvirt/qemu/vmhost.xml
Domain vmhost defined from /etc/libvirt/qemu/vmhost.xml
[root@ecs ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     vmhost                         shut off
[root@ecs ~]# virsh start vmhost
Domain vmhost started
[root@ecs ~]# virsh console vmhost # 两次回车
Connected to domain vmhost
Escape character is ^]

login as 'cirros' user. default password: 'gocubsgo'. use 'sudo' for root.
cirros login: 
退出使用 ctrl + ]

5. 虚拟机磁盘

ROW格式:原始盘不会变,更改体现的前端盘
读:软链接指向

写:拷贝后端盘的文件到前端盘去修改

ROW支持特性: 

  • 弹性压缩
  • 快照
  • 压缩
  • 后端盘复用


创建一个VM需要几步

host.img(存储磁盘文件,有一个可以启动的操作系统) 
host.xml(配置文件定义内存cpu网络等)

1.创建虚拟交换机网络 /etc/libvirt/qemu/network/xx.xml

2.创建磁盘管理镜像       存放位置/var/lib/libvirt/images/xx.img

        基于后端镜像创建qemu-img create -f qcow2 -b cirros.qcow2 vmhost.img 20G

3.创建虚拟机配置文件   /etc/libvirt/qemu/vmhost.xml

        kvm中虚拟机xml文件释义 - 80vps 博客

4.创建实例

        virsh define /etc/libvirt/qemu/vmhost.xml

脚本创建

1 编写一个脚本用来管理虚拟机,可以完成虚拟机的批量创建、批量删除,自定义虚拟机名称等功能,现有的模板虚拟机信息如下:

  • 后端盘模板: /var/lib/libvirt/images/.node_base.qcow2
  • 配置文件模板:/var/lib/libvirt/images/.node_base.xml
    #!/bin/bash
    function clone_vm(){
      cd /var/lib/libvirt/images
      qemu-img create -f qcow2 -b cirros.qcow2 ${1}.img 10G
      sed "s,node_base,${1}," node_base.xml >/etc/libvirt/qemu/${1}.xml
      virsh define /etc/libvirt/qemu/${1}.xml
      virsh start ${1}
    }
    
    function del_vm(){
      virsh destroy $1
      virsh domblklist $1 |awk '$1~/vd*/{print "rm -f",$2}'
      virsh undefine $1
    }
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

small white poplar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值