安装kvm
预操作
查看cpu是否支持虚拟化
cat /proc/cpuinfo | egrep 'vmx|svm'
关闭selinux,将 /etc/sysconfig/selinux 中的 SELinux=enforcing 修改为 SELinux=disabled
vim /etc/sysconfig/selinux
安装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 创建和管理桥接设备的工具
最少需要安装的程序:
yum -y install qemu-kvm libvirt virt-install bridge-utils
查看kvm 内核模块是否被加载,如果有,则继续后面的步骤,否则重启机器,以加载kvm。
lsmod | grep kvm
运行libvirtd,并设置开启启动
systemctl start libvirtd
systemctl enable libvirtd
创建虚拟机
安装虚拟机
网络nat方式
virt-install \
--connect=qemu:///system \
--virt-type=kvm \
--name=vm1 \
--vcpus=8 \
--memory=16384 \
--location=/data/kvm/iso/CentOS-7-x86_64-Minimal-1804.iso \
--disk path=/data/kvm/vm/vm1_0.qcow2,size=200,format=qcow2 \
--network network=default \
--graphics none \
--extra-args='console=ttyS0' \
--force
网桥方式类似,先创建好网桥。上面命令中网络配置改成 :--network bridge=<your bridge name>
运行上面命令后,会进入选项界面,带!的是必须设置的。输入设置前面的数组,按回车,进入对应的选项。
Installation
1) [x] Language settings 2) [!] Time settings
(English (United States)) (Timezone is not set.)
3) [x] Installation source 4) [x] Software selection
(Local media) (Minimal Install)
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]:
设置如下
- [!] Time settings 选择 亚洲、上海
- [!] Installation Destination 全部选择默认值
- [x] Root password 自定义root密码
设置完成后,输入 b Enter,开始安装。
进入虚拟机
配置ip
centos minimal需要配置ip地址,如果有dhcp服务器,可以如下配置。静态ip可参考这里。
查看网卡和ip,默认是没有ip的
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
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 qlen 1000
link/ether 52:54:00:55:21:92 brd ff:ff:ff:ff:ff:ff
根据之前得到的网卡名称eth0,编辑对应的配置文件。把其中的ONBOOT=no
改为ONBOOT=yes
vi /etc/sysconfig/network-scripts/ifcfg-eth0
然后重启网络服务
systemctl restart network
开启ssh,关闭selinux和防火墙
systemctl start sshd
systemctl enable sshd
# 临时关闭selinux,不必重启就可生效
setenforce 0
# 永久关闭selinux。reboot后生效
[ -e /etc/sysconfig/selinux ] || cp /etc/sysconfig/selinux /etc/sysconfig/selinux.orig
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/sysconfig/selinux
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
配置源
cd /etc/yum.repos.d
mkdir origin
mv ./*.repo origin/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
修改hostname
hostnamectl set-hostname node1
vim /etc/hosts
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 node1
::1 node1
增加磁盘
qemu-img create -f qcow2 node5-data.qcow2 50G
virsh attach-disk node5 /data/kvm/blk/node5-data.qcow2 vdb --cache=none --subdriver=qcow2
virsh domblklist node2