当前位置:   article > 正文

基于centos安装并使用KVM_centos 安装kvm

centos 安装kvm

目录

KVM架构

 KVM架构解析

安装KVM 

准备环境

 安装虚拟机

方法一:图形模式安装。

方法二:使用命令行创建。

方法三:通过飞机驾驶舱安装和管理虚拟机。

删除虚拟机

 KVM存储

存储池管理

磁盘格式:

写时拷贝:

转换默认磁盘格式

方法一:图形化界面添加和删除

方法二:命令行方式创建和删除。

修改磁盘文件的大小

虚拟机克隆

方式一:图形化界面方式。

方式二:命令行方式。

虚拟机创建快照

方式一:图形化界面方式

方式二:命令行方式。

恢复快照

命令行方式

删除快照


KVM(Kernel-based Virtual Machine,基于内核的虚拟机)是为AMD64和Intel 64硬件上的Linux提供的完全虚拟化的解决方案。

KVM架构

 KVM架构解析

安装KVM 
准备环境

想要在虚拟机里安装虚拟机,首先虚拟机的引擎必须要能支持虚拟化的应用。

1,将三个都勾选上。将处理器数量设置为二,也可将每个处理器的内核数量设置为二。

 电脑关机之后想要再一次进入需要将虚拟化引擎的三个勾去掉。

2,查看CPU是否支持VT技术(虚拟化技术)

cat /proc/cpuinfo | grep -E 'vmx|svm'

vmx:当前cpu支持Intel虚拟化技术

svm:当前cpu支持amd虚拟化技术

3,更改主机名字

  1. hostnamectl set-hostname kvm
  2. hostname

4,对宿主机的IP地址及宿主机名字进行配置

  1. vim /etc/hosts
  2. #最后一行输入 (宿主机的IP地址) kvm(宿主机的名字)

5,对宿主机的环境进行清理

卸载KVM

  1. yum remove `rpm -qa|egrep 'qemu|virt|KVM'` -y
  2. rm -rf /var/lib/libvirt /etc/libvirt/

6,关闭防火墙

  1. systemctl stop firewalld
  2. systemctl disable firewalld
  3. systemctl status firewalld

7,关闭selinux(一种强制访问控制(MAC)的安全系统):

永久关闭

  1. sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
  2. sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  3. getenforce #重启之后显示为Disabled为正确关闭

临时关闭

  1. setenforce 0
  2. getenforce #不需要重启,显示为Permissive为正确关闭

或者进入配置文件,将enforcing修改成disable。

vim /etc/selinux/config

查看是否生效。 

cat /etc/selinux/config

8,安装KVM模块、管理工具和libvirt(创建虚拟机的工具)

  1. yum -y install kvm bridge-utils virt-v2v libgesttfs-tools libcanberra-gtk2qemu-kvm.x86_64 qemu-kvm-tools.x86_64 libvirt.x86_64 libvirt-cim.x86_64libvirt-client.x86_64 libvirt-java.noarch libvirt-python.x86_64 libiscsidbus-devel virt-clone tunctl virt-manager libvirt python-virtinst virt-viewer virt-top dejavu-lgc-sans-fonts nfs-utils
  2. yum -y install kvm virt-manager libvirt
KVM安装包含义
qemu-kvm主要KVM程序包
python-virtinst创建虚拟机所需要的命令行工具和程序
virt-managerGUI虚拟机管理工具
virt-top虚拟机统计命令
virt-viewerGUI连接程序,连接到已经配置好的虚拟机
libvirtC语言工具包,提供libvirt服务
libvirt-client为虚拟机客户提供的C语言工具包9,
virt-install基于libvirt服务的虚拟机创建命令
bridge-utils创建和管理桥接设备的工具

9,启动服务,确定系统是否正确加载KVM模块

  1. systemctl start libvirtd.service
  2. systemctl enable libvirtd.service
  3. systemctl status libvirtd.service

10,检查KVM模块是否安装成功

lsmod|grep kvm

11,检查KVM是否安装成功

virsh -c qemu:///system list

 

 安装虚拟机

有两种方法安装虚拟机。

方法一:图形模式安装。

1,确认libvirt 程序正在运行。利用ps命令查看系统进程信息。

ps ax|grep libvirtd

2,确认virt-manager是否安装。

which virt-manager

3,使用virt-manager创建虚拟机。

下载所需的ISO镜像,使用finalshell连接虚拟机,将镜像文件复制到root目录下。

启动virt-manager

virt-manager

创建新的虚拟机,选择“本地安装介质(ISO映像或者光驱)”

 定义虚拟机耳朵执行环境,为虚拟机分配1GB和CPU

根据虚拟机存储情况分配空间大小。(不低于2G)

点击“完成”就创建完成了。

方法二:使用命令行创建。

(模板镜像+配置⽂件⽅式配置规格)

1,查看虚拟机配置文件。

ls /etc/libvirt/qemu

2,查看磁盘镜像文件。

ls /var/lib/libvirt/images

3,创建虚拟机。

拷贝虚拟机配置文件。(根据列出的文件名字拷贝,后缀名是“.xml”)

  1. cd /etc/libvirt/qemu/
  2. ls
  3. cp vm1.xml vm2.xml
  4. ls

 拷贝虚拟机磁盘镜像文件。(根据列出的文件名字进行拷贝,后缀名字是“.qcow2”或者“.img”)

  1. cd /var/lib/libvirt/images/
  2. ls
  3. cp vm1.qcow2 vm2.qcow2
  4. ls

4,修改配置文件

vim /etc/libvirt/qemu/vm2.xml

 修改,name,uuid,Memory(可以不用修改),Currentmemory(如果修改了Memory,就一定要修改Currentmemory),vcpu(修改成2,或者不修改)

 镜像文件名要一致。

 修改mac地址,mac地址是唯一的(只能修改后三组,后三组随便修改一个)。

 5,创建虚拟机,(重定义一下),再重启KVM

  1. virsh define /etc/libvirt/qemu/vm2.xml
  2. systemctl restart libvirtd

6, 宿主机开启路由转发

vim /etc/sysctl.conf
net.ipv4.ip_forward=1

 使重新配置的联网功能生效

sysctl -p

7,调出图形界面,查看是否有两台虚拟机。(重新连接一下)

virt-manager

方法三:通过飞机驾驶舱安装和管理虚拟机。

(提供一个web界面,对系统图形化管理)

1,安装飞机驾驶舱,并开启服务。

  1. yum install -y cockpit
  2. systemctl start cockpit

2,查看端口

netstat -lntp

3,查看虚拟机IP地址

ip a

4,通过浏览器访问服务器地址

5,退出飞机驾驶舱,最后查看端口是否还在

  1. systemctl stop cockpit.socket
  2. netstat -lntp

删除虚拟机
方法一:图形界面。

前提是虚拟机在关机的状态下,在需要删除的虚拟机上右击。

方法二:命令行。

进入到镜像文件以及配置文件下删除。

  1. cd /etc/libvirt/qemu
  2. rm -rf vm2.xml
  3. ls
  4. cd /var/lib/libvirt/images/
  5. rm -rf vm2.qcow2
  6. ls
  7. systemctl restart libvirtd
  8. virt-manager

 

 KVM存储
存储池管理

 概念:KVM必须配置一个目录当作它存储磁盘镜像(存储卷)目录(存储池)。

默认存储池: 

  1. cd /var/lib/libvirt/images
  2. ls

 1,创建基于文件夹得存储池(目录)

mkdir -p /data/vmfs

 2,定义存储池和目录

定义一个名字为vmdisk得存储池,类型是目录,目标路劲是 /data/vmfs

virsh pool-define-as vmdisk --type dir --target /data/vmfs

定义成功 

3,创建已经定义的存储池,

virsh pool-build vmdisk

并查看已经定义的存储池, 存储池不激活无法使用

virsh pool-list --all

 4,激活,并自启动已经定义的存储池

  1. virsh pool-start vmdisk
  2. virsh pool-autostart vmdisk

 #这里的vmdisk 已经创建好了,可以直接使用在这个存储池中创建虚拟机磁盘文件了。

5,在存储池中创建虚拟机存储卷。

virsh vol-create-as vmdisk oeltest.qcow2 1G --format qcow2

 6,存储池中删除虚拟机存储卷

在存储池中删除虚拟机存储卷

virsh vol-delete --pool vmdisk oeltest.qcow2

取消激活存储池

virsh pool-destroy vmdisk

 7,存储池相关命令

删除存储池定义的目录 /data/vmfs,激活状态不能被删除

virsh pool-delete vmdisk

 取消定义存储池

virsh pool-undefine vmdisk
磁盘格式:
磁盘格式性能快照功能
raw(裸辞盘格式)好(性格接近物理机)不支持
qcow2(cow写时拷贝,copy on write)不如raw支持(支持拷贝)
写时拷贝:

1,raw:立即分配空间,不管你有没有用到那么多空间(如:空间是5G,立即全部分配)

2,qcow2:是只承诺给你分配空间。是只有你需要用到的时候才会给你空间,只会给你承诺的空间大小,避免浪费空间(如:空间是5G,只会分配193KB)

转换默认磁盘格式

默认安装是raw格式,想做快照,要将raw格式转换成qcow2格式。 

qemu-img convert -f raw -O qcow2 test.raw test.raw.qcow2

方法一:图形化界面添加和删除

添加

在虚拟机关闭的状态,打开控制台,双击虚拟机或者点击“打开”

 

 注意磁盘可用空间。创建好之后有两个磁盘。

 

删除

  1. cd /var/lib/libvirt/images
  2. ls
  3. rm -rf #磁盘名字vm1-1.qcow2
方法二:命令行方式创建和删除。

1,创建磁盘文件

创建qcow2格式磁盘文件

qemu-img create -f qcow2 test01.qcow2 2G

创建raw格式磁盘文件

qemu-img create -f raw test02.raw 2G
qemu-img create -f raw /var/lib/libvirt/images/vm1-1raw.raw 2G

2,查看已经的创建磁盘文件。

qemu-img info test01.qcow2

qemu-img info test02.raw
ll -h /var/lib/libvirt/images/vm1-1.raw
修改磁盘文件的大小
qemu-img resize filename[+|-]size

qemu-img resize test01.qcow2 +2G

虚拟机克隆
方式一:图形化界面方式。

修改名称

等待克隆完成

 

方式二:命令行方式。
virt-clone -o vm1 --auto-clone
virt-clone -o vm1 -n vm2 --auto-clone
虚拟机创建快照
方式一:图形化界面方式

查看虚拟机状态和信息

方式二:命令行方式。

1,为虚拟机创建快照。

virsh snapshot-create-as vm1 vm1.snap

2,查看磁盘镜像文件。

qemu-img info /var/lib/libvirt/images/vm1.qcow2

3,查看快照。

virsh snapshot-list vm1

4,创建raw磁盘(指定目录)

qemu-img create -f raw /var/lib/libvirt/images/vm1-1raw.raw 2G

 (在镜像目录下)

  1. cd /var/lib/libvirt/images/
  2. qemu-img create -f raw test.raw 2G

查看磁盘信息

ll -h /var/lib/libvirt/images/vm1-1.raw

( 在镜像目录下)

qemu-img info test.raw

 

添加磁盘到虚拟机上,并修改配置文件

  1. cd /etc/libvirt/qemu
  2. ls
  3. vim vm1.xml

重新定义

virsh define vm1.xml

开启虚拟机

virsh start vm1.xml

创建快照(失败)因为磁盘不是qcow2

virsh snapshot-create-as vm1 vm1.snap2

转换格式

  1. qemu-img convert -O qcow2 /var/lib/libvirt/images/vm1-1.raw /var/lib/libvirt/images/vm1-1.qcow2
  2. cd /var/lib/libvirt/images/
  3. ll -h

查看磁盘格式(是不是qcow2)

qemu-img info vm1-1.qcow2

修改配置文件

  1. vim /etc/libvirt/qemu/vm1.xml
  2. virsh define /etc/libvirt/qemu/vm1.xml

创建快照

virsh snapshot-create-as vm1 vm1.snap2

 

虚拟机恢复快照
方法一:图形界面方式

第一个是恢复快照

 

方法二:命令行方式

1,在vm1创建一个空目录(在虚拟机操作:)

  1. mkdir /test
  2. ls /test

2,给虚拟机创建快照(在宿主机操作)。

virsh snapshot-create-as vm1 vm1.snap2

3,在虚拟机中给 /test中创建文件(在虚拟机操作)。

  1. cd /test
  2. touch a.txt b.txt
  3. ls

4,给虚拟机创建快照(在宿主机操作)。

virsh snapshot-create-as vm1 vm1.snap3

5,关闭虚拟机,恢复到第二个快照

宿主机操作:

  1. virsh shutdown vm1
  2. virsh snapshot-revert vm1 vm1.snap2

虚拟机操作:

  1. cd /test
  2. ls

6,关闭虚拟机,恢复到第3个快照

  1. virsh shutdown vm1
  2. virsh snapshot-revert vm1 vm1.snap3

查看快照

 virsh snapshot-list #虚拟机名字
virsh snapshot-list vm1

 running是正在启动的状态。shutoff是关闭的状态。

删除快照

  1. virsh snapshot-list vm1
  2. virsh snapshot-delete --snapshotname vm1.snap2 vm1

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/927979
推荐阅读
相关标签
  

闽ICP备14008679号