CentOS 7 部署 KVM 虚拟化
文章目录
KVM的组件
① kvm.ko:模块
- API 应用程序编程接口
② qemu-kvm:用户空间的工具程序;
- qemu-KVM 是一种开源虚拟器,它为KVM管理程序提供硬件仿真。
- 运行中的一个 kvm 虚拟机就是一个 qemu-kvm 进程,运行 qemu-kvm 程序并传递给它合适的选项及参数即能完成虚拟机启动,终止此进程即能关闭虚拟机;
③ libvirt 虚拟化库:Libvirt是C工具包,
- libvirt可以与最近版本的Linux(以及其他操作系统)的虚拟化功能进行交互。主包包含了导出虚拟化支持的libvirtd服务器。
- libvirt 包含 C/S:
- Client:
- libvirt-client
- virt-manager
- Daemon:
- libvirt-daemon
- Client:
KVM模块load进内存之后,系统的运行模式
内核模式:GuestOS 执行 IO 类的操作时,或其它的特殊指令操作时的模式;它也被称为"Guest-Kernel"模式;
用户模式:Host OS的用户空间,用于代为GuestOS发出IO请求;
来宾模式:GuestOS 的用户模式;所有的非IO类请求
部署KVM
下面开始套娃,我vmware开的虚拟机,给了4C16G,KVM的最低要求是内存不能低于4G
基础配置
必须跑在 x86 系统的架构上
必须支持硬件级虚拟化
- vmx: Intel VT-x
- svm: AMD AMD-v
虚拟机上再虚拟化,需开启虚拟化 Intel VT-x/EPT
判断CPU是否支持硬件虚拟化
# egrep -i 'vmx|svm|lm' /proc/cpuinfo
- 注意:vmx 或 svm 必须出现一个,表示是支持的
- vmx: Intel VT-x
- svm: AMD AMD-v
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq 'vmx' ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid xsaveopt arat spec_ctrl intel_stibp flush_l1d arch_capabilities
检测 kvm 模块是否装载
# lsmod | grep kvm
kvm_intel 183621 0
kvm 586948 1 kvm_intel
irqbypass 13503 1 kvm
如果没有装载 kvm 模块,执行
modprobe kvm命令即可
安装用户端工具 qemu-kvm
# yum install -y libvirt* virt-* qemu-kvm*
- libvirt 虚拟机管理
- virt 虚拟机安装克隆
- qemu-kvm 管理虚拟机磁盘
安装的比较多,有300多个包
启动服务
# systemctl start libvirtd.service
查看网卡
# virsh net-list
Name State Autostart Persistent
----------------------------------------------------------
default active yes yes
配置桥接网卡br0
这一步,根据实际情况操作,启动KVM后,会生成virbr0网卡,供KVM创建的虚拟机使用,KVM默认虚拟机的网络为NAT模式
先备份一下网卡配置文件,万一有问题,还能恢复
如果是CentOS发行版,可以关掉NetworkManager服务,免得他捣乱
# systemctl disable NetworkManager --now
# virsh iface-bridge eth0 br0
把自己的物理网卡 eth0 作为交换机,把 br0 当网卡,提供IP(切记,别复制直接用,将
eth0改为自己的网卡名称,使用ip a命令可以查看自己的网卡名称)注意:命令可能会卡死或出错,终端被强制退出;等一会,在登录就OK 了
# cp /etc/libvirt/qemu/networks/default.xml /etc/libvirt/qemu/networks/br0.xml
# vim /etc/libvirt/qemu/networks/br0.xml
<network>
<name>br0</name>
<forward mode='bridge'/>
<bridge name='br0'/>
</network>
启动br0网卡
# virsh net-define /etc/libvirt/qemu/networks/br0.xml
# virsh net-autostart br0
# virsh net-start br0
# virsh net-list
Name State Autostart Persistent
----------------------------------------------------------
br0 active yes yes
default active yes yes
使用KVM创建虚拟机
图形化界面,可以使用
virt-manager来创建虚拟机,都是点点点的操作这里就使用命令行的方式创建虚拟机了
注意:需要先上传一个系统镜像文件到KVM服务器上
使用VNC的方式
安装VNC
# yum install -y tightvnc
使用命令创建虚拟机
# mkdir /opt/kvm
# virt-install --virt-type kvm \
--name suse12-sp3 \
--memory 2048 \
--vcpus 1 \
--disk /opt/kvm/suse12-sp3.qcow2,format=qcow2,size=30 \
--cdrom /opt/kvm/SLE-12-SP3-Server-DVD-x86_64-GM-DVD1.iso \
--network network=default \
--graphics vnc,listen=0.0.0.0,port=5900 \
--noautoconsole
打开VNC,输入本机的IP加上创建的时候指定的端口5900,即可开始安装虚拟机
端口是自定义的,并非固定的5900
# vncviewer # 打开 VNC
使用VNC部署的虚拟机,当虚拟机启动的时候,会自动启用创建时所指定的端口,可以再次使用VNC远程连接虚拟机,当虚拟机关机的时候,端口也会自动关闭
# 关机状态下的虚拟机,需要加上--all参数才会看得到
# virsh list --all
Id Name State
----------------------------------------------------
- suse12-sp3 shut off
# ss -nltp | grep 5900
# virsh start suse12-sp3
Domain suse12-sp3 started
# virsh list --all
Id Name State
----------------------------------------------------
6 suse12-sp3 running
# ss -nltp | grep 5900 # 虚拟机启动后,端口就出来了
LISTEN 0 1 *:5900 *:* users:(("qemu-kvm",pid=31317,fd=19))
参数说明
| 参数 | 说明 |
|---|---|
--virt-type |
要使用的虚拟化名称(kvm, qemu, xen, …) |
--name |
虚拟机的名称 |
--memory |
配置内存大小,默认单位为MiB |
--vcpus |
配置虚拟 CPU(vcpu) 数量 |
--disk |
指定存储的各种选项 |
--cdrom |
安装的介质 |
--network |
虚拟机使用的网络接口,可以使用 virsh net-list 命令查看当前拥有的网络接口 |
--graphics |
配置虚拟机的显示设置,有vnc、none、spice |
--noautoconsole |
不要自动尝试连接到客户端控制台 |
不使用VNC的方式
# virt-install --virt-type=kvm \
--name=centos7.7 \
--vcpus=1 \
--memory=2048 \
--location /opt/kvm/CentOS-7.7-x86_64-DVD-1908.iso \
--disk /opt/kvm/centos7.7.qcow2,format=qcow2,size=30 \
--network network=default \
--graphics none \
--extra-args='console=ttyS0'
使用kickstart文件的方式
# centos系统安装完成后,在/root目录下会有一个cfg后缀的kickstart文件
# cp anaconda-ks.cfg /opt/kvm/
# cd /opt/kvm/
# vim anaconda-ks.cfg
由于kvm安装的虚拟机,磁盘都是vda,所以需要将文件内的sda全部修改为vda
由于虚拟机分配的是100G,但是KVM创建的虚拟机,咱给的是30G,所以需要修改分区,为了省事,直接使用了自动分区
autopart --type=lvmkickstart文件之前没接触过,就没有过多的修改了,以后有时间再去研究一下
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use graphical install
# graphical
text
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=vda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=eth0 --ipv6=auto --activate
network --hostname=localhost.localdomain
# Root password
rootpw --iscrypted $6$3IMre6QwQrXPP1tr$2t6ACeLAG/Ogg.nSdX.iNwxZLkrpN.sC6u/e6GYqV.GOvsmA1zu9rA7ceYZmgUvWgPy2NyuM8q4S75Kk9cjKn.
# System services
services --enabled="chronyd"
services --disabled="NetworkManager"
services --disabled="firewall"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
# System bootloader configuration
bootloader --location=mbr --boot-drive=vda
# Partition clearing information
clearpart --all --initlabel --drives=vda
# Disk partitioning information
autopart --type=lvm
%packages
@^minimal
@core
@development
@system-admin-tools
chrony
%end
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end
# virt-install --virt-type=kvm \
--name=centos7.7-ks \
--vcpus=1 \
--memory=2048 \
--location /opt/kvm/CentOS-7.7-x86_64-DVD-1908.iso \
--disk /opt/kvm/centos7.7-ks.qcow2,format=qcow2,size=30 \
--network network=default \
--graphics none \
--initrd-inject=/opt/kvm/anaconda-ks.cfg \
--extra-args='ks=file:/anaconda-ks.cfg console=ttyS0'
CentOS 7 部署 KVM 虚拟化的更多相关文章
- Linux 部署KVM虚拟化平台
简单介绍 KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案.KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Lin ...
- 在Centos6.5上部署kvm虚拟化技术
KVM是什么? KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),它是一个 Linux 的一个内核模块,该内核模块使得 Linux 变成了一个 Hyperv ...
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(1)
公司机房有一台2U的服务器(64G内存,32核),由于近期新增业务比较多,测试机也要新增,服务器资源十分有限.所以打算在这台2U服务器上部署kvm虚拟化,虚出多台VM出来,以应对新的测试需求.当KVM ...
- centos7.2 kvm虚拟化管理平台WebVirtMgr部署
在服务器上部署kvm虚拟化,虚出多台VM出来,以应对新的测试需求.当KVM宿主机越来越多,需要对宿主机的状态进行调控,决定采用WebVirtMgr作为kvm虚拟化的web管理工具,图形化的WEB,让人 ...
- KVM虚拟化管理平台WebVirtMgr部署及使用
KVM虚拟化管理平台WebVirtMgr部署及使用 需求: 公司机房有一台2U的服务器(64G内存,32核),由于近期新增业务比较多,测试机也要新增,服务器资源十分有限.所以打算在这台2U服务器上 ...
- Kvm虚拟化的一种打包及部署方案(采用tar包,lvm方式)
Kvm虚拟化的一种打包部署方案(采用tar包,lvm方式) –-–-–-2016年终总结 一 毕业之后跟师兄学到的第一块主要内容,理解花了不少时间.期间经历了shell的入门.linux基础知识入门. ...
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)
继上一篇kvm虚拟化管理平台WebVirtMgr部署-完整记录(1),接下来说说WebVirtMgr的日常配置:添加宿主机,创建虚机,磁盘扩容,快照等具体操作记录如下: 一.配置宿主机1.登录WebV ...
- centos vmware centos6.6 64位 kvm虚拟化安装配置 第四十二节课
centos vmware centos6.6 64位 kvm虚拟化安装配置 第四十二节课 上半节课 下半节课 f
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(3)
继下面三篇文章完成了kvm虚拟化管理平台webvirtmgr环境的部署安装:kvm虚拟化管理平台WebVirtMgr部署-虚拟化环境安装-完整记录(0)kvm虚拟化管理平台WebVirtMgr部署-完 ...
随机推荐
- Mybatis配置解析(核心配置文件)
4.配置解析 4.1.核心配置文件 Mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息 mybatis-config.xml properties(属性)重点 settings ...
- Rust学习(一)
为什么学习Rust 最近在看Linux相关新闻的时候,看到了Linux内核正在将Rust集成至内核内的消息,且越来越多的嵌入式开发可以使用Rust编程.以往笔者的技术栈只有 C语言 ,C++也只是浅尝 ...
- leetcode 921. 使括号有效的最少添加
问题描述 给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '(' 或是 ')',可以在任何位置),以使得到的括号字符串有效. 从形式上讲,只有满足下面几点之一,括号字符 ...
- 顺序表-Go语言实现
简单理解就是数组: 优缺点及使用场景 优点: 随机访问,在O(1)时间内找到第i个元素: 数据表中的数据是连续存放的,因此只要知道数据表中第一个元素的地址,那么后面的数据元素的地址就可以马上算出来. ...
- .NET下如何拦截鼠标、键盘消息?Win32NET来帮你
Win32NET是一个Win32API的.NET下封装的类库,包含: 1: 常用win32的API的net封装 2:鼠标.键盘.热键hook钩子模块, 3:模拟键盘输入文字(支持各种字符文字.不同语言 ...
- fidder无法下载证书的最佳解决办法
为什么有的小伙伴安装fidder不好使,手机无法下载证书? 1.安装一定要去官网安装! 一定要去官网安装! 一定要去官网安装!官方网址:https://www.telerik.com/download ...
- qt 简单登录界面(一)
widget.h #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include<QLineEdit> class ...
- limit概述
5.limit 5.1.limit是将查询结果集的一部分取出来,通常使用在分页查询中 分页作用是为了提高用户体验,可以一页一页翻页看 5.2.limit用法:(非常重要) 完整用法:limit sta ...
- Lesson4——Pandas DataFrame结构
pandas目录 思维导图 1 简介 DataFrame 是 Pandas 的重要数据结构之一,也是在使用 Pandas 进行数据分析过程中最常用的结构之一. 2 认识DataFrame结构 Data ...
- 计算机开放电子书 2021 RC2
下载方式 pip install CDNDrive # 或 # pip install git+https://github.com/apachecn/CDNDrive cdrive download ...