专栏首页阿dai_linuxkvm虚拟化入门 原

kvm虚拟化入门 原

kvm简介

  • kvm是以色列初创公司Qumaranet开发,2008年9月被RedHat收购;
  • kvm是Linux内核的一个模块,它把Linux内核变成一个hypervisor;
  • kvm是完全开源的,RedHat基于kvm的虚拟化解决方案叫做RHEV (收费);
  • kvm在Linux操作系统里面以进程的形式出现,由标准的Linux调度程序进行调度,这使得kvm能使用Linux内核的已有功能;
  • 只有一个kvm内核模块还不能实现虚拟化的全部功能,就好比操作系统只有内核还不能成为一个完整的操作系统一样;
  • QEMU是一个开源的虚拟化软件,纯软件,可以虚拟化所有的硬件,但性能不强;
  • kvm基于QEMU开发了一个能够运行在用户空间的工具QEMU-KVM;
  • 磁盘、网络设备等都是通过QEMU-KVM这个工具模拟出来的;
  • KVM和QEMU-KVM通信是通过/dev/kvm实现的;
  • libvirt是用来管理KVM虚拟机的API,其命令为virsh

Centos7上安装KVM

  • 前提是CPU支持虚拟化;
  • 安装虚拟化组件 $ yum install -y virt-* libvirt bridge-utils qemu-img

配置网卡

网络连接类型:nat模式、桥接模式

选用桥接模式,需要先配置一块虚拟(桥接)网卡:

$ cd /etc/sysconfig/network-scripts/
$ cp ifcfg-ens32 ifcfg-br0

$ vim ifcfg-br0 
TYPE=Bridge
BOOTPROTO=none
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=172.16.180.131  # 注意此处使用原ens32的ip地址
NETMASK=255.255.255.0
PREFIX=24
GATEWAY=172.16.180.2
DNS1=119.29.29.29
DNS2=114.114.114.114

$ vim ifcfg-ens32
TYPE=Ethernet
BOOTPROTO=none
NAME=ens32
DEVICE=ens32
ONBOOT=yes
BRIDGE=br0  # 指定桥接网卡

启动kvm服务

  • 检查kvm模块是否加载 $ lsmod |grep kvm kvm_intel 183621 0 kvm 586948 1 kvm_intel irqbypass 13503 1 kvm
  • 启动libvirtd服务 $ systemctl start libvirtd
  • 查看桥接网卡信息 $ brctl show bridge name bridge id STP enabled interfaces br0 8000.000c29a20bcb no ens32 virbr0 8000.52540036fd27 yes virbr0-nic

创建虚拟机&&安装centos7

$ virt-install --name vm01 --memory 512,maxmemory=1024 --vcpus 1,maxvcpus=2 --os-type linux --os-variant rhel7 --location /tmp/CentOS-7-x86_64-Minimal-1810.iso --disk /kvm_data/vm01.img,size=10 --network bridge=br0 --graphics none --console pty,target_type=serial --extra-args "console=tty0 console=ttyS0"

参数解析:
--name:要创建的虚拟主机名称
--memory:虚拟内存大小,maxmemory表示最大内存,单位M
--vcpus:虚拟CPU个数,最大为2核
--os-variant:系统类型
--location:系统镜像位置
--disk:指定存储的各种选项
--network:配置客户机网络接口
--graphics:配置客户机显示设
--console:配置文本控制台连接主机与客户机

开始安装后,根据提示信息配置语音、时区、安装位置、root密码等,具体如下:

================================================================================
================================================================================
Installation

 1) [x] Language settings                 2) [!] Time settings
        (English (United States))                (Timezone is not set.)
 3) [!] Installation source               4) [!] Software selection
        (Processing...)                          (Processing...)
 5) [!] Installation Destination          6) [x] Kdump
        (No disks selected)                      (Kdump is enabled)
 7) [ ] Network configuration             8) [!] Root password
        (Not connected)                          (Password is not set.)
 9) [!] User creation
        (No user will be created)
  Please make your choice from above ['q' to quit | 'b' to begin installation |
  'r' to refresh]: 1
================================================================================
================================================================================

安装完成后有如下提示:

Performing post-installation setup tasks
.

Configuring installed system
.
Writing network configuration
.
Creating users
.
Configuring addons
.
Generating initramfs
.
Running post-installation scripts
.
        Use of this product is subject to the license agreement found at /usr/share/centos-release/EULA

        Installation complete.  Press return to quit
  • 按 "回车" 会启动创建好的虚拟机
  • 按 "^]" 会退出安装过程

管理虚拟机

  • 查看虚拟机 $ virsh list --all Id 名称 状态 ---------------------------------------------------- 2 vm01 running # --all:查看所有虚拟机,包括为启动的,不加该参数只显示已经启动的虚拟机
  • 启动某虚拟机 $ virsh start vm01 说明: 一个虚拟机只能登陆一个virsh用户
  • 访问某虚拟机 $ virsh console vm01
  • 设置网络:和物理服务器安装系统是配置方式一致,配置完网络后可以通过终端登陆!
  • 退出虚拟机 $ exit 如果是在安装完系统后直接通过"回车"进入的虚拟机,在执行 exit 退出终端后,还需要执行 "^]" 退出系统登陆界面。
  • 其他管理命令: # 关闭虚拟机 $ virsh shutdown vm01 # 启动虚拟机 $ virsh start vm01 # 强制停止虚拟机,类似于stop $ virsh destroy vm01 # 彻底销毁虚拟机,会强制删除虚拟机配置文件,再执行'virsh list --all'就看不到该虚拟机了 $ virsh undefine vm01 # 查看虚拟机配置文件 $ ls /etc/libvirt/qemu/ # 设置虚拟机随宿主机开机启动 $ virsh autostart vm01 # 取消开机自启 $ virsh autostart --disable vm01 # 挂起 $ virsh suspend vm01 # 恢复 $ virsh resume vm01 # 更多管理命令,可查看 $ virsh --help

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 网络协议&建立TCP连接 原

    OSI/RM模型(Open System Interconnection/Reference Model)将计算机网络体系结构的通信协议划分为七层,自下而上依次...

    阿dai学长
  • linux系统中几款简单好用测试软件 原

    http://netsecurity.51cto.com/art/201406/442756.htm 个人测试使用的是:Tor's hammer,官方网站:h...

    阿dai学长
  • php-fpm的pool、PHP慢执行日志、open_basedir、php-fpm进程管理

    为了避免因多站点使用同一个pool时因一个站点故障导致pool出问题,进而影响使用同一个pool的其他站点的正常运行,要对每个站点配置一个单独的pool。

    阿dai学长
  • Jmeter(三十五)_分布式

    在JMETER_HOME / bin / jmeter.properties中,找到名为“ remote_hosts ” 的属性,并添加正在运行的JMeter服...

    飞天小子
  • 大数据技术扫盲,你必须会的这些点

    虽说人生没有白走的路,新的一年来到,会的还是原来的知识,人的身价就摆在那里,无论怎么折腾,也不会拿到更好的offer。所以在年轻还有拼劲的时候多学学知识,寻找自...

    一起学习大数据
  • 大数据学习路线指南(最全知识点总结)

    大数据是对海量数据进行存储、计算、统计、分析处理的一系列处理手段,处理的数据量通常是TB级,甚至是PB或EB级的数据,这是传统数据处理手段所无法完成的,其涉及的...

    用户2292346
  • Apache HttpClient库的日志级别设置原理

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.blog.csdn.net/article/detai...

    Jerry Wang
  • JVM(四)垃圾回收的实现算法和执行细节

    上一篇我们讲了垃圾标记的一些实现细节和经典算法,而本文将系统的讲解一下垃圾回收的经典算法,和Hotspot虚拟机执行垃圾回收的一些实现细节,比如安全点和安全区域...

    Java中文社群_老王
  • 有些事,不是技术能够解决的 (r8笔记第14天)

    自从入了数据库这条路,什么都喜欢用这种技术思路来思考问题。不知不觉融入了生活之中,有时候我却全然不知。 记得有一次在泰国出差,有一个男同事生病了,但是生...

    jeanron100
  • 优化CSS加快网站速度的方法

    加载外部样式表需要花费时间,这是由于延迟造成的——因此,可以把最关键的代码位放在 head 中。

    薛定喵君

扫码关注云+社区

领取腾讯云代金券