KVM 虚拟化技术
1.1KVM部署与使用
系统环境说明(宿主机——KVM虚拟机)
cat /etc/redhat-release
uname -r
systemctl stop firewalld
systemctl status firewalld
setenforce 0
getenforce
hostname -I(大i)
注意:KVM主机内存不能低于4GB
1.1.1 安装KVM虚拟化软件
安装依赖包
yum -y install libvirt* virt-* qemu-kvm
安装软件说明
libvirt 虚拟机管理
virt 虚拟机安装克隆
qemu-kvm 管理虚拟机磁盘
启动服务
systemctl start libvirtd
systemctl status libvirtd
安装VNC软件(略)http://www.tightvnc.com
默认安装即可,无需安装server端
1.1.2 配置第一台KVM虚拟机
打开vmware的虚拟化功能以及vnc连接设置
将虚拟机关机进行操作
图已经设置好了
mkdir /data
将镜像文件CentOS-7-x86_64-DVD-1810.iso上传到 /data目录下
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /data/clsn.raw,format=raw,size=10 --cdrom /data/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0,port=5900 --noautoconsole
vnc
连接192.168.11.128:5900
然后就是只能装centos系统了!!!(略)
等待中!!!!
1.1.3 KVM虚拟机管理操作
参数 | 参数说明 |
list | 查看虚拟机列表,列出域 |
start | 启动虚拟机,开始一个(以前定义的)非活跃的域 |
shutdown | 关闭虚拟机,关闭一个域 |
destroy | 强制关闭虚拟机,销毁(停止)域 |
vncdisplay | 查询虚拟机vnc端口号 |
配置管理操作 | |
dumpxml | 导出主机配置信息 |
undefine | 删除主机 |
define | 导入主机配置 |
domrename | 对虚拟机进行重命名 |
挂起与恢复 | |
suspend | 挂起虚拟机 |
resume | 恢复虚拟机 |
自启动管理 | |
autostart | 虚拟机开机启动 |
autostart --disable | 取消虚拟机开机启动 |
以上参数通过 “virsh --help"得到 |
操作过程:
启动虚拟机:
virsh start centos7
关闭虚拟机:
virsh shutdown centos7
KVM虚拟机配置文件位置
vim /etc/libvirt/qemu/centos7.xml = virsh edit centos7
备份恢复:
备份虚拟机配置(关机时备份)
virsh shutdown centos7
virsh dumpxml centos7 > centos7.xml
删除虚拟机配置
virsh list --all
virsh undefine centos7
virsh list --all
导入虚拟机
virsh define centos7.xml
virsh list --all
修改虚拟机名称
virsh domrename centos7 lmj(关机)
virsh list
虚拟机挂起与恢复
virsh start lmj
virsh suspend lmj
virsh list --all
恢复虚拟机
virsh resume lmj查询虚拟机vnc端口
virsh vncdisplay lmj
:0为5900端口,以此类推 :1为5901
开机自启动设置
设置libvirt服务开机自启动
systemctl is-enabled libvirtd.service
设置宿主机开机虚拟机在其他
virsh autostart lmj
实质为创建软链接
ll /etc/libvirt/qemu/autostart/clsn7.xml
/etc/libvirt/qemu/autostart/clsn7.xml -> /etc/libvirt/qemu/clsn7.xml
取消开机自启动
virsh autostart --disable lmj
1.2 kvm虚拟机 console 登录
1.2.1 CentOS 7.X 版本console登录
配置console登录
在lmj虚拟机内操作(该操作仅限centos7):
grubby --update-kernel=ALL --args=“console=ttyS0,115200n8”
reboot
在宿主机内的操作
virsh console lmj
注:退出virsh console连接的方法,使用组合键Ctrl+]即可
1.3.2 CentOS 6.X 版本console登录
使用virsh console连接CentOS 6虚拟主机方法:
安装一台centos6的kvm虚拟机
virt-install --virt-type kvm --os-type=linux --os-variant rhel6
–name clsn6 --memory 1124 --vcpus 1
–disk /data/clsn6/clsn-6.raw,format=raw,size=10
–cdrom /data/CentOS-6.9-x86_64-bin-DVD1.iso
–network network=default --graphics vnc,listen=0.0.0.0,port=5901
–noautoconsole
新安装一台虚拟机后,是无法通过virsh console 命令连入虚拟机中的,这时我们需要开启虚拟机的console功能。
以下操作都在虚拟机中进行
1、添加ttyS0的许可,允许root登陆
echo “ttyS0” >> /etc/securetty
2、编辑/etc/grub.conf中加入console=ttyS0
在该文件的第16行。kernel选项后添加:
sed -i ‘/\tkernel/s#.*#& console=ttyS0#g’ /etc/grub.conf
sync
cat -n /etc/grub.conf
3、编辑/etc/inittab
在最后一行加入内容 S0:12345:respawn:/sbin/agetty ttyS0 115200
echo ‘S0:12345:respawn:/sbin/agetty ttyS0 115200’ >>/etc/inittab
4、以上操作都完成后,重启虚拟机
reboot
在宿主机的操作
virsh console clsn6
注:退出virsh console连接的方法,使用组合键Ctrl+]即可
1.3 KVM虚拟机磁盘、快照与克隆
1.4.1 磁盘管理
KVM qcow2、raw、vmdk等镜像格式说明(百度这句话浏览即可)
创建一块qcow2的虚拟硬盘(仅测试使用,无实际意义)
cd /data
qemu-img create -f qcow2 clsn.qcow2 2G
ls -l
rm -rf qcow2
查看当前虚拟机硬盘信息
qemu-img info /data/clsn.raw
raw 转qcow2格式
qemu-img --help | grep convert
qemu-img convert -f raw -O qcow2 clsn.raw clsn.qcow2
virsh edit lmj
删除原磁盘文件
\rm clsn.raw查看状态
ls /data
1.3.2 KVM虚拟机添加硬盘
进入硬盘存放目录
cd /data
创建一块新的硬盘
qemu-img create -f qcow2 clsn7-add01.qcow2 5G
Formatting ‘clsn7-add01.qcow2’, fmt=qcow2 size=5368709120 encryption=off cluster_size=65536 lazy_refcounts=off
ls
查看创建的硬盘信息
qume-img info clsn7-add01.qcow2
为虚拟机添加硬盘
virsh attach-disk lmj /data/clsn7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2
参数说明:
vdb | 第二块硬盘 |
–live | 热添加 |
–subdriver | 驱动类型 |
卸载硬盘
查看帮助:virsh --help | grep disk
attach-disk 附加磁盘设备
blockpull 从备份映像填充磁盘。
detache-disk 分离磁盘设备将已挂载的磁盘卸载下来
virsh detach-disk lmj vdb
调整磁盘大小
查看帮助:qemu-img --help |grep resize
增加 1G 容量
qemu-img resize clsn7-add01.qcow2 +1G
qemu-img info clsn7-add01.qcow2
重新将磁盘添加到虚拟机
virsh attach-disk lmj /data/clsn7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2
在虚拟机中操作
格式化磁盘
mkfs.xfs /dev/vdb挂载磁盘
mount /dev/sdb
df -h | grep /dev/vdb
1.3.3 快照管理
注意:raw格式的磁盘无法创建快照(虚拟机停止挂载后操作umount /dev/vdb)
创建快照
virsh snapshot-create lmj
查看主机快照列表
virsh snapshot-list lmj
查看快照信息
virsh snapshot-info lmj --snapshotname 1557318041
登陆KVM虚拟机,进行删除操作
ls -1|egrep -v ‘proc|sys|run’ |rm -rf
还原快照
virsh snapshot-revert lmj --snapshotname 1557318041
删除快照
virsh snapshot-delete lmj --snapshotname 1557318041
快照配置文件位置
virsh snapshot-create lmj
cd /var/lib/libvirt/qemu/snapshot
tree(yum -y install tree)
1.3.4 kvm虚拟机克隆
复制一个虚拟机,需修改如 MAC 地址,名称等所有主机端唯一的配置。
虚拟机的内容并没有改变:virt-clone 不修改任何客户机系统内部的配置,它只复制磁盘和主机端的修改。所以像修改密码,修改静态 IP 地址等操作都在本工具复制范围内。如何修改此类型的配置,请参考 virt-sysprep。
克隆常用命令(关机克隆):
virt-clone --auto-clone -o lmj
–auto-clone 从原始客户机配置中自动生成克隆名称和存储路径
-o 原始客户机名称;必须为关闭或者暂停状态。
1.4 kvm虚拟机网络管理
1.4.1 桥接网络配置
1.设置桥接网络
virsh iface-bridge eth0 br0
查看网卡配置文件并修改
vim /etc/sysconfig/network-scripts/ifcfg-eth0
vim /etc/sysconfig/network-scripts/ifcfg-br0
在ifcfg-br0添加如下三行
IPADDR=“192.168.11.132” 原来宿主机的ip
NETMASK=“255.255.255.0” 原来宿主机的掩码
GATEMASK=“192.168.11.2” 原来宿主机的网关2.修改虚拟机网络配置
virsh edit lmj
重启eth0网卡
ifdown eth0
ifup eth0修改DNS域名解析的配置文件
vim /etc/resolve.conf
systemctl restart network
ping www.baidu.com成功查看宿主机网桥
virsh shutdown lmj
virsh start lmj
systemctl restart libvirtd
brctl show
3.修改kvm虚拟机网卡配置文件(在KVM虚拟机中操作)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
如图修改
改为与br0同一网段即可;
ping ww.baudi.com(ping通)
1.5 图形化管理虚拟机的工具
(1)图形管理工具:
kimchi:基于H5研发的web GUI;virt-king; 网上搜索kimchi kvm 有安装使用教程
OpenStack:IaaS 非常重量级,非常吃资源;至少10台以上的虚拟机才用它
oVirt:比kimchi 功能强大的多,比OpenStack轻量;但配置也较麻烦
proxmox VE
(2)kvm 官方的管理工具栈:https://www.linux-kvm.org/page/Management_Tools
1.8.1 Kvm web 管理工具使用 wok kimchi
1、Wok
- Wok基于cherrypy的web框架,可以通过一些插件来进行扩展,例如:虚拟化管理、主机管理、系统管理。它可以在任何支持HTML5的网页浏览器中运行。
2、Kimchi
- Kimchi是一个基于HTML5的KVM管理工具,是Wok的一个插件(使用Kimchi前一定要先安装了wok),通过Kimchi可以更方便的管理KVM。
github地址:https://github.com/kimchi-project
3、安装
yum install epel-release
wget https://github.com/kimchi-project/wok/releases/download/2.5.0/wok-2.5.0-0.el7.centos.noarch.rpm
yum -y install *.rpm
systemctl daemon-reload
systemctl start wokd
systemctl enable wokd
4、登录
宿主机root用户
r宿主机oot用户密码5.登陆日志
对vm虚拟主机的操作都会记录在这里
6.kvm虚拟机管理
创建模板
说明:
kvm虚拟机名:lmj
文件路径:/data/CentOS-7-x86_64-DVD-1810.iso
还有存储信息及网络信息以及创建操作