CentOS 7 安装配置KVM 通过KVM安装CentOS系统

搭建环境 : CentOS 7

 

[root@KVM ~]# systemctl stop firewalld
[root@KVM ~]# systemctl disable firewalld
[root@KVM ~]#  grep -Ei 'vmx|svm' /proc/cpuinfo
# 过滤出vmx或svm关键字就代表支持虚拟化,vmx是Intel的CPU,svm是AMD的CPU

格式化新磁盘,并挂载

[root@KVM ~]# fdisk -l
[root@KVM ~]# mkfs.ext4 /dev/sdb    # 会有询问,输入y即可
[root@KVM ~]# blkid /dev/sdb     # 检查是否已格式化
/dev/sdb: UUID="a2600993-bde6-4d85-bc3e-724f45ff9ae3" TYPE="ext4"    
[root@KVM ~]# mkdir /kvm_data     # 创建挂载目录
[root@KVM ~]# mount /dev/sdb /kvm_data    # 将新磁盘挂载到/kvm_data目录下
[root@KVM ~]# vim /etc/fstab     # 设置开机自动挂载
# 添加  /dev/sdb                /kvm_data/              ext4    defaults        0 0 

安装kvm

[root@KVM ~]#  yum -y install   virt-*  libvirt  bridge-utils qemu-img

配置网卡

[root@KVM ~]# cd /etc/sysconfig/network-scripts/
[root@KVM network-scripts]# cp ifcfg-ens33  ifcfg-br0
[root@KVM network-scripts]# vim ifcfg-ens33 TYPE
=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes NAME=ens33 DEVICE=ens33 ONBOOT=yes
BRIDGE=br0  # 添加 # 然后把IP MASK DNS都删掉即可 TYPE
=bridge # 修改网卡类型 PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no NAME=br0 # 网卡名 DEVICE=br0 ONBOOT=yes IPADDR=192.168.94.22 PREFIX=24 GATEWAY=192.168.94.2
[root@KVM ~]# systemctl restart network

查看网卡信息

[root@KVM ~]# ifconfig 
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.94.22  netmask 255.255.255.0  broadcast 192.168.94.255
        inet6 fe80::20c:29ff:fe6b:dbdc  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:6b:db:dc  txqueuelen 1000  (Ethernet)
        RX packets 94  bytes 9027 (8.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 66  bytes 9105 (8.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:6b:db:dc  txqueuelen 1000  (Ethernet)
        RX packets 329996  bytes 478088865 (455.9 MiB)
        RX errors 0  dropped 1  overruns 0  frame 0
        TX packets 66181  bytes 4835367 (4.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 611  bytes 75976 (74.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 611  bytes 75976 (74.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

启动KVM的服务

[root@KVM ~]# lsmod |grep kvm     # 检查KVM模块是否加载
kvm_intel             174841  0 
kvm                   578518  1 kvm_intel
irqbypass              13503  1 kvm
[root@KVM ~]# systemctl start libvirtd     # 启动libvirtd服务
[root@KVM ~]#  brctl show
bridge name    bridge id        STP enabled    interfaces
br0        8000.000c296bdbdc    no        ens33    # 我们配置的桥接网卡
virbr0        8000.525400d2488d    yes        virbr0-nic    # NAT模式的网卡

创建虚拟机安装CentOS7

[root@KVM ~]# cd /tmp/
[root@KVM tmp]# ls
CentOS-7-x86_64-DVD-1804.iso    # 准备好的镜像
systemd-private-a5de49561f874704a8ab299e79927293-chronyd.service-bhemHv
systemd-private-a5de49561f874704a8ab299e79927293-named.service-URqlBG
systemd-private-cc88880270574599942110f66e3eae19-systemd-hostnamed.service-c0VlU8

安装这个CentOS7镜像文件

[root@KVM tmp]#  virt-install \
  --name=damowang \
  --memory=512,maxmemory=1024 \
  --vcpus=1,maxvcpus=2 \
  --os-type=linux \
  --os-variant=rhel7 \
  --location=/tmp/CentOS-7-x86_64-DVD-1804.iso \
  --disk path=/kvm_data/damowang.img,size=10 \
  --bridge=br0 \
  --graphics=none \
  --console=pty,target_type=serial  \
  --extra-args="console=tty0 console=ttyS0"

 

--name 指定虚拟机的名称

--memory 指定分配给虚拟机的内存资源大小

maxmemory 指定可调节的最大内存资源大小,因为KVM支持热调整虚拟机的资源

--vcpus 指定分配给虚拟机的CPU核心数量

maxvcpus 指定可调节的最大CPU核心数量

--os-type 指定虚拟机安装的操作系统类型

--os-variant 指定系统的发行版本

--location 指定ISO镜像文件所在的路径,支持使用网络资源路径,也就是说可以使用URL

--disk path 指定虚拟硬盘所存放的路径及名称,size 则是指定该硬盘的可用大小,单位是G

--bridge 指定使用哪一个桥接网卡,也就是说使用桥接的网络模式

--graphics 指定是否开启图形

--console 定义终端的属性,target_type 则是定义终端的类型

--extra-args 定义终端额外的参数

开始安装后,正常的情况下会进入到这样一个界面

这是配置语言、时区、安装源、网络、密码等信息,和在VMware里安装CentOS虚拟机是一样的,只不过这个是命令行形式,而VMware里是图形界面

首先设置语言,按数字1,回车进入以下界面 输入回车后再输入68

 然后选择1 简体中文

配置完成之后又会再次回到配置界面,下面输入2 设置时区

选择设置时区,设置亚洲时区

回车后选择上海时区

输入5 ,设置系统安装盘

选择c继续

默认选项即可 , c继续

选择标准分区

输入c , 继续

输入8 ,设置超级用户密码

 

输入b, 开始安装

安装完成后回自动重启 

重启成功之后就会进入到登录界面

登录

现在是一个虚拟终端,按 Ctrl + ] 可以切出来

/kvm_data下面多了一个镜像文件

[root@KVM tmp]# ll /kvm_data/
总用量 1377968
-rw------- 1 qemu qemu 10739318784 9月   9 21:03 damowang.img
drwx------ 2 root root       16384 9月   9 17:46 lost+found

查看虚拟机状态

[root@KVM tmp]# virsh list    # 查看当前运行中的虚拟机
 Id    名称                         状态
----------------------------------------------------
 2     damowang                       running
[root@KVM tmp]# virsh list --all    # 列出所有虚拟机包括关机状态的
 Id    名称                         状态
----------------------------------------------------
 2     damowang                       running

查看虚拟机配置文件

[root@KVM tmp]# ls /etc/libvirt/qemu/
damowang.xml  networks
[root@KVM tmp]# ls /etc/libvirt/qemu/networks/
autostart  default.xml
[root@KVM tmp]#  ls /etc/libvirt/qemu/networks/autostart/
default.xml

管理虚拟机的常用命令

[root@KVM tmp]# virsh list
 Id    名称                         状态
----------------------------------------------------
 2     damowang                       running

[root@KVM tmp]# virsh console 2 # 进入指定的虚拟机,进入的时候还需要按一下回车 可以用虚拟机id 可以用名称
连接到域 damowang
换码符为 ^]


[root@localhost ~]# 
[root@KVM tmp]# virsh shutdown 2     # 关闭虚拟机
域 2 被关闭
[root@KVM tmp]# virsh start damowang      # 启动虚拟机
域 damowang 已开始
[root@KVM tmp]#  virsh autostart damowang    # 设置宿主机开机时该虚拟机也开机
域 damowang标记为自动开始
[root@KVM tmp]#  virsh autostart --disable damowang    # 解除开机启动
域 damowang取消标记为自动开始
[root@KVM tmp]# virsh suspend damowang    # 挂起虚拟机
域 damowang 被挂起
[root@KVM tmp]# virsh resume damowang    # 恢复挂起的虚拟机
域 damowang 被重新恢复
[root@KVM tmp]#  virsh undefine damowang   # 彻底销毁虚拟机,会删除虚拟机配置文件,但不会删除虚拟磁盘

为虚拟机配置IP ,然后就可以正常使用了

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
NAME=eth0
UUID=1582ada4-4c42-4dab-84e2-f7075fc66d3f
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.94.111
NETMASK=255.255.255.0
GATEWAY=192.168.94.2
DNS1=192.168.94.2
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:6a:5b:46 brd ff:ff:ff:ff:ff:ff
    inet 192.168.94.111/24 brd 192.168.94.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe6a:5b46/64 scope link 
       valid_lft forever preferred_lft forever

 

posted @ 2018-09-09 21:40  damowang~  阅读(1526)  评论(0编辑  收藏