kvm基本管理

介绍云计算
云计算和虚拟化有什么不同?
没有可比性 ;
云计算是一种按量付费的模式,云计算的底层是由虚拟化技术来实现的
一个是模式 一个是技术

最先提出云计算概念,亚马逊 从2006年开始提供云计算
阿里云 2008年创建团队 2011年正式对外提供服务

按量付费的模式

没有云计算之前 ,运维的工作非常杂

硬件 服务器型号 raid知识 网络知识 对运维人员的身体素质都有要求的 等
物理服务器

数据库服务器要做raid10 存储服务器做raid5 web服务器raid5

硬件性能特别高 ,需要对服务器做虚拟化

服务器配置 4课CPU 40核心 内存2T 硬盘2.5 可以插很多块12x4T

这么高配置的服务器 只运行一个ftp的话 过多的性能浪费
多运行一些 来提高资源的利用率
很多服务 运行环境不同 彼此冲突
jumpserver 和ansible相互冲突 依赖的python模块版本不同 环境乱 管理难度很大

虚拟化切分成一个一个独立运行环境的虚拟机

没有云计算之前 运维就是打杂的 什么都得会

服务类型

iaas 底层硬件+操作系统 运维的工作:部署运维环境lnmp 放入服务代码
paas 底层硬件+操作系统+运维行业 运维:放入服务代码 备份数据
saas: 底层硬件+操作系统+运行环境+服务代码+数据 运维:掏钱买服务

有了云计算之后 运维更加专注网站架构设置

为什么要用云计算?
小公司:游戏公司 研发一款游戏 上线 有玩家充值了 才算是有收入;托管到IDC机房
大公司:每年都会有一些大型活动,活动过后 造成资源闲置 出现大量闲置的计算资源

阿里云最挣钱 前期低价吸引用户 后期涨价

IDC机房 :互联网数据中心 微软 腾讯 阿里

容器 :进程级别虚拟化
KVM:虚拟化技术

什么是虚拟化?
虚拟化,通过模拟计算机的硬件,来实现同一台计算机上

物理服务器:称为宿主机
通过VMware 模拟一台物理服务器,来实现同一台同时运行多个不同的操作系统的技术

linux虚拟化软件:

1、qemu 软件纯模拟全虚拟化软件 特变慢 兼容性好(因为全部都是虚拟模拟的,不基于硬件) qemu是虚拟化技术的鼻祖 qemu可以运行一切的操作系统

2、xen(半) 性能特别好 需要使用专门修改后的内核,兼容性差 Redhat5.5 xen kvm xen没有模拟全部的硬件 直接使用物理机的CPU ;为了避免虚拟机里面执行reboot命令 导致宿主机也胡重启
xen 的虚拟机需要使用专门的内核,这个操作系统内核会翻译转换一些指令。

3、KVM 全虚拟机 他有硬件支持CPU 基于内核,而且不需要使用专门的内核,centos6 kvm 性能好 兼容性较好 内置在linux的内核模块的

VMware workstations 需要linux的安装centos为 图形界面

virtual box 图形界面 Oracle

安装一个KVM的管理工具 因为已经是基于内核了
kvm全称:Kernel-based Virtual Machine 属于内核的模块
linux都是通过应用程序来调用内核的 通过内核来 调用硬件
qemu-kvm 管理虚拟机的虚拟磁盘

关闭tab 滴滴的声音

[root@virtualization ~]# cat /etc/inputrc
# do not bell on tab-completion
set bell-style none

为什么要使用vnc ?
linux是一个纯命令行的系统 不支持图形界面
kvm启动虚拟机之后 将虚拟机的控制台通过vnc协议输出 相当与启动了一个vnc服务端
vnc分为客户端和服务端

注意:安装centos7系统时 没有勾选中文支持会导致Jenkins无法汉化

安装kvm虚拟化管理工具

环境要求:

centos 7.4 7.6

vmware 宿主机 kvm虚拟机

内存4G,cpu开启虚拟化

echo ‘192.168.12.201 mirrors.aliyun.com’ >>/etc/hosts

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

安装软件包

yum install libvirt virt-install qemu-kvm -y

解释:

libvirt  作用:虚拟机的管理软件
libvirt: kvm,xen,qemu,lxc....

virt   virt-install virt-clone   作用:虚拟机的安装工具和克隆工具
qemu-kvm  qemu-img (qcow2,raw)作用:管理虚拟机的虚拟磁盘

开启服务 并设置为开机自启

systemctl start libvirtd.service
systemctl status libvirtd.service

查看加载的内核模块

[root@kvmnode01 opt]# lsmod |grep kvm
kvm_intel             183621  3
kvm                   586948  1 kvm_intel
irqbypass              13503  1 kvm

qemu 是管理虚拟机进程的

 netstat  -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      18096/qemu-kvm
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      10752/dnsmasq
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      8635/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      8635/sshd
[root@kvmnode01 qemu]#

启动虚拟机时 自动检查端口 5900

shutdown: 关机速度慢  安全
destroy:  关机速度快  不安全 异常关机  容易造成mysql启动失败
reboot: virsh stop  virsh  start

kvm虚拟机主要有配置文件和磁盘文件组成
修改配置之前进行备份

virsh   dumpxml centos7 输出配置文件
virsh  dumpxml  centos7 >centos8 备份配置文件

配置文件 决定了虚拟机的硬件配置

文件名字是给自己看的 起名字一定要见名知意

kvm虚拟机管理操作:

创建虚拟机

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

解释:

vnc:10.0.0.11:5900  默认vnc的连接登录端口 
--virt-type kvm 虚拟化的类型(qemu)  
--os-type=linux 系统类型
 --os-variant rhel7 系统版本 查看支持的系统版本 osinfo-query os
 --name centos7 虚拟机的名字 必须唯一
 --memory 1024 虚拟机的内存
 --vcpus 1 虚拟cpu的核数 
--disk /opt/centos2.raw,format=raw,size=10  虚拟硬盘 每个虚拟机的磁盘文件必须唯一
--cdrom /opt/CentOS-7-x86_64-DVD-1708.iso   镜像源
--network network=default 使用默认NAT的网络
 --graphics vnc,listen=0.0.0.0  配置虚拟机显示设置 vnc协议  监听0.0.0.0
 --noautoconsole  不要自动尝试连接到客户端控制台

kvm虚拟机默认配置文件位置

[root@kvmnode01 qemu]# pwd
/etc/libvirt/qemu
[root@kvmnode01 qemu]# ls
centos7.xml  networks
[root@kvmnode01 qemu]#
   

virsh version 查看kvm的版本信息

Compiled against library: libvirt 4.5.0
Using library: libvirt 4.5.0
Using API: QEMU 4.5.0
Running hypervisor: QEMU 1.5.3
[root@kvmnode01 ~]# virsh vcpuinfo  centos7  查看虚拟机的CPU信息
VCPU:           0
CPU:            0
State:          running
CPU time:       119.8s
CPU Affinity:   y

查看kvm 虚拟机列表

[root@kvmnode01 qemu]# virsh list 显示正在运行的虚拟机
 Id    Name                           State
----------------------------------------------------
 2     centos7                        running

[root@kvmnode01 qemu]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 2     centos7                        running

启动centos7虚拟机

virsh  start  centos7

设置虚拟机跟随系统启动

virsh  autostart  centos7

关闭虚拟机自启

virsh  autostart --disable centos7

关闭centos7的虚拟机

virsh shutdown centos7

拔出电源关闭centos7的虚拟机 什么情况下使用这种方式关机 当虚拟机还有装系统的时候使用这样方式

virsh  destory centos7

移除centos7的虚拟机

virsh  undefine  centos7

设置centos7虚拟机开机启动

virsh   autostart  centos7

默认情况下 virsh工具不能对linux虚拟机进行关机操作(在虚拟机内部进行关机操作)

yum install -y  acpid
/etc/init.d/acpid  start

通过配置文件启动虚拟机

virsh   create  /etc/libvirt/qemu/centos7.xml

挂起回复virsh命令

virsh   suspend  centos7  挂起
virsh  resume  centos7    恢复

修改虚拟机名字

修改虚拟机名字
1、导出虚拟机配置文件

virsh  dumpxml centos7 > test-centos7.xml

2、更改配置文件

 sed -i 's/centos7/test-centos7/g' test-centos7.xml

3、移除原有的虚拟机

virsh  undefine  test-centos7

4、通过配置文件 导入虚拟机

virsh  define test-centos7.xml

5、启动虚拟机

virsh  start  centos7

问题1:可以命令方式修改主机名吗
可以

virsh  domrename centos7  centos2  将centos7修改名为centos2

如果修改了虚拟机的文件 再启动不可以吗 为什么要移除原来的虚拟机

是因为已经加载了配置文件,需要重新导入

虚拟机的IP地址可以修改吗

默认的配置信息是dhcp 并不代表是不能设置为static 手动设置

显示虚拟机信息

[root@kvmnode01 qemu]# virsh  dominfo  centos7
Id:             2
Name:           centos7
UUID:           ee1fb9d9-0df9-4b38-aeb7-afef00a39247
OS Type:        hvm
State:          running
CPU(s):         1
CPU time:       584.4s
Max memory:     1048576 KiB
Used memory:    1048576 KiB
Persistent:     yes
Autostart:      disable
Managed save:   no
Security model: none
Security DOI:   0

[root@kvmnode01 qemu]#

查看虚拟机内存和CPU使用情况

yum  install -y  virt-top
virt-top

查看虚拟机的分区情况

[root@kvmnode01 qemu]# virt-df centos7
Filesystem                           1K-blocks       Used  Available  Use%
libguestfs: error: list_filesystems: sgdisk: Invalid partition data!
[root@kvmnode01 qemu]#

修改配置文件 默认会检查语法

virsh edit centos7

这样修改不需要重新define。 但是需要手动shutdown 和 start 不能reboot 是因为进程需要重新生成才可以

在kvm虚拟机关机状态下 可以在线状态下修改名字

 virsh domrename centos2  centos7

挂起操作:以及状态

[root@kvmnode01 opt]# virsh  suspend   centos7
Domain centos7 suspended

[root@kvmnode01 opt]# virsh   list  --all
 Id    Name                           State
----------------------------------------------------
 12    centos7                        paused

解放挂起

[root@kvmnode01 opt]# virsh resume  centos7
Domain centos7 resumed

[root@kvmnode01 opt]# virsh list  --all
 Id    Name                           State
----------------------------------------------------
 12    centos7                        running

[root@kvmnode01 opt]#

虚拟机挂起 会导致时间不一致的问题
虚拟机模拟的时钟频率 虚拟机运行时间一长 就容易导致时间不对
需要做时间同步

yum install -y  chronyd 
systemctl  restart  chronyd

查看时间同步

[root@kvmnode01 opt]# timedatectl
      Local time: Thu 2020-05-21 17:33:49 CST
  Universal time: Thu 2020-05-21 09:33:49 UTC
        RTC time: Thu 2020-05-21 09:33:48
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
[root@kvmnode01 opt]#

查看kvm虚拟机端口 是vnc的最后一位端口数 5900 最后一位就是0 第二台5901 就是1

[root@kvmnode01 opt]# virsh  list  --all
 Id    Name                           State
----------------------------------------------------
 12    centos7                        running

[root@kvmnode01 opt]# virsh   vncdisplay  centos7
:0

[root@kvmnode01 opt]#


[root@kvmnode01 opt]# virsh vncdisplay  1
:0

[root@kvmnode01 opt]# virsh vncdisplay  centos2.raw
:0

[root@kvmnode01 opt]#

服务器,通电后 自动启动

配置虚拟机随宿主机启动而启动

配置开机自启动
virsh autostart centos7

设置了开机自启动的都在autostart中有软连接

[root@kvmnode01 qemu]# ll
total 16
drwxr-xr-x 2 root root    6 May 21 17:49 autostart
-rw------- 1 root root 4521 May 21 17:41 centos2.raw.xml
-rw------- 1 root root 4513 May 21 17:20 centos7.xml
drwx------ 3 root root   42 May 21 12:24 networks
[root@kvmnode01 qemu]#

或者使用这个命令

[root@kvmnode01 autostart]# virsh   list  --autostart
 Id    Name                           State
----------------------------------------------------
 1     centos2.raw                    running
 2     centos7                        running

测试

[root@kvmnode01 autostart]# systemctl restart  libvirtd.service
[root@kvmnode01 autostart]# virsh   list
 Id    Name                           State
----------------------------------------------------
 1     centos2.raw                    running
 2     centos7                        running

关闭开机自启动

[root@kvmnode01 opt]# virsh   autostart   --disable  centos7
Domain centos7 unmarked as autostarted

[root@kvmnode01 opt]# virsh  list   --autostart
 Id    Name                           State
----------------------------------------------------
 1     centos2.raw                    running

开启开机自启动

[root@kvmnode01 opt]# virsh   autostart   centos7
Domain centos7 marked as autostarted

[root@kvmnode01 opt]# virsh   list  --autostart
 Id    Name                           State
----------------------------------------------------
 1     centos2.raw                    running
 2     centos7                        running

ssh登录到kvm虚拟机
只能是本地宿主机登录 ,需要提前到vnc查看IP地址

在kvm虚拟机进行操作
修改内核命令 使用console命令

grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
reboot

console登录到虚拟机

[root@kvmnode01 autostart]# virsh console  centos7
Connected to domain centos7
Escape character is ^]

CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64

localhost login: root
Password:
Last login: Thu May 21 17:57:44 from gateway
[root@localhost ~]#

ctrl1 +】 回到宿主机上

CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64

localhost login:
[root@kvmnode01 autostart]#

再次console是不需要重新登录

只要保存一个centos7.raw 和vm_centos7.xml 配置文件 就可以了 不用以后再使用vnc去安装系统了。

关于磁盘文件格式的问题:

因为xfs文件系统的原因,他们实例占用空间不多 ,qemu-img info 看到的理论上的10G 未必是真实的 用du就能看到他们实际占用大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值