首页 > 其他分享 >构建 KVM 环境

构建 KVM 环境

时间:2023-05-09 15:36:38浏览次数:39  
标签:00 kvm testkvm -- qcow2 KVM 环境 构建 ff

配置这东西,时效性很强!最好的办法是去看官方文档,这次我的配置方式是根据 Debian 官方的流程配置的,而 KVM 官方也有文档指导配置。原理都一样:

  • 使用的硬件必须要支持虚拟化(Intel-VT,AMD-V)
  • 接着是 BIOS 要打开虚拟化支持(如果你是用虚拟机的话,就在硬件设置里把 CPU 的虚拟机选项打开!)
  • 内核的模块要加载:
    • lsmod | grep kvm 之后要看到 kvm 模块和 kvm_intel 模块
    • 如果没有的话,就用 modprobe kvm modprobe kvm_intel 来加载模块!
  • 软件安装
    • 源码安装
    • 包管理器直接安装(省事)
  • 网络配置(看需求)

然后你就可以开心地使用 KVM 创建虚拟机了。

然后关于创建虚拟机,一般就是两个步骤:

  • 用 qemu-img 创建即将使用的镜像文件/磁盘分区(用于存储客户机的系统和文件)
  • 用 virsh-install 创建虚拟机

本文 KVM 的部署步骤:

  1. 安装必备软件
apt-get install libvirt-clients libvirt-daemon-system qemu-kvm virtinst virt-manager virt-viewer

libvirt-clients 就是提供 libvirt API 工具进行管理(例如 virsh 命令行工具)。
libvirt-daemon-system 提供 libvirtd 守护进程(暂不知道为何物)。
qemu-kvm 之前说过了,是用户态工具。负责用户空间的管理。网卡、显卡、硬盘等。
virtinst 提供 virt-install。
virt-manager 图形化管理工具。
virt-viewer 让你访问虚拟机的图形控制台。

  1. 配置网桥隔离虚拟机但仍保留一定的网络权限。

编辑 /etc/network/interfaces,配置物理接口 (eth0 & enp1so0) 和桥接接口 (通常是br0) 的连接。

首先需要 bridge-utils 软件:apt install bridge-utils -y

网桥配置:

vim /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# auto ens33
# iface ens33 inet static
#  address 192.168.137.10
#  netmask 255.255.255.0
#  gateway 192.168.137.2

# bridge for VM
auto br0
iface br0 inet static
  address 192.168.137.10
  netmask 255.255.255.0
  gateway 192.168.137.2
  bridge_ports ens33
  bridge_stp off
  bridge_waitport 5
  bridge_fd 0

配置成功:

haitao@debian:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 00:0c:29:7f:4c:ab brd ff:ff:ff:ff:ff:ff
    altname enp2s1
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 2e:7c:0d:d0:36:f9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.137.10/24 brd 192.168.137.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::2c7c:dff:fed0:36f9/64 scope link
       valid_lft forever preferred_lft forever
haitao@debian:~$
  1. 告诉 libvirtd 哪里用来存放磁盘镜像(默认是/var/lib/libvirt/images/)
    haitao@debian:~$ virsh pool-create-as srv-kvm dir --target /srv/kvm/
    Pool srv-kvm created
    
    haitao@debian:~$
  1. 将用户添加到 libvirt 组(就不用老是 sudo 去使用 libvirt 的命令了)

usermod -aG libvirt haitao

  1. 开始安装虚拟机

haitao@debian:~$ sudo virt-install --name testkvm --disk /srv/kvm/testkvm.qcow2,format=qcow2,size=10 --vcpus 1 --memory 1024 --cdrom cirros-0.3.4-x86_64-disk.img --network bridge=br0 --graphics vnc --os-type generic
WARNING  Graphics requested but DISPLAY is not set. Not running virt-viewer.
WARNING  No console to launch for the guest, defaulting to --wait -1

Starting install...
Allocating 'testkvm.qcow2'                                  |  10 GB  00:00

Domain is still running. Installation may be in progress.
Waiting for the installation to complete.  #在这个地方,终端会一直卡在这里,不要 cut 掉它,新建终端即可!
Domain has shutdown. Continuing.
Domain creation completed.
User stopped the VM. Not rebooting.
haitao@debian:~$
  1. 查看客户机(domain)
root@debian:~# virsh list
 Id   Name      State
-------------------------
 1    testkvm   running

报错

第一次安装虚拟机的时候,我忘记先创建镜像文件了,然后直接用了这条命令:

haitao@debian:~$ virt-install --name testkvm --disk /srv/kvm/testkvm.qcow2,format=qcow2,size=10 --vcpus 1 --memory 1024 --cdrom cirros-0.3.4-x86_64-disk.img --network bridge=br0 --graphics vnc --os-type linux
WARNING  OS name 'linux' is deprecated, using 'generic' instead. This alias will be removed in the future.  # linux 选项已被弃用,改用 generic 即可!
WARNING  KVM acceleration not available, using 'qemu'
WARNING  Graphics requested but DISPLAY is not set. Not running virt-viewer.
WARNING  No console to launch for the guest, defaulting to --wait -1

Starting install...
ERROR    Couldn't create storage volume 'testkvm.qcow2': 'internal error: Child process (/usr/bin/qemu-img create -f qcow2 -o preallocation=metadata,compat=1.1,lazy_refcounts /srv/kvm/testkvm.qcow2 10485760K) unexpected exit status 1: qemu-img: /srv/kvm/testkvm.qcow2: Could not create '/srv/kvm/testkvm.qcow2': Permission denied  # 镜像文件(qcow2) 没有创建,最好先用 `qemu-img create` 创建镜像文件(动态变化的,不怕占磁盘)
'
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
  virsh --connect qemu:///session start testkvm
otherwise, please restart your installation.

本文的内容参考书籍:《KVM 实战:原理、进阶与性能调优》(任永杰、程舟 著,机械工业出版社)

文档参考:
12.2. 虚拟化 (debian.org)
Using KVM On Ubuntu 7.10 (Gutsy Gibbon) (howtoforge.com)
Setting up KVM on Red Hat Enterprise Linux | Red Hat Developer
创建桥接网络

题图由Reto ScheiwillerPixabay上发布

标签:00,kvm,testkvm,--,qcow2,KVM,环境,构建,ff
From: https://www.cnblogs.com/notea/p/KVM_Build.html

相关文章

  • Centos7搭建Minio环境(配置开机自启)
    Minio添加环境变量#设置控制台账号最少3位exportMINIO_ACCESS_KEY=admin#设置密码最少8位exportMINIO_SECRET_KEY=12345678为启动程序授权chmod+xminio执行启动./minioserver/mnt/data--console-address":9001"/mnt/data是minio本地存储的路径。在......
  • httprunner 4.x学习 - 7.环境变量.env 的使用
    前言一般来说,在进行实际应用的开发过程中,应用会拥有不同的运行环境,通常会有以下环境:本地开发环境测试环境生产环境在不同环境中,我们可能会使用不同的数据库或邮件发送等配置,这时候则需要通过.env文件来针对不同的运行环境作不同的设置。环境变量基础知识在自动化测试中......
  • macOS下使用VS Code配置C/C++开发环境
      macOS系统中默认的C/C++编译器是clang/clang++,命令行使用gcc/g++或者clang/clang++来执行命令时,都是调用clang/clang++编译器,想使用gcc/g++编译器结合VSCode进行开发的话,我们可以自己安装。查看一下gcc和clang   1.安装Homebrew,官网链接,复制粘贴到Terminal运行脚......
  • django系列-环境及纯净配置
    一、安装django1.建立虚拟环境venv,Python官方用语创建虚拟环境的工具D:\learn_django>python-mvenvll_env(环境名称)--python=python3.6#可以替换成电脑里其他python版本D:\learn_django>python-mvenvll_env(环境名称)--python='C:\python\python3.6.exe'#可以直......
  • Mac安装node.js开发环境的详细步骤
    1.官网下载node.js下载地址:https://nodejs.org/  直接点击下载即可。2.双击刚下载的文件,默认点继续安装就行。3.安装完成后,打开终端,输入“npm-v”和“node-v”两个命令,如下图出现版本信息,说明安装成功。 4.进行环境配置打开终端,输入“open-e.bash_profile”回车,在......
  • CMake+Visual Studio构建Qt程序
    转载:https://www.codenong.com/cs106288798/转载:https://zhuanlan.zhihu.com/p/400804242一、编写代码文件main.cpp#include<QApplication>#include"Mainwindow.h"intmain(intargc,char*argv[]){QApplicationapp(argc,argv);MainWindowmain......
  • Mac安装MySQL5.7开发环境的详细步骤
    1.进入官网下载MySQL5.7的安装包。下载地址:https://www.mysql.com/downloads/      跟着上面图示下载即可,我这里选择的是5.7.31的版本,根据个人喜好选择版本,但是注意有的版本是没有mac版本的,换个版本就行了。2.安装包下载完成后双击pkg文件进行安装,无脑点下一步......
  • vivado和questasim联合开发环境搭建
    vivado2018.3与questasim10.6c联合开发环境搭建vivado2018.3安装略questasim10.6.c安装下载链接:https://pan.baidu.com/s/1UtPk8cM5OCzgOG32opwddA?pwd=xjy1提取码:xjy1安装以管理员权限运行安装包一路下一步注意这一步:破解复制'patch_dll.bat'和'......
  • Dockerfile、常用和不常用命令、dockerfile构建一个djagno项目、docker私有仓库、镜像
    目录1Dockerfile1.1常用和不常用命令1.2dockerfile构建一个djagno项目2docker私有仓库2.1镜像传到官方仓库2.2镜像分层2.3私有仓库搭建3dockercompose介绍4dockercompose部署flask+redis项目4.1新建flask项目app.py4.2编写Dockerfile--》用于构建flask项目的镜像4.3......
  • hadoop前期环境搭建
    主机名ipssh免密登陆#修改主机名hostnamectlset-hostnamenode1#修改ip地址vim/etc/sysconfig/network-scripts/ifcfg-ens33#node1IPADDR="192.168.88.101"NETMASK="225.225.225.0"GATEWAY="192.168.88.2"DNS1="192.168.88.2"#重启网卡......