一 检查系统基础配置
1查看该服务器是否支持虚拟化
grep -E -o 'vmx|svm' /proc/cpuinfo
2 确认是关闭selinux状态
[root@kvm ~]#vi /etc/sysconfig/selinux
SELINUX=disabled
3 关闭防火墙
[root@kvm ~]#/etc/init.d/iptables stop
4 如果安装NetworkManager服务,需关闭
service NetworkManager stop #关闭服务
chkconfig NetworkManager off #关闭开机自动启动
二 安装
1 安装虚拟机用的组件,虚拟机使用桥接网络
yum groupinstall Virtualization "Virtualization Client" -y
yum install libvirt -y
2 检查KVM是否加载成功,显示结果如下表示kvm模块已经加载,如果没有输出信息,则表示没有加载成功:
lsmod | grep kvm
3 修改vnc监听端口(可选项,如使用图形化安装需要配置)
[root@kvm ~]#vim /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0"
4 确认libvirtd是否正常启动、重启。
/etc/init.d/libvirtd restart
service libvirtd restart
5 检查虚拟机运行状态
virsh list --all
8 配置网络
使用桥接方式
方式一 直接编辑网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-em1
DEVICE=em1
HWADDR=64:00:6A:60:6F:AA
ONBOOT=yes
BRIDGE="br0"
#创建桥接网卡
vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
NOBOOT=yes
BOOTPROTO=static
IPADDR=192.168.2.100
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DNS1=202.106.46.151
DNS2=202.106.195.68
STP=on
DELAY=0
#重启网络服务
service network restart
方式二 使用virsh iface-bridge命令完成桥接网络配置,前提需要物理网卡em1 需配置IP地址
直接编辑网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-em1
DEVICE=em1
HWADDR=64:00:6A:60:6F:AA
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=202.106.46.151
DNS2=202.106.195.68
virsh iface-bridge em1 br0
#查看桥接网络
brctl show
#重启网络服务
service network restart
三,创建虚拟
1 在物理机上面建立两个存储目录 用于存放iso 和img 镜像文件
mkdir -p /data/kvm/isos
mkdir -p /data/kvm/images
2 创建虚拟机文件
qemu-img create -f qcow2 /data/kvm/images/kvm_test.img 50G #可选项
3 启动虚拟机
# 通过virt-viewer可视界面化安装
说明:这个方式可以通过tigervnc-server 进行连接安装
配置虚拟机显示设置。例如: --graphics vnc --graphics spice,port=5901,tlsport=5902 --graphics none --graphics vnc,password=foobar,port=5910,keymap=ja
--noautoconsole 不要自动尝试连接到客户端控制台
其它选项: --autostart 引导主机时自动启动域。 --print-xml 输出所生成域的XML,而不是定义虚拟机。 --print-step=XMLSTEP 输出具体安装步骤(1,2,3,all)的 XML。 --noreboot 完成安装后不要引导虚拟机。 --wait=WAIT 要等待的时间(以分钟为单位) --dry-run 完成安装步骤,但不要创建设备或者定义虚拟机。 --force 对任意应用程序提示强制回答‘yes’,终止左右其它提示 -q, --quiet 禁止无错误输出 --prompt 要求用户为模糊情况或者需要的选项输入 -d, --debug 输入故障排除信息
# 虚拟显示器安装,需要在宿主机安装tigervnc
virt-install --virt-type kvm --name kvm_test --vcpus=2 --ram 1024 \
--cdrom=/data/kvm/isos/CentOS-6.8-x86_64-minimal.iso \
--disk path=/data/kvm/images/kvm_test.img,size=100,bus=virtio,cache=writeback,format=qcow2 \
--network bridge=br0 \
--graphics vnc,port=5920,listen=0.0.0.0 --noautoconsole \
--os-type=linux --os-variant=rhel6
#使用桥接网络(命令行安装)
virt-install -n kvm_test -r 2048 --vcpu=2 --disk path=/data/kvm/images/kvm_test.img,size=100,bus=virtio,cache=writeback,format=qcow2 --network bridge=br0,model=virtio --force --nographics -l /data/kvm/isos/CentOS-6.8-x86_64-minimal.iso --extra-args console=ttyS0
#使用NAT网络(命令行安装)
virt-install -n kvm_test -r 2048 --vcpu=2 --disk path=/data/kvm/images/kvm_test.img,size=100,bus=virtio,cache=writeback,format=qcow2 --network bridge=br0,model=virtio --force --nographics -l /data/kvm/isos/CentOS-6.8-x86_64-minimal.iso --extra-args console=ttyS0
5,安装tigervnc,如需要图形化安装时(可选项)
yum install tigervnc
yum install tigervnc-server
windows 安装 TigerVNC(远程控制软件) 1.0.90
四,克隆虚拟
#说明:以test01做为源进行克隆 为test02虚拟机,使用磁盘文件/data/test02.img
virt-clone -o test01 -n test02 -f /data/kvm/images/test02.img
清理(删除MAC地址详细信息)¶
操作系统在诸如/etc/sysconfig/network-scripts/ifcfg-eth0 实例过程期间的位置记录虚拟以太网卡的MAC地址。但是,每次映像启动时,虚拟以太网卡都将具有不同的MAC地址,因此必须从配置文件中删除此信息。
有一个名为virt-sysprep的实用程序,它执行各种清理任务,例如删除MAC地址引用。它将清理虚拟机映像:
# virt-sysprep -d centos
配置控制台¶
要使nova console-log命令在CentOS 7上正常工作,您可能需要执行以下步骤:
- 编辑/etc/default/grub文件并配置 GRUB_CMDLINE_LINUX选项。删除 并添加到选项。rhgb quiet console=tty0 console=ttyS0,115200n8
例如: GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap console=tty0 console=ttyS0,115200n8"
- 运行以下命令以保存更改:
grub2-mkconfig -o /boot/grub2/grub.cfg
关闭实例¶
从实例内部,以root身份运行:
# poweroff
自动化脚本
sh create_vm.sh
#!/bin/sh
if [ -z "$1" ] ;
then
echo Specify a virtual-machine name.
exit 1
fi
#sudo qemu-img create -f qcow2 /data/kvm/images/$1.img 50G
sudo virt-install \
--name $1 --ram 2048 --vcpu=2 \
--disk path=/data/kvm/images/$1.img,size=50,bus=virtio,cache=writeback,format=qcow2 \
--network bridge=br0,model=virtio \
--virt-type kvm --os-type=linux --os-variant=centos7.0 \
--force --nographics \
--location=/data/kvm/isos/CentOS-7-x86_64-Minimal-1708.iso \
--extra-args 'console=ttyS0'
参考网站:https://docs.openstack.org/image-guide/centos-image.html