系统环境
- 硬件
类型 | 型号 | 明细 |
---|---|---|
CPU | Intel 酷睿i5 460M | 8C |
内存 | DDR3 | 2条,共8G |
硬盘 | 机械硬盘 | 200G |
+ 操作系统
Linux centos 7
目标
主机3台。
配置:1C CPU, 2G 内存, 40G 硬盘
网络:使用网络桥接接入网络,使网络内其他主机可以访问虚拟主机
操作系统:Centos 7
准备
- yum环境配置
#备份配置
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#替换墙内yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#生成缓存
yum clean all
yum makecache
- 系统盘
1、下载centos 7系统盘
前往 [Centos官网下载页](https://www.centos.org/download/)下载MinimalISO
2、上传安装包
上传ISO安装包"CentOS-7-x86_64-DVD-1708.iso"到路径"/data/kvm"目录
+ 网络配置
1、安装桥接工具
yum install bridge-utils
2、配置网桥
# 查看网络配置
$ ifconfig
# 这里会显示当前的网配置
# 其中enp4s0为网卡配置,lo本级环路地址
$ cd /etc/sysconfig/network-scripts/ #进入网络配置脚本目录
$ cp ifcfg-enp4s0 ifcfg-enp4s0.bak #备份网卡配置
$ vi ifcfg-br0 #新增网桥配置
TYPE=bridge # 类型
BOOTPROTO=static # 静态地址
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0 #配置名称
UUID=ab508da9-c3a2-4d3d-9917-435025b8910a
DEVICE=br0
ONBOOT=yes #开机启动
MM_Controlled=no
IPADDR=192.168.1.118 #ip地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.1.1 #网管地址
DNS1=114.114.114.114 #dns地址
$ vi ifcfg-enp4s0 #修改配置为
TYPE=Ethernet #类型为以太网
BOOTPROTO=none
NAME=enp4s0 #名称
DEVICE=enp4s0
ONBOOT=yes #开机自起
BRIDGE=br0 #网桥名称
$ service network restart # 重启网卡
操作步骤
1、安装kvm环境
# 安装 kvm 管理工具
yum -y install qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools bridge-utils virt-install
# 重启宿主机,以便加载 kvm 模块
reboot
# 查看KVM模块是否被正确加载
lsmod | grep kvm
2、关闭SELinux
将 /etc/sysconfig/selinux 中的 SELinux=enforcing 修改为 SELinux=disabled
$ cat /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
# SELINUX=enforcing 更新为下行
SELinux=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
3、启动libvert,并设置开机启动
- systemctl start libvirtd
- systemctl enable libvirtd
4、创建虚拟机文件存放目录
mkdir -p /data/kvm/images
5、创建虚拟机
$ virt-install \
--name kvm-1 \
--memory 2018 \
--vcpus 1 \
--cpu host \
--location /data/kvm/CentOS-7-x86_64-DVD-1708.iso \
--disk /data/kvm/images/docker-1.img,size=40,format=raw \
--network bridge=br0 \
--os-type=linux \
--os-variant=rhel7.3 \
--virt-type kvm \
--graphics none \
--extra-args='console=ttyS0' \
--force
5、更新config配置
Installation
1) [x] Language settings
2) [!] Time settings
(English (United States)) (Timezone is not set.)
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、语言设置——设置中文
- 2、时区设置——设置上海时区
- 3、安装源——可以不处理
- 4、Software selection——预装软件,可以不处理,默认mini安装
- 5、安装目的地——可以不处理
- 6、Kdump 存储分区,可以选择默认分区lvm
- 7、网络配置——可以不处理
- 8、Root用户密码——建议设置
- 9、用户创建——可以不处理
6 修改kvm虚机网络配置
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=a6deaf5d-c21e-4704-bbd6-973976a8aeb7
DEVICE=eth0
ONBOOT=yes
DNS1=114.114.114.114
GATEWAY=192.168.1.1
IPADDR=192.168.1.121
NETMASK=255.255.255.0
重启虚机网络
service network restart
- ip addr 查看虚机ip
7、克隆多台主机
- 关闭kvm-1
- 宿主机执行$virsh shutdown kvm-1
- 克隆kvm-2
$ virt-clone -o kvm-1 -n kvm-2 -f /data/kvm/images/kvm-2.img
- 启动kvm-2
$ virsh start kvm-2
- 更新kvm-2网络配置
$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
#修改为新ip IPADDR=192.168.1.122
总结
宿主机权限
如果不能清晰的管理用户,权限建议使用root用户
系统安装包
我最初使用的是CentOS-7-x86_64-Minimal-1708.iso ,没有安装成功,后来改为CentOS-7-x86_64-DVD-1708.iso 安装成功了。
主要遇到的问题是在未设置虚机网络前不能不能登录虚机。虚机访问
- 虚机通过桥接方式接入网络,在局域网内任何机器都可以使用ssh访问虚机。
- 虚机未设置网络前可以使用vnc,virt-viewer,console 几种方式连接。笔者在安装过程中只试验通过了console方式,
安装参考,在安装过程中参考了多篇文章,最终摸索出了一个可行的方案,主要问题是宿主机硬件不一致,操作系统不一致,安装包版本一致,可能导致于参考文章的结果不一致。所以多摸索,参考文章+具体问题具体分析。