一、检测是否支持KVM

 

KVM 是基于 x86 虚拟化扩展(Intel VT 或者 AMD-V) 技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM。有返回结果,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。

cat /proc/cpuinfo | egrep 'vmx|svm'

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm xsaveopt cqm_llc cqm_occup_llc

关闭SELinux,将 /etc/sysconfig/selinux 中的 SELinux=enforcing 修改为 SELinux=disabled

 

vi /etc/sysconfig/selinux

二、安装 KVM 环境

 

通过 yum 安装 kvm 基础包和管理工具

kvm相关安装包及其作用:

  • qemu-kvm 主要的KVM程序包
  • python-virtinst 创建虚拟机所需要的命令行工具和程序库
  • virt-manager GUI虚拟机管理工具
  • virt-top 虚拟机统计命令
  • virt-viewer GUI连接程序,连接到已配置好的虚拟机
  • libvirt C语言工具包,提供libvirt服务
  • libvirt-client 为虚拟客户机提供的C语言工具包
  • virt-install 基于libvirt服务的虚拟机创建命令
  • bridge-utils 创建和管理桥接设备的工具

# 安装 kvm

yum -y install qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools bridge-utils virt-install

yum -y install qemu-kvm libvirt virt-install bridge-utils

 

# 重启宿主机,以便加载 kvm 模块

# ------------------------ reboot

 

# 查看KVM模块是否被正确加载 

lsmod | grep kvm

 

kvm_intel 162153 0

kvm 525259 1 kvm_intel

 

开启kvm服务,并且设置其开机自动启动

systemctl start libvirtd systemctl enable libvirtd

 

查看状态操作结果,如Active: active (running),说明运行情况良好

systemctl status libvirtd systemctl is-enabled libvirtd ● libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: active (running) since 二 2001-01-02 11:29:53 CST; 1h 41min ago Docs: man:libvirtd(8) http://libvirt.org

 

#桥接网络

如果没有brctl命令(用来管理网桥的工具),则需要安装bridge-utils ,

[root@kevin ~]# yum -y install bridge-utils

[root@kevin ~]# systemctl restart network

 

 

配置KVM的网桥模式

[root@kevin ~]# cd /etc/sysconfig/network-scripts/

[root@openstack network-scripts]# cp ifcfg-em4 ifcfg-br0

[root@openstack network-scripts]# cat ifcfg-br0

 

TYPE=Bridge //这一行修改为Bridge

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=none

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=no

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=br0 //修改设备名称为br0

#UUID=6f3725c5-a74b-414a-a74c-e15f658bbe72 //这一行注释

DEVICE=br0 //修改设备为br0

IPADDR=10.1.1.126

NETMASK=255.255.255.0

GATEWAY=10.1.1.1

DNS1=120.24.63.146

DNS2=8.8.8.8

ONBOOT=yes

 

[root@openstack network-scripts]# cat ifcfg-em4

 

TYPE=Ethernet

BRIDGE=br0 //添加这一行

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=none

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=no

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=em4

UUID=6f3725c5-a74b-414a-a74c-e15f658bbe72

DEVICE=em4

#IPADDR=10.1.1.126 //注释掉这几行

#NETMASK=255.255.255.0

#GATEWAY=10.1.1.1

#DNS1=120.24.63.146

#DNS2=8.8.8.8

ONBOOT=yes

 

重启网卡服务

[root@openstack network-scripts]# systemctl restart network

 

三、安装虚拟机

 

安装前要设置环境语言为英文LANG="en_US.UTF-8",如果是中文的话某些版本可能会报错。CentOS 7 在这里修改 /etc/locale.conf。

kvm创建虚拟机,特别注意.iso镜像文件一定放到/home 或者根目录重新创建目录,不然会因为权限报错,无法创建虚拟机。

virt-install \

--virt-type=kvm \

--name=server-10-1-1-126-vm01 \

--vcpus=4 \

--memory=16384 \

--location=/iso/CentOS-7-x86_64-DVD-2003.iso \

--disk path=/data/vms/centos127.qcow2,size=100,format=qcow2 \

--network bridge=br0 \

--graphics=none --console=pty,target_type=serial \

--extra-args='console=ttyS0' \

--force

 

命令行配置系统

上面创建虚拟机命令最终需要你配置系统基础设置,带 [!] 基本都是要配置的,按照顺序往下配置,按对用的数字以此进行设置。

Installation

3) [!] Installation source                         4) [!] Software selection (Processing...) (Processing...)

5) [!] Installation Destination                       6) [x] Kdump (No disks selected) (Kdump is enabled)

7) [ ] Network configuration                        8) [!] Root password (Not connected) (Password is not set.)

9) [!] User creation (No user will be created)

Please make your choice from above ['q' to quit | 'b' to begin installation | 'r' to refresh]:

  1. Timezone settings 时区设置选择 5) Asia亚洲,再选择城市 62) Shanghai上海

Available regions

1) Africa         6) Atlantic     10) Pacific

2) America     7) Australia      11) US

3) Antarctica     8) Europe     12) Etc

4) Arctic       9) Indian

5) Asia

Please select the timezone.

Use numbers or type names directly [b to region list, q to quit]: 5

--------------------

 

8) Baghdad     35) Kathmandu     61) Seoul

9) Bahrain       36) Khandyga       62) Shanghai

10) Baku       37) Kolkata       63) Singapore

26) Hong_Kong     53) Pontianak

27) Hovd

Please select the timezone.

Use numbers or type names directly [b to region list, q to quit]: 62

  1. Installation source 安装源输入数字2

Choose an installation source type.

1) CD/DVD

2) local ISO file

3) Network

Please make your choice from above ['q' to quit | 'c' to continue | 'r' to refresh]: 2

  1. Software selection 软件选择

Base environment

Software selection

 

Base environment

 

 

1) [x] Minimal Install

Please make your choice from above ['q' to quit | 'c' to continue | 'r' to refresh]:

  1. Installation Destination 安装目的地

Installation Destination

[x] 1) : 40 GiB (vda)

1 disk selected; 40 GiB capacity; 40 GiB free ...

 

Please make your choice from above ['q' to quit | 'c' to continue | 'r' to refresh]: c

 

Autopartitioning Options自动分区选项

[ ] 1) Replace Existing Linux system(s) 替换现有的Linux系统

[x] 2) Use All Space 使用所有空间

[ ] 3) Use Free Space 使用可用空间

 

================================================================================

 

 

Partition Scheme Options 分区方案选项

[x] 1) Standard Partition 标准分区

[ ] 2) Btrfs Btrfs

[ ] 3) LVM LVM(逻辑卷管理)

[ ] 4) LVM Thin Provisioning 精简配置

 

Select a partition scheme configuration.

 

Please make your choice from above ['q' to quit | 'c' to continue | 'r' to refresh]: c

此处也可以只设置 Root 密码和Installation Destination 安装目的地其它进入系统设置比如时区设置如下:

echo "TZ='Asia/Shanghai'; export TZ" >> /etc/profile

 

 

连接虚拟机

 

通过 virsh console <虚拟机名称> 命令来连接虚拟机

# 查看虚拟机

virsh list    # 查看在运行的虚拟机

virsh list --all   # 查看所有虚拟机

 

#退出虚拟机

快捷键: ctrl+]

 

虚拟机其它管理

 

virsh start centos72     # 虚拟机开启(启动)

virsh reboot centos72     # 虚拟机重新启动

virsh shutdown centos72     # 虚拟机关机

virsh destroy centos72     # 强制关机(强制断电)

virsh suspend centos72     # 暂停(挂起)KVM 虚拟机

virsh resume centos72     # 恢复被挂起的 KVM 虚拟机

virsh undefine centos72     # 该方法只删除配置文件,磁盘文件未删除

virsh autostart centos72    # 随物理机启动而启动(开机启动)

virsh autostart --disable centos72    # 取消标记为自动开始(取消开机启动)