KVM虚拟化配置
KVM虚拟化
虚拟化概念
虚拟化配置
- 首先开启虚拟化的支持 并且增加一个50g的硬盘
free
查看内存grep -Ei 'vmx|svm' /proc/cpuinfo
查看虚拟机是支持虚拟化
lsblk
查看是否增加了一块新的磁盘 这里我们看到新增了一块50g的内存
- 接下来我们格式化硬盘格式化为ext4格式
mkfs.ext4 /dev/sdb
blkid /dev/sdb
查看磁盘信息
- 创建挂载目录
mkdir /kvm_data
mount /dev/sdb /kvm_data
挂载到/kvm_data- 为使
/kvm_data
开机自动挂载 需要修改‘/etc/fstab’
- 添加
/dev/sdb /kvm_data ext4 defaults 0 0
- 添加
- 关闭防火墙 和
seLinux
安装KVM
yum install -y virt-* libvirt bridge-utils qemu-img
启动KVM
配置网卡 首先复制原先的网卡
接下来修改
ifcfg-bro
TYPE="Bridge"
BOOTPROTO="none"
DEFROUTE="yes"
NAME="bro"
DEVICE="bro"
ONBOOT="yes"
IPADDR="192.168.207.143"
NETMASK="255.255.255.0"
GATEWAY="192.168.207.2"
DNS1=114.114.114.114
DNS2=8.8.8.8
修改
ifcfg-ens33
TYPE="Ethernet"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
BOOTPROTO="none"
BRIDGE="bro"
systemctl restart network
重启网卡
启动libvirtd服务
首先检查KVM模块是否加载,命令如下(lsmod命令用于显示已载入系统的模块):
lsmod|grep kvm
systemctl start libvirtd
开启libvirtd
brctl show
查看有两个网卡上传Centos7到
/tmp/
目录下virt-install --name=test --memory=512,maxmemory=1024
--vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7
--location=/tmp/CentOS-7-x86_64-DVD-1511.iso
--disk path=/kvm_data/test.img,size=10
--bridge=br0
--graphics=none
--console=pty,target_type=serial
--extra-args="console=tty0 console=ttyS0"
输入上面的命令开始安装虚拟机
命令解释:
--name:指定虚拟机的名称。
--memory:指定分配给虚拟机的内存资源大小。
maxmemory:指定可调节的最大内存资源大小,因为KVM支持热调整虚拟机的资源。
--vcpus:指定分配给虚拟机的CPU核心数量。
maxvcpus:指定可调节的最大CPU核心数量。
--os-type:指定虚拟机安装的操作系统类型。
--os-variant:指定系统的发行版本。
--location:指定ISO镜像文件所在的路径,支持使用网络资源路径,也就是说可以使用URL。
--disk path:指定虚拟硬盘所存放的路径及名称,size则是指定该硬盘的可用大小,单位是G。
--bridge:指定使用哪一个桥接网卡,也就是说使用桥接的网络模式。
--graphics:指定是否开启图形。
--console:定义终端的属性,target_type 则是定义终端的类型。
--extra-args:定义终端额外的参数。
开机后进入设置界面 对时区 root密码等进行设置
虚拟机管理
virsh list
查看虚拟机列表 只能看见已经开启的虚拟机
virsh list --all
查看所有的虚拟机virsh console test
进入指定的虚拟机
vrish常用命令,命令如下:
virsh shutdown test
//关闭虚拟机
virsh start test
//开启虚拟机
virsh destroy test
//类似stop,这个是强制停止
virsh undefine test
//彻底销毁虚拟机,会删除虚拟机配置文件,virsh list --all就看不到
virsh autostart test
//宿主机开机该虚拟机也开机
virsh autostart --disable test
//解除开机启动
virsh suspend test
//挂起
virsh resume test
//恢复
克隆虚拟机
克隆虚拟机之前必须要关闭虚拟机
virt-clone --original test --name test02 --file
--original:指定克隆源虚拟机。
--name:指定克隆后的虚拟机名字。
--file:指定目标虚拟机的虚拟磁盘文件
- 查看虚拟机是否增加
test02
ls /etc/libvirt/qemu/
快照
快照是在我们使用Vmware的时候,很常用的一个功能。它可以回到之前的某一状态。在KVM中RAW格式的虚拟磁盘不支持做快照,qcow2支持。
创建快照
virsh snapshot-create test
qemu-img info /kvm_data/test.img
查看test.img信息 并且同时查看 快照列表virsh snapshot-list test
列出所有快照virsh snapshot-current test
查看当前快照详细信息ls /var/lib/libvirt/qemu/snapshot/test/
查看所有快照配置文件恢复指定快照
virsh snapshot-revert test 1588485687
删除指定快照
virsh snapshot-delete test 1588485687
磁盘格式
qemu-img info /kvm_data/test.img
查看磁盘格式信息创建2 GB的RAW格式磁盘
qemu-img create -f raw /kvm_data/test_1.img 2G
- -f 指定磁盘类型 后面跟3个参数 磁盘类型、磁盘文件、大小
qemu-img convert -O qcow2 /kvm_data/test_1.img /kvm_data/test_1.qcow2
将磁盘转换为qcow2格式- convert -O 进行格式转换
ls -lh /kvm_data/test_1.img
可以看到qcow2文件比较小,raw文件大小和我们指定空间大小一样是2G raw格式的磁盘性能比qcow2要好,但是raw格式的磁盘无法做快照
qemu-img convert -O raw /kvm_data/test02.img /kvm_data/test02_2.img
将test02转换为raw格式更改磁盘格式和文件路径,然后启动test02虚拟机,命令如下:
virsh edit test02
- /找到上面这部分将qcow修改为raw,/kvm_data/test02.img改为
磁盘扩容
- 首先扩容RAW格式,命令如下:
qemu-img resize /kvm_data/test02_2.img +2G
qemu-img info /kvm_data/test02_2.img
查看磁盘信息 大小增加了2g
- 进入虚拟机
virsh console test02
使用fdisk -l
查看磁盘列表
- 发现这时虚拟机的磁盘大小还是10g 所以我们需要重新启动虚拟机后 再进行测试
这样我们看到已经变为12g了 接下来对该磁盘进行分区
fdisk /dev/vda
分区完成后 使用p查看磁盘列表:
- 除了对已有磁盘扩容外,还可以额外增加磁盘,命令如下:
qemu-img create -f raw /kvm_data/test02_3.raw 5G
创建一块新的5g的磁盘
virsh edit test02
编辑虚拟机test02- 主要修改source file名称为/kvm_data/test02_3.raw,target dev改为vdb,slot改为0x09,不与0x06冲突即可。
- 关闭虚拟机进行测试:
接下来,我们扩容qcow2格式的磁盘,命令如下:
qemu-img resize /kvm_data/test.img +2G
若提示qemu-img:Can't resize an image which has snapshots
,需要删除快照使用命令
qemu-img info test.img
查看虚拟机信息
- 重启虚拟机 进行查看
fdisk -l
调整CPU内存、网卡
- 查看虚拟机配置信息
virsh dominfo test
- 修改配置文件
virsh edit test
- 再次查看配置信息
virsh dominfo test
- 还可以动态修改 内存和cpu信息 动态修改重启后失效
virsh setmem test 800m
修改动态内存virsh setvcpus test 2
修改cpu数 只能增加不能减少
- 再次查看虚拟机配置信息
virsh dumpxml test > /etc/libvirt/qemu/test.xml
把配置写到配置文件中
配置网卡
virsh domiflist test
列出网卡列表
- 增加一块新的网卡,并设置为NAT网络模式(virbr0类似VMware的VMnet8),这里如果写--source br0,则网络模式为桥接,命令如下:
virsh attach-interface test --type bridge --source virbr0
virsh domiflist test
virsh dumpxml test > /etc/libvirt/qemu/test.xml
把配置文件进行备份进入虚拟机查看网卡信息
ip a
- 此方法在重启虚拟机后 网卡自动消失 如果想要网卡永久存在 需要将网卡添加到配置文件中
迁移虚拟机
- 迁移虚拟机必须要先关闭
virsh domblklist test
查看虚拟磁盘所在目录
virsh dumpxml test > /etc/libvirt/qemu/test03.xml
如果是远程虚拟机需要把该文件拷贝到远程上去rsync -av /kvm_data/test.img /kvm_data/test03.img
如果是迁移到远程,则需要把该磁盘文件拷贝到远程机器上
因为是迁移到本机,配置文件用的是test子机的配置,不改会有冲突,所以需要修改该文件。如果是远程机器不用修改,命令如下:
vi /etc/libvirt/qemu/test03.xml
virsh define /etc/libvirt/qemu/test03.xml
定义新的虚拟机virsh list --all
查看所有的虚拟机
KVM虚拟化配置的更多相关文章
- ESXi 嵌套KVM虚拟化 配置
VMware ESXi5.x默认不支持嵌套虚拟化,需要修改相关配置才能支持 1.ESXi5.1主机开通ssh,修改VMware ESXi配置文件使之嵌套虚拟化. 在配置文件后面加入如下配置:vhv ...
- centos vmware centos6.6 64位 kvm虚拟化安装配置 第四十二节课
centos vmware centos6.6 64位 kvm虚拟化安装配置 第四十二节课 上半节课 下半节课 f
- kvm虚拟化之kvm虚拟机vnc配置
本文是通过vnc方式访问虚拟主机上的KVM虚拟机. 这里的通过vnc方式访问虚拟机不是在kvm虚拟机安装配置vnc服务器,通过虚拟主机的IP地址与端口进行访问,kvm虚拟化对vnc的支持相对来说 ...
- kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置
KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...
- 安装配置KVM虚拟化
安装KVM虚拟化 KVM需要硬件⽀持, 所以需要开启虚拟化⽀持 硬件设备直接在BIOS设置开启CPU虚拟化 个⼈电脑同样进⼊BIOS开启虚拟化⽀持 VM需要找到对应虚拟机开启对应的VT-EPT虚拟化技 ...
- Linux中安装配置KVM虚拟化
KVM 概述: KVM 即 Kernel-based Virtual Machine 基于内核的虚拟机. KVM,是一个开源的系统虚拟化模块,自 Linux 2.6.20 之后集成在 Linux 的各 ...
- 配置基于Devstack的嵌套KVM虚拟化
本文为minxihou的翻译文章,转载请注明出处Bob Hou: http://blog.csdn.net/minxihou JmilkFan:minxihou的技术博文方向是 算法&Open ...
- kvm虚拟化存储池配置
1.创建基于文件夹的存储池(目录) 2.定义存储池与其目录 # virsh pool-define-as vmdisk --type dir --target /data/vmfs 3.创建已定义的存 ...
- [原] KVM 虚拟化原理探究(5)— 网络IO虚拟化
KVM 虚拟化原理探究(5)- 网络IO虚拟化 标签(空格分隔): KVM IO 虚拟化简介 前面的文章介绍了KVM的启动过程,CPU虚拟化,内存虚拟化原理.作为一个完整的风诺依曼计算机系统,必然有输 ...
随机推荐
- Ubuntu 18.04 + pip3 install virtualenvwrapper 找不到virtualenvwrapper.sh
Reference Ubuntu 18.04 只自带python3.6.5, 因此不想装python2了, 但通过apt install 装virtualenvwrapper时发现必须得装python ...
- super fast sort algorithm in js
super fast sort algorithm in js sort algorithm Promise.race (return the fast one) Async / Await // c ...
- js group objects in an array
js group objects in an array js group objects in an array var groupBy = function(xs, key) { return x ...
- Taro UI
Taro UI 一套基于 Taro 框架开发的多端 UI 组件库 https://github.com/NervJS/taro-ui-demo https://taro-ui.aotu.io/#/do ...
- css var & auto width css triangle
css var & auto width css triangle https://codepen.io/xgqfrms/pen/PooeEbd css var https://codepen ...
- js in depth & prototype & __proto__
js in depth & prototype & proto 实例的 proto 与 父类的 prototype,同时指向 父类的构造函数: https://hackernoon.c ...
- js showOpenFilePicker showSaveFilePicker showDirectoryPicker API
选择文件,获取文件句柄 btn.addEventListener("click", async (e) => { try { const hFiles = await win ...
- 华盛顿金融等多家媒体报道VAST超高价值!
近日,华盛顿金融时报联合洛杉矶商业报等多家媒体就即将推出的VAST进行了专题报道. 华盛顿金融时报专栏记者福吉瑞斯问到,之前有报道称NGK官方将全力支持算力市场,那么现在官方有什么计划可以透露一下吗? ...
- 精密进近OCH的计算
一.计算步骤 以I类精密进近为例,运行标准的制定大致分为以下几个步骤: 1)确定精密航段的超高障碍物. 2)计算当量高 3)计算高度损失 4)当量高与高度损失相加得到超障高OCH 5)对复飞段障碍物进 ...
- 内存包装类 Memory 和 Span 相关类型
1. 前言 2. 简介 3. Memory<T>和Span<T>使用准则 3.1. 所有者, 消费者和生命周期管理 3.2. Memory<T> 和所有者/消费者模 ...