KVM折腾记...https://lengjibo.github.io/KVM%E6%8A%98%E8%85%BE%E8%AE%B0/

 Veröffentlicht am 2018-09-20 |  Edited on 2018-09-21 |  in 运维 |  Views: 35

每个人都会有缺陷,就像被上帝咬过的苹果,有的人缺陷比较大,正是因为上帝特别喜欢他的芬芳。
——《战争与和平》


唉,最近迷上这玩意儿了,可怕,一直瞎折腾…

多图预警,此文毫无逻辑,纯手打纯瞎写

测试系统:centos7

装系统的时候比较迷,连个ifconfig都忘了装…

就像我们所知道的,“ifconfig”命令用于配置GNU/Linux系统的网络接口。它显示网络接口卡的详细信息,包括IP地址,MAC地址,以及网络接口卡状态之类。但是,该命令已经过时了,而且在最小化版本的RHEL 7以及它的克隆版本CentOS 7,Oracle Linux 7和Scientific Linux 7中也找不到该命令。

要查看网卡细节,输入以下命令:


ip addr

输出样例:


1: lo: <loopback,up,lower_up> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: venet0: <broadcast,pointopoint,noarp,up,lower_up> mtu 1500 qdisc noqueue state UNKNOWN
link/void
inet 127.0.0.1/32 scope host venet0
inet 192.168.1.101/32 brd 192.168.1.101 scope global venet0:0

在网络畅通的情况下我们可以使用以下命令,安装ifconfig


yum provides ifconfig

输出样例:

net-tools包提供了ifconfig命令。因此,让我们安装net-tools包来使用ifconfig命令。


yum install net-tools

现在,你就可以像以往一样使用ifconfig命令了。


ifconfig -a

上图

因为KVM在图形下操作比较方便,我这里又装了一下界面

首先安装X(X Window System),命令为

yum groupinstall “X Window System” 回车(注意有引号)

安装完成会显示completed!

检查一下我们已经安装的软件以及可以安装的软件,用命令

yum grouplist 回车

然后安装我们需要的图形界面软件,GNOME(GNOME Desktop)

yum groupinstall + “桌面”
这里需要特别注意!!!!

一定要注意 名称必须对应 不同版本的centOS的软件名可能不同 其他Linux系统类似

否则会出现No packages in any requested group available to install or update 的错误。

安装完成后我们开始搞kvm

首先查看cpu是否支持虚拟化


grep vmx /proc/cpuinfo

如果有vmx信息输出,就说明支持VT;如果没有任何的输出,说明你的cpu不支持,将无法使用KVM虚拟机。

注:若为虚拟机环境,请在cpu哪里勾选虚拟化选项

然后确保BIOS里开启虚拟化功能,即查看是否加载KVM模块

如果没有加载,运行以下命令:


[root@kevin ~]# modprobe kvm
[root@kevin ~]# modprobe kvm-intel

内核模块导出了一个名为/dev/kvm的设备,这个设备将虚拟机的的地址空间独立于内核或者任何应用程序的地址空间。

安装KVM插件


yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install

其实这些是可以在系统安装的时候选择的,若未选择,可以现在安装

安装图形化界面:


yum install -y virt-manager

systemctl enable libvirtd && systemctl start libvirtd #设置开机自启并且启动lbvired服务

禁用防火墙:


[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld

关闭selinux:


[root@localhost ~]# vi /etc/selinux/config

将selinux设置为diabled,保存退出 挂载一块硬盘并且格式化


mkfs.ext4 /dev/sdb

添加之后还不能用,需要格式化


[root@localhost ~]# mkfs.ext4 /dev/sdb #使用ext4文件格式进行格式化
[root@localhost ~]# mkdir /ios #在根目录下创建一个挂载点目录
[root@localhost ~]# mount /dev/sdb /ios/ #将sdb挂载到该目录下,就可以使用了
[root@localhost ~]# df -h #查看一下是否挂载成功
[root@localhost ~]# vi /etc/fstab #开机自动挂载

编辑完如下

如果没有输出结果,可以使用下面这条命令加载一下kvm模块


[root@localhost ~]# modprobe kvm

到目前为止,kvm平台已经基本安装完成,接下来需要创建桥接网卡
编辑主机原网卡配置文件vi /etc/sysconfig/network-scripts/ifcfg-ens33,在文件末尾添加一行:BRIDGE=”br0”

复制ifcfg-ens33配置文件并重命名为ifcfg-br0


[root@localhost network-scripts]# cp -rvf ifcfg-ens33 ifcfg-br0

修改ifcfg-br0配置文件 ![](https://i.screenshot.net/8oo82in) 重启下网络


[root@localhost ~]# systemctl restart network #重启网络

若出现以下提示的解决方法


Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.

解决:


[root@mina0 hadoop]# journalctl -xe
[root@mina0 hadoop]# systemctl stop NetworkManager
[root@mina0 hadoop]# systemctl disable NetworkManager

然后重启网络

可以看到ens33已经获取到了IP地址

然后开始一些基本的操作


[root@localhost ~]# virt-manager #打开虚拟机管理器

双击QEMU/KVM

创建一个镜像存储池用来存放ISO镜像文件,并命名

然后设置存储池所在的目录

创建一个虚拟机

将iso文件上传到存储池所在的目录,然后单击“浏览”按钮选择镜像文件,再选择操作系统类型及版本

至此一个虚拟机完成

虚拟机的部分操作:开始、暂停、重启、关闭等

Virsh命令
virsh list –all
查看在运行的所有的虚拟机
virsh dumpxml vm-name
查看kvm虚拟机配置文件
virsh start vm-name
启动kvm虚拟机
virsh shutdown vm-name
正常关机

virsh destroy vm-name
强制关机
virsh undefine vm-name
删除vm的配置文件

virsh define file-name.xml
根据配置文件定义虚拟机
virsh suspend vm-name
挂起虚拟机
virsh resumed vm-name
恢复被挂起的虚拟机
virsh snapshot-create
创建快照
virt-df -h vm-name
查看虚拟机的磁盘信息
virt-clone -o rhel7.0 -n rhel7.0-01 -f /var/rhel7.0-01.qcow2
查看快照信息(如果要恢复的话或者删除必须要看名称是什么)
virsh snapshot-revert rhel7.0 1537275180
恢复快照
virsh snapshot-delete rhel7.0 1537275180
删除快照

【转载】有图 KVM折腾记..的更多相关文章

  1. 转载:Chrome调试折腾记_(1)调试控制中心快捷键详解!!!

    转载:http://blog.csdn.net/crper/article/details/48098625 大多浏览器的调试功能的启用快捷键都一致…按下F12;还是熟悉的味道;  或者直接 Ctrl ...

  2. Anaconda折腾记(1)

    Anaconda折腾记 谨此记录小白的我在Anaconda里面的摸爬滚打 更换更新源 可以不使用命令,直接进入C盘,进入user文件夹,进入当前的用户文件夹下,记得显示隐藏文件. 找到.condarc ...

  3. 斐讯N1折腾记

    斐讯N1折腾记:运行 Linux 及优化  2018-06-23  37条评论  4,445次阅读  11人点赞 最后更新时间:2019年03月10日 咳咳咳,上篇教程教大家给斐讯 N1 降级并且刷了 ...

  4. Atom编辑器折腾记

    http://blog.csdn.net/bomess/article/category/3202419/2 Atom编辑器折腾记_(1)介绍下载安装 Atom编辑器折腾记_(2)基础了解使用 Ato ...

  5. BeagleBone折腾记(一):连接你的狗板

    BeagleBone折腾记一连接你的狗板 准备 了解BeagleBone BeagleBone社区 所需软硬件 USB连接 TTL连接 结语 准备 了解BeagleBone BeagleBone可能一 ...

  6. Vue折腾记 - (3)写一个不大靠谱的typeahead组件

    Vue折腾记 - (3)写一个不大靠谱的typeahead组件 2017年07月20日 15:17:05 阅读数:691 前言 typeahead在网站中的应用很多..今天跟着我来写一个不大靠谱的ty ...

  7. FreeBSD jail 折腾记(二)

    FreeBSD jail 折腾记(二) 创建jail目录 创建4个 分别是模板 骨架 数据 项目 创建模板目录 mkdir -p /jail/j1 # 然后放入基本目录,上篇说过不再写 创建骨架目录 ...

  8. 【树莓派】【转载】Raspberry Pi (树莓派)折腾记

    在网上看到一篇对树莓派折腾记录比较详细的文章,时间比较早,但是有些东西没变. 对于新手而言,还是有点参考价值.文章参见:http://skypegnu1.blog.51cto.com/8991766/ ...

  9. atom 折腾记(转载的)

    http://www.bkjia.com/webzh/999078.html

随机推荐

  1. Redis持久化——内存快照(RDB)

    最新:Redis持久化--如何选择合适的持久化方式 最新:Redis持久化--AOF日志 最新:Redis持久化--内存快照(RDB) 一文回顾Redis五大对象(数据类型) Redis对象--有序集 ...

  2. kubernetes中有状态应用的优雅缩容

    将有状态的应用程序部署到Kubernetes是棘手的. StatefulSet使它变得容易得多,但是它们仍然不能解决所有问题.最大的挑战之一是如何缩小StatefulSet而不将数据留在断开连接的Pe ...

  3. JS基础学习第五天

    作用域 作用域简单来说就是一个变量的作用范围.在JS中作用域分成两种: 1.全局作用域 直接在script标签中编写的代码都运行在全局作用域中全局作用域在打开页面时创建,在页面关闭时销毁.全局作用域中 ...

  4. H5 端 rem 适配方案与 viewport 适配

    H5 端 rem 适配方案与 viewport 适配 rem rem 是 CSS3 新增的一个相对单位(root em,根 em) 只根据当前页面 HTML 页面的 font-size 设置,如果根目 ...

  5. 11. VUE 数组操作

    变异方法 Vue 包含一组观察数组的变异方法,所以它们也将会触发视图更新.这些方法如下: push() 添加元素 <ul id="example-1"> <li ...

  6. 闲暇时光里最好的挖矿体验——CPU挖乌龟币

    我之前其实是不玩加密货币的,主要是没有钱取投资(tou ji),也没有钱去投资矿机. 不过前几天CSDN推送了一个短文,<黑客用GitHub服务器挖矿,三天跑了3万个任务,代码惊现中文> ...

  7. aws EKS EFS 上安装mysql Operation notpermitted

    在AWS EKS k8s.EFS nfs.mysql.changing ownership of '/var/lib/mysql/': Operation notpermitted 在aws eks ...

  8. php的call_user_func_array()使用场景

    1..动态调用普通函数时,比如参数和调用方法名称不确定的时候很好用 function sayEnglish($fName, $content) { echo 'I am ' . $content; } ...

  9. 【小白向】基于Docker使用Gogs,Drone以及drone-runner-docker的自动化部署

    Gogs是基于Go语言编写的可以替代gitlab的代码托管平台,它没有gitlab那么庞大且不需要占用大量资源,对小型服务器相对于比较友好,我们甚至可以使用树莓派搭建. 服务器配置: * 操作系统:C ...

  10. deep freeze standard v8.x

    62S93Y4Q-6C6E4EQQ-7MKMZA9F-RK5H6CSZ-AB7W3BMMPJ6GGQDCPT5EPVWGJP3EEQ5GAV2TCQD7-F8J933CA-6AEHN9ZG-2FW3M ...