首页 > 其他分享 >kvm部署

kvm部署

时间:2022-10-08 13:11:50浏览次数:27  
标签:KVM 虚拟化 部署 kvm dev -- root localhost

目录


KVM虚拟化

虚拟化介绍

虚拟化:在一台计算机上虚拟出多个逻辑的计算机,而且每个逻辑计算机

它可以是不同操作系统

虚拟化技术:可以扩大硬件容量,单个cpu模拟出多个cpu并行,

允许一个平台上同时运行多个操作系统,应用程序都可以在相互独立

的空间内运行,而且互不影响。

为什么企业使用虚拟化技术

1、节约成本

2、提高效率,物理机我们一般称为宿主机(Host),宿主机上面的虚拟机称为客户机(Guest)。

那么 Host 是如何将自己的硬件资源虚拟化,并提供给 Guest 使用的呢?
这个主要是通过一个叫做 Hypervisor 的程序实现的。

Hypervisor:一种运行在物理服务器硬件与操作系统之间的中间软件层

可允许多个操作系统和应用来共享硬件资源

根据 Hypervisor 的实现方式和所处的位置,虚拟化又分为两种:

完全虚拟化:直接在物理机上部署虚拟化,且不需要修改操作系统内核

半虚拟化:需要修改操作系统内核,使其支持虚拟化驱动来实现虚拟化技术

1、完全虚拟化

Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。Xen 和 VMWare 的 ESXi 都属于这个类型

![img](file:///C:/Users/jiran/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg)

2、半虚拟化

![img](file:///C:/Users/jiran/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg)

理论上讲:

完全虚拟化一般对硬件虚拟化功能进行了特别优化,性能上比半虚拟化要高;
半虚拟化因为基于普通的操作系统,会比较灵活,比如支持虚拟机嵌套。嵌套意味着可以在KVM虚拟机中再运行KVM。

二、kvm介绍

kVM 全称是 Kernel-Based Virtual Machine。也就是说 KVM 是基于 Linux 内核实现的。
KVM有一个内核模块叫 kvm.ko,只用于管理虚拟 CPU 和内存。

那 IO 的虚拟化,比如存储和网络设备则是由 Linux 内核与Qemu来实现。

Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qemu 将这些指令转译给真正的硬件。

正因为 Qemu 是纯软件实现的,所有的指令都要经 Qemu 过一手,性能非常低,所以,在生产环境中,大多数的做法都是配合 KVM 来完成虚拟化工作,因为 KVM 是硬件辅助的虚拟化技术,主要负责 比较繁琐的 CPU 和内存虚拟化,而 Qemu 则负责 I/O 虚拟化,两者合作各自发挥自身的优势,相得益彰.

作为一个 Hypervisor,KVM 本身只关注虚拟机调度和内存管理这两个方面。IO 外设的任务交给 Linux 内核和 Qemu。

Libvirt 就是 KVM 的管理工具。管理虚拟机和虚拟化功能的软件

其实,Libvirt 除了能管理 KVM 这种 Hypervisor,还能管理 Xen,VirtualBox 等。

Libvirt 包含 3 个东西:后台 daemon 程序 libvirtd、API 库和命令行工具 virsh

1、libvirtd是服务程序,接收和处理 API 请求;

2、API 库使得其他人可以开发基于 Libvirt 的高级工具,比如 virt-manager,这是个图形化的 KVM 管理工具;

3、virsh 是我们经常要用的 KVM 命令行工具

三、KVM部署(基于CentOS7)

环境说明:

系统:CentOS8

IP:192.168.34.129

cpu虚拟化功能

image-20221003221654580

虚拟话设置(内存:8G 硬盘:200G 虚拟化功能开启)

image-20221003223400100

新建分区,将硬盘所有大小都给这个分区

[root@localhost ~]# parted /dev/sdb
GNU Parted 3.2
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
                                                                     (parted) mklabel 
                                                                     New disk label type? 
aix    atari  dvh    loop   msdos  sun    
amiga  bsd    gpt    mac    pc98   
New disk label type? msdos 
Warning: The existing disk label on /dev/sdb will be destroyed and
all data on this disk will be lost. Do you want to continue?
                                                                                                                                          Yes/No? yes
                                                                     (parted) unit 
                                                                     Unit?  [compact]? MiB
                                                                     (parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 204800MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start  End  Size  Type  File system  Flags

                                                                     (parted) mkpart 
                                                                     Partition type?  primary/extended? primary 
                                                                     File system type?  [ext2]? xfs 
                                                                     Start? 10MiB
                                                                     End? 204790MiB
                                                                     (parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 204800MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start    End        Size       Type     File system  Flags
 1      10.0MiB  204790MiB  204780MiB  primary  xfs          lba
 (parted) q
Information: You may need to update /etc/fstab.

[root@localhost ~]# mkfs.xfs /dev/sdb1 
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="cdbacb73-9495-48e3-972b-83821a35a1a0" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="693c3d90-01"
[root@localhost ~]# tail -1 /etc/fstab
UUID="cdbacb73-9495-48e3-972b-83821a35a1a0" /lykvmdata xfs defaults 0 0
[root@localhost ~]# mount -a 
[root@localhost ~]# df -Th
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  3.8G     0  3.8G   0% /dev
tmpfs               tmpfs     3.8G     0  3.8G   0% /dev/shm
tmpfs               tmpfs     3.8G  9.0M  3.8G   1% /run
tmpfs               tmpfs     3.8G     0  3.8G   0% /sys/fs/cgroup
/dev/mapper/cs-root xfs        17G  1.7G   16G  10% /
/dev/sda1           xfs      1014M  195M  820M  20% /boot
tmpfs               tmpfs     775M     0  775M   0% /run/user/0
/dev/sdb1           xfs       200G  1.5G  199G   1% /lykvmdata

部署yum源

[root@localhost yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--100  2495  100  2495    0     0   7425      0 --:--:-- --:--:-- --:--:--  7425
[root@localhost yum.repos.d]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

安装所需要的依赖包

[root@localhost ~]# dnf -y install epel-release vim wget net-tools unzip zip gcc gcc-c++
[root@localhost ~]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/bridge-utils-1.5-9.el7.x86_64.rpm
[root@localhost ~]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libvirt-python-4.5.0-1.el7.x86_64.rpm
[root@localhost ~]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/bridge-utils-1.5-9.el7.x86_64.rpm
[root@localhost ~]# rpm -ivh --nodeps qemu-kvm-tools-1.5.3-175.el7.x86_64.rpm
[root@localhost ~]# rpm -ivh --nodeps libvirt-python-4.5.0-1.el7.x86_64.rpm

验证cpu是否支持kvm,vmx是intel的svm是AMD的

[root@localhost ~]# egrep -o 'vmx|svm' /proc/cpuinfo
vmx

安装kvm

[root@localhost ~]# dnf -y install qemu-kvm  qemu-img  virt-manager  libvirt  libvirt-client  virt-install  virt-viewer  bridge-utils  libguestfs-tools

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens160 ifcfg-br0
[root@localhost network-scripts]# cat ifcfg-br0
TYPE=Bridge
BOOTPROTO=none
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.34.150
PREFIX=24
GATEWAY=192.168.34.2
DNS1=8.8.8.8

[root@localhost network-scripts]# 
[root@localhost network-scripts]# cat ifcfg-ens160
TYPE=Ethernet
BOOTPROTO=none
NAME=ens160
DEVICE=ens160
ONBOOT=yes
BRIDGE=br0
[root@localhost network-scripts]# systemctl  restart NetworkManager
[root@localhost network-scripts]# ifdown ens160 ;ifup ens160 
Connection 'ens160' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
设置开机自启
[root@localhost ~]# systemctl  restart libvirtd
[root@localhost ~]# systemctl  enable libvirtd

验证是否安装

[root@localhost ~]# virsh -c qemu:///system list
 Id   Name   State
--------------------
[root@localhost ~]# virsh --version
6.0.0
[root@localhost ~]# virt-install --version
2.2.1
[root@localhost ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.000c2940e9e5	no		ens160
virbr0		8000.525400aafa96	yes		virbr0-nic

将qemu-kvm做一个软连接

[root@localhost ~]# ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm

kvm管理界面安装

[root@localhost ~]# yum -y install git python3-pip libvirt-python libxml2-python python-websockify supervisor nginx python3-devel
[root@localhost webvirtmgr]#  pip3 install --upgrade pip
[root@localhost webvirtmgr]#  pip install -r requirements.txt

[root@localhost src]#  git clone http://github.com/retspen/webvirtmgr.git
[root@localhost src]# cd webvirtmgr/

[root@localhost ~]# python3
Python 3.6.8 (default, Sep 10 2021, 09:13:53) 
[GCC 8.5.0 20210514 (Red Hat 8.5.0-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> exit()

标签:KVM,虚拟化,部署,kvm,dev,--,root,localhost
From: https://www.cnblogs.com/TQingS/p/16768617.html

相关文章

  • Ubuntu部署DNS服务器
    Bind服务1.安装服务aptinstall-ybind92.配置定义域文件vim/etc/bind/named.conf.default-zones'''zone"con.org"{typemaster;file"/etc/bind/d......
  • mac通过docker一键部署MySQL8
    目录mac通过docker一键部署MySQL8一、前言二、系统配置三、安装步骤Dockerhub查看镜像地址1、一键安装1.1、克隆脚本1.2、安装程序1.2.1、程序安装详情1.3、初始化用户1.3.......
  • Centos7部署pptp
    方法一查看参考文章即可。方法二安装pptp和pppyuminstallppppptpd-y如果安装不了,换yum源下载阿里云或者网易镜像cd/etc/yum.repos.dmvCentOS-Base.repoCe......
  • CentOS部署MySQL
    Linux上安装MySQL第一步:确保服务器在最新的状态(可有可无)[root@chenstudy~]#yum-yupdate第二步:检测系统是否自带安装MySQL我之前安装过MySQL,现在已经卸载了[r......
  • idea远程连接云服务器,并将本地代码部署在云端进行运算
    电脑内存和显存过小,需要在云服务器进行运算我的模型,由于一直在自己的电脑上写的代码,于是之间迁移代码到云服务器,只要通过ssh链接到云端后,将python解释器使用云端的解释器就......
  • k3s部署kuboard面板
    k3s安装好了,我们要给它选用一个好用的面板,这里采用了kuboard面板。一、官方文档https://kuboard.cn/install/v3/install-built-in.html#部署计划二、安装我们选用内建......
  • docker部署WordPress
    下载数据库镜像[root@docker~]#dockerpullmysql:latest[root@docker~]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZErp......
  • Docker使用docker compose部署zfile 实现在线浏览下载
    需要先安装docker-composecurl-Lhttps://get.daocloud.io/docker/compose/releases/download/v2.2.3/docker-compose-`uname-s`-`uname-m`>/usr/local/bin/docker-c......
  • KVM虚拟化
    KVM虚拟化目录KVM虚拟化虚拟化介绍KVM简介Qemu-KVM虚拟化部署KVMKVM管理界面安装虚拟化介绍虚拟化:在一台计算机上虚拟出多个逻辑的计算机,而且每个逻辑计算机它可以是不......
  • Redis Cluster的部署与维护
    1、RedisCluster的工作原理  不管是Redis的主从复制,还是基于主从复制环境之上的Redis哨兵(Sentinel)模式,这些都是做到了数据的远程备份,并且在哨兵模式下还可以做到原主节......