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

——《战争与和平》



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

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

测试系统: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

删除快照