热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

偶遇KVM,初识虚拟化

  不是科班出身,误打误撞做了程序员,很普通那种,之前多数时候用C,写一些无关痛痒的命令行。虽然行业是网络安全,听起来感觉很厉害,但实际上所掌握的相关内容零零散散的也不成个体系。五

    不是科班出身,误打误撞做了程序员,很普通那种,之前多数时候用C,写一些无关痛痒的命令行。虽然行业是网络安全,听起来感觉很厉害,但实际上所掌握的相关内容零零散散的也不成个体系。五年前入职公司的时候连ip和mask都闹不明白,网络分层也不懂,配个路由加个iptables策略也得到处问同事。人性的懒惰,加上也没有那么上进的性格,领导分配什么就认认真真完成,多一点都不干。仗着智商还在线,也不怎么加班程序员的日子过得还不错。2020年初,大疫。每天憋在家,刷刷知乎,看看网页。到处有人贩卖焦虑,没有35岁的程序员,40岁的人不可能写代码什么的。我一寻思,要淘汰的可不就是我这样的么。

    去年秋天开始,跟我们部门一大师傅做虚拟化项目。本来也轮不上我,因为我会点python语法,偶尔自己写个小脚本啥的省了人工重复操作的事。别人都只是用C嘛,所以这个项目大师傅想用python来做,我就走马上任专职打杂来着。初始虚拟化,一脸懵B。听起来特别高大上,完全不懂啥意思,平时就用个VMware虚拟机,有些配置还用的磕磕巴巴的。我们大师傅嘛喜欢很多东西都把控的紧紧的,我大概只能接触到若干个点。在我的中年危机刺激下,我渐渐的从一个点已经摸到了一条线。反正这个博客呢也没有人看,就是我自己叨叨叨的一个平台吧。后面有时间我就用白话,把我每个小感悟,每一个新的知识点都穿在这。我想把这些点穿成线,再把这些线编织成一个平面。

《==============================================我是中年大妈叨叨叨的分割线==================================================》

    书归正传,因为查了一些资料,这一篇我简单说一下我对虚拟化的理解。

    ① 什么是虚拟化?

    答:白话讲就是把硬件虚拟成多个,可以在一套硬件上面建立多个操作系统,在每个操作系统内都不会感知到它的硬件是与人共享的。

     关键字:宿主机--Host;虚拟机--Guest;中间管理层--Hypervisor; 

    ② 虚拟化的形式有哪些?

    答:我目前得到的知识看分为全虚拟化和半虚拟化。

      其中全虚拟化就是在硬件上面直接运行一套hypervisor(Hypervisor是一个定制的操作系统),然后上面再运行若干个虚拟机;Xen 和 VMWare 的 ESXi 都属于全虚拟化。

   半虚拟化就是硬件要跑宿主机操作系统,而虚拟机管理层Hypervisor作为一个应用程序运行的,每一个运行的虚拟机也是一个进程。KVM、VirtualBox 和 VMWare Workstation则 属于半虚拟化。

   两个形式各有优点。全虚拟化基于硬件优化,性能更高,但是貌似宿主机要修改一些指令以防冲突;半虚拟化比较灵活,虚拟机全程无感操作(怎么写到这里脑海里忽然飘过always水感卫生巾的广告┭┮﹏┭┮),而且半虚拟化可以在虚拟机里再安装虚拟机。这个我周末回家里搞一下,在KVM里面装个KVM,然后我下一篇文章里面可以水一下过程( ̄▽ ̄)"

  ③ 什么是kvm?

  KVM 全称是 Kernel-Based Virtual Machine。也就是说 KVM 是基于 Linux 内核实现的。KVM有一个内核模块叫 kvm.ko,只用于管理虚拟 CPU 和内存。那 IO 的虚拟化,比如存储和网络设备则是由 Linux 内核与Qemu来实现。

  网上看 KVM 相关文章的时候肯定经常会看到 Libvirt 这个东西。Libvirt 就是 KVM 的管理工具。其实,Libvirt 除了能管理 KVM 这种 Hypervisor,还能管理 Xen,VirtualBox 等。

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

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

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

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

 



推荐阅读
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Python字典推导式及循环列表生成字典方法
    本文介绍了Python中使用字典推导式和循环列表生成字典的方法,包括通过循环列表生成相应的字典,并给出了执行结果。详细讲解了代码实现过程。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
author-avatar
经来泓
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有