CentOS 7.5 安装KVM虚拟机(Linux)
1.认识理解KVM虚拟机
Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。
它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。
KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。
而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。
广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。
2.探讨目标
在CentOS7母机系统上安装KVM服务,并启动一个CentOS虚拟机
安装说明
KVM建立在母机系统上,因此对机器有一定的配置要求,比如svm, selinux等,这些基本问题不大。
另外有网友说不能用VMware虚拟机做母机安装KVM,本次实验用的母机系统使用的是VMware Workstation 14 Pro安装的CentOS7,结果证明可以使用。
KVM使用libvirt这个开源的API进行管理。
libvirt是提供了一个方便的方式来管理虚拟机和其他虚拟化功能的软件的集合,如存储和网络接口管理。这些软件包括一个API库,一个守护进程(Libvirtd),和一个命令行实用程序(virsh)。
libvirt的首要目标是能够管理多个不同的虚拟化供应商/虚拟机管理程序提供一个单一的方式。例如,命令“virsh列表等等都可以用于任何支持现有的虚拟机管理程序列表(KVM、Xen、VMware ESX,等)不需要学习管理程序特定的工具!
3.依赖包安装
yum install -y qemu-kvm libvirt virt-install bridge-utils
安装完上述依赖包好最好重启一下服务器
查看KVM安装的状态,可以使用lsmod查看状态
[root@linux-node1]# lsmod |grep kvm
有上面三行输出,说明KVM安装成功
4.管理服务
启动libvirtd守护进程
systemctl start libvirtd
systemctl status libvirtd
5.安装虚拟机
首先需要下载一个镜像文件到母机本地
我们的KVM虚拟机将要安装CentOS系统,于是到CentOS官网找一个镜像的下载链接,使用wget命令下载到本地
之前测试将镜像下载到/root目录,结果安装开始时提示无法读取镜像文件,为了避免权限问题,我们将镜像文件下载到/home目录
wget http://mirrors.163.com/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso -P /home/
执行安装虚拟机命令:
virt-install \
--virt-type=kvm \
--name=kvm- \
--vcpus= \
--memory= \
--location=/home/CentOS--x86_64-Minimal-.iso \
--disk path=/data/vms/kvm-.qcow2,size=,format=qcow2 \
--network bridge=virbr0 \
--graphics none \
--extra-args='console=ttyS0' \
--force
参数解析:
--name=kvm-1 虚拟机名字为kvm-1
--vcpus=2 2个虚拟CPU核心
--memory=2048 2G内存
--disk path=/data/vms/kvm-1.qcow2,size=15,format=qcow2 虚拟机硬盘文件所在目录及名字,大小为15G,格式为qcow2,此参数会自动生成该硬盘文件在对应目录
--network bridge=virbr0 虚拟机桥接用的网卡,不一定是这个名字,在母机上用ifconfig查看实际名字 (这里默认使用的是NAT模式,如果要使用Bridge模式,请参考另外一篇文章)
如果一切正常,会进入安装iso安装界面。
上面的设置跟在图形界面安装操作一样,分别进去设置一下就可以继续安装了,设置完如下
然后敲b开始进行安装,成功安装到最后页面:
回车后虚拟机会从开机界面一直进入到登陆界面,输入root和密码就登陆进了虚拟机系统
CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-8707fc0ebc304aecae24959960933077) 7 (Core)
......
[ 10.953832] Netfilter messages via NETLINK v0.30.
[ 10.967303] ip_set: protocol 6
CentOS Linux 7 (Core)
Kernel 3.10.0-862.el7.x86_64 on an x86_64
localhost login: root
Password:
[root@localhost ~]#
查看虚拟机信息
6.退出虚拟机回到母机系统
同时按Ctrl+]
7.重新连接虚拟机
virsh console kvm-1
8.KVM 操作虚拟机常用命令:
列出所有的虚拟机
virsh list --all
显示虚拟机信息
virsh dominfo kvm-1
显示虚拟机内存和cpu的使用情况
yum install virt-top -y
virt-top
显示虚拟机分区信息
virt-df kvm-1
关闭虚拟机(shutodwn)
virsh shutdown kvm-1
启动虚拟机
virsh start kvm-1
设置虚拟机(kvm-1)跟随系统自启
virsh autostart kvm-1
关闭虚拟机自启
virsh autostart --disable kvm-1
删除虚拟机
virsh undefine kvm-1
CentOS 7.5 安装KVM虚拟机(Linux)的更多相关文章
- CentOS 7.5 安装KVM虚拟机(Windows)
一.KVM环境搭建1.检测系统是否支持cat /proc/cpuinfo | egrep 'vmx|svm' KVM是基于x86虚拟化扩展(Intel VT 或者 AMD-V)技术的虚拟机软件,所以查 ...
- 命令行安装kvm虚拟机、桥接网络、用virt-manager管理
宿主机CentOS Linux release 7.2.1511 (Core),内核3.10.0-327.el7.x86_64 1.配置宿主机网络桥接 想让虚拟机有自己的ip且外网可访问,需要在安装虚 ...
- CentOS 6.5安装KVM实践
一,安装CentOS6.5,使用最小化的minimal安装二.安装完CentOS后,使用root登录配置网卡,使虚拟机可以使用外网上网 vi /etc/sysconifg/network-script ...
- (转)CentOS7安装KVM虚拟机详解
原文:https://github.com/jaywcjlove/handbook/blob/master/CentOS/CentOS7%E5%AE%89%E8%A3%85KVM%E8%99%9A%E ...
- 6、安装kvm虚拟机
6.1.虚拟机开启虚拟化: 6.2.检查linux虚拟机cpu是否开启了虚拟化: egrep -o 'vmx|svm' /proc/cpuinfo vmx 6.3.安装kvm管理和安装kvm虚拟机的软 ...
- 11.安装KVM虚拟机
安装KVM虚拟机是一大难题,不按照虚拟机物理机128G内存和强劲的CPU无法充分利用.也不便于后面的jenkins自动部署.安装KVM虚拟机过程我是借鉴了网上下载的马哥linux KVM那块的内容 ...
- Centos7使用pxe安装KVM虚拟机
Centos7使用pxe安装KVM虚拟机 一.安装服务所需的软件 [root@localhost ~]yum install nginx dhcp vsftpd syslinux -y [root@l ...
- centos7安装kvm虚拟机
一 centos7安装kvm虚拟机 1.验证CPU是否支持KVM 结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的. [root@centos ~]# egrep '(vmx| ...
- centos6.2安装kvm虚拟机
http://www.wenzizone.com/2012/03/06/centos_6-2_install_kvm.html KVM虚拟机简介 kernel-based Virtual Machin ...
随机推荐
- 002.Kickstart部署之NFS架构
一 准备 1.1 完整架构:Kickstart+DHCP+NFS+TFTP+PXE 1.2 组件应用 Kickstart服务端IP:172.24.8.12 DHCP:提供客户端IP,网关,镜像路径等: ...
- node.js爬取数据并定时发送HTML邮件
node.js是前端程序员不可不学的一个框架,我们可以通过它来爬取数据.发送邮件.存取数据等等.下面我们通过koa2框架简单的只有一个小爬虫并使用定时任务来发送小邮件! 首先我们先来看一下效果图 差不 ...
- Xamarin Essentials教程实现数据的传输功能实例
Xamarin Essentials教程实现数据的传输功能实例 [示例1-1]以下将实现数据的传输功能.代码如下: public async Task ShareUri(string text, st ...
- Codeforces.226D.The table(构造)
题目链接 \(Description\) 给定一个\(n\times m\)的矩阵\(A_{i,j}\),每次可以将一列或一行取负.求一个方案使得若干次操作后,每行每列的和都非负. \(n,m\leq ...
- BZOJ.4199.[NOI2015]品酒大会(后缀数组 单调栈)
BZOJ 洛谷 后缀自动机做法. 洛谷上SAM比SA慢...BZOJ SAM却能快近一倍... 显然只需要考虑极长的相同子串的贡献,然后求后缀和/后缀\(\max\)就可以了. 对于相同子串,我们能想 ...
- 潭州课堂25班:Ph201805201 django 项目 第二十五课 文章多级评论前后台实现 (课堂笔记)
添加新闻评论功能 1.分析 业务处理流程: 判断前端传的新闻id是否为空,是否为整数.是否不存在 判断评论的内容是否为空 判断是否有父评论,父评论的id是否与新闻id匹配 判断用户是否登录 保存新闻评 ...
- HQL实用技术
HQL是Hibernate Query Language的缩写,提供更加丰富灵活.更为强大的查询能力:HQL更接近SQL语句查询语法. HQL基础查询 1.获取部分列 多列 /** * 获取部分列 ...
- React-Native-Storage使用介绍
react-native-storage 这是一个本地持久存储的封装,可以同时支持react-native(AsyncStorage)和浏览器(localStorage).ES6语法,promise异 ...
- Django——User-Profile
Profile作用:User内置的字段不够完善,导致创建的用户信息单一,Profile就是为了对User进行扩展,即丰富用户信息 在models中创建Profile类,添加字段user与User形成O ...
- php 公共方法Util
总结了一个公共类方法类: class Util extends ArrayHelper { /** * 判断是否为空数组 * @param mixed $arr * @return boolean * ...