一 使用KVM的原因
云计算(云存储、云计算、软件定义网络、openstack等技术)测试需要搭建分布式节点,在作小型实验环境的时候,使用虚拟机模拟硬件环境可以减少成本,也更方便管理,可以更快帮助新手入门。
virtual box是一个跨平台虚拟化软件,也有很多用户,但是在选型过程中,发现经常性报错,认为不是很稳定,不适合新手入门;而KVM是linux内核的一部分,也是目前事实上的开源虚拟化标准解决方案,比如openstack底层就默认使用KVM做虚拟化。
二 环境信息
cpu:Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz //4core
mem:total 7686,swap 7935
os:Linux promote.cache-dns.local 3.10.0-957.el7.x86_64
三 KVM介绍
Kernel-based Virtual Machine,基于内核的虚拟机。
开源,linux core 2.6 之后集成在linux内核中,是内核模块的一部分;
性能,主板级别访问稳定;
稳定,目前共有云环境70%的市场;
四 KVM安装
- 查看CPU是否支持VMX
grep -E -o 'vmx|svm' /proc/cpuinfo
如下结果表示CPU支持VMX虚拟化:
- 打开VMX虚拟化
BIOS虚拟化开关
开机进入 BIOS,通常在【secruity】设置项下,将 【Virtualization Technology】(不同主板可能叫法不一样,就是虚拟化技术的意思)设置为【enabled】。VMX模式
modprobe kvm
lsmod|grep kvm
如下结果表示KVM模块已经加载:
如下结果表示CPU支持未打开,参考上一步,打开BIOS虚拟化开关:
- 安装libvirt管理工具
yum install -y qemu-kvm
yum install -y libvirt-bin
yum install -y virt-manager
- 创建镜像池路径
选择磁盘可用空间较大的挂载点,同常选择【/home】路径
- 创建镜像池路径
mkdir /home/iso;
mkdir /home/data
- 下载系统镜像
cd /home/iso;
wget http://mirrors.neusoft.edu.cn/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
- 创建磁盘镜像
见下文第六部分
五 虚拟网络配置(暂使用默认网络配置)
- 增加虚拟网卡
brctl addbr cent-virt
ifconfig cent-virt 192.168.100.1/24
ip link set cent-virt up
- NAT虚拟网络
- Bridge虚拟网络
- 网络配置文件
<network>
<name>centos-nat</name>
<uuid>e64eeef7-9be3-4db2-9cc0-2e2cddd966e9</uuid>
<forward mode='nat'/>
<bridge name='cent-virt' stp='on' delay='0'/>
<mac address='52:54:00:c7:19:22'/>
<ip address='192.168.100.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
六 使用GUI进行虚拟机管理
- 创建
- 启动virt
virt-manager
- 创建磁盘镜像
[Edit]-->[Connection details],选择[Storage]
点击左下角[+]创建硬盘镜像池
[Forward]选择硬盘镜像池的挂载路径
选择[第四节]中创建的磁盘镜像池路径 /home/data
点击[Volume]右侧[+]创建磁盘镜像
命名、设置磁盘空间
-
开始创建虚拟机
选择本地媒介安装,点击[Foreard]
-
从系统镜像存放路径中选择之前下载的镜像文件 /home/iso/CentOS-7-x86_64-Minimal-1810.iso
-
设置内存和CPU资源,此处根据需要设定
-
选择已存在的磁盘镜像
-
命名、网络选择
**默认(NAT网络)
- 安装
-
选择安装[Install CentOS 7]
-
语言选择[Englisg]
- 安装设置[SYSTEM]
[SYSTEM]-->[INSTALLATION DESTINATION]
[SYSTEM]-->[NETWORK & HOST NAME]
note:这一步没有操作正确,虚拟机启动之后无法连接网络
answer:[open]虚拟机,用root用户执行以下命令
ifup /etc/sysconfig/network-scripts/ifcfg-eth0
-
开始安装、设置root密码**
等待安装结束
-
起停
- 开启
选中虚拟机,点击运行,或者右击虚拟机选择[run] - 停止
选中虚拟机,点击停止,或者右击虚拟机选择[shutdown]
- 克隆
-
右击虚拟机选择[clone];
-
按照提示进行,注意磁盘镜像选择的位置;
- 修改克隆机的IP,并重启网络服务
- 添加磁盘
- 按照前述步骤 创建磁盘镜像,假设镜像名为:newdisk.qcow2
- 关闭虚拟机
- 修改配置文件 /etc/libvirt/qemu/[vm-name].xml
添加到devices
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/home/data/newdisk'/>
<target dev='vdb' bus='virtio'/>
</disk>
- 添加内存
七 无GUI虚拟机管理
- 创建磁盘镜像
#virsh vol-create --pool [pool-name] --file [configuration-name]
- 创建虚拟机
#virt-install
- 起停虚拟机
- 启动虚拟机
#virsh start [vm-name]
virsh start CentOS7.0-01
- 停止虚拟机
#virsh shutdown [vm-name]
virsh shutdown CentOS7.0-01
- 克隆虚拟机
#virt-clone -o [origin-vm-name] -n [new-vm-name] -f [new-vm-disk-img-file]
irt-clone -o CentOS7.0-01 -n CentOS7.0-02 -f /home/data/CentOS7.0-02.qcow2
- 添加硬盘资源
#qemu-img create -f [raw\qcow2] [file-path] [size]
qemu-img create -f qcow2 /home/data/osd.qcow2 50g