坚持#第280天~kvm2命令的使用

虚拟化的几个分类和工作原理:

平台虚拟化:X86 cpu 内存 磁盘为资源抽象

操作系统虚拟化:docker

hypervisor基于宿主机和客户机之间、VMM

1.半虚拟化Xen,对CPU硬件,内核不是CPU,CPU是硬件,内核是软件,通过修改内核而不是软件,通过修改宿主机的内核而影响,监视交给VMM,翻译官交给api

2.软件全虚拟化,KVM内核虚拟机(CPU支持VT,加载kvm模块modprobe kvm),需要修改CPU硬件,需要设置为支持VT技术,lscpu,grep来观察是否开启,全虚拟化不能休息,因为VMM要monitor监视和做翻译官

3.硬件辅助全虚拟化、QEMU

 

libvirtb是QEMU的守护进程

在QEMU里装虚拟机的方法有:virt-view是看的不属于方法

1.virt-manager图形化界面操作

2.virt-install代码操作--vcpus

 

virsh list--all查看所有虚拟机包括关机的

virsh支持交互式操作,直接回车,查看帮助的话用--help

virsh net-熟练使用tab看网卡,default相当于一个名字,虚拟网络里面有,点红点相当于把网线拔了,状态不活跃是说明没有启动,网线的按钮没有开就开启不了QEMU的虚拟机

 

--diskpath=/var/lib/libvirt/images/uplook.img,size=8,format=qcow2:raw不支持快照,qcow2支持快照,所以主流是qcow2格式,转换格式可以无损数据

 

--location=ftp://172.16.8.100/rhel6.4镜像在谁上面就是谁,使用ftp共享

--extra-args="ks=ftp://172.16.8.100/rhel6.4.ks"通常和上面的一起用

 

--bridge=virbr0(网卡名字) 等价于 --networknetwork=default(默认是NAT)

virt-install--help | grep network

不能混用 --bridge 和 --network 参数

 

--graphicsvnc,listen=0.0.0.0,port=5920,password=123宿主机的端口和密码

--noautoconsole不自动输出

 

速度快、占内存小

virsh支持交互式和非交互式

非交互式不能补全tab

基本管理命令:

假如没有图形也没有virt-manager

virsh list--all

virsh start 域

virsh list查看在线的机器

virt-viewer 域    这个是打开指定的终端控制台

没有网络也没有图形化界面怎么进?用virt-viewer 域

如何停掉一个机器?virsh shutdown 域   或者进入交互式:virsh回车

list

shutdown 域  是关机

有延迟怎么直接关机?不是poweroff而是destroy 域

显示被删除是指在活动列表里删除

start 域  是开机

reboot 域  是重启

正常关机会卸载文件系统,关闭服务,不存盘会导致数据丢失,它会自动存储,而强制关机则不会

 

一个想法:宿主机重启的话,所有QEMU的所有虚拟机都会挂掉

virsh回车

autostart就是和宿主机共存亡,同步

autostart 域  标记为自动启动,就是宿主机重启后QEMU里面的虚拟机会自动开机

 

一个完整的虚拟机涉及到哪些文件?

cd/etc/libvirt/qemu/autostart/

ls这个里面都是做过autostart的,可删,就不用autostart了

域的类型是kvm

KB是1000,KiB是1024为单位

架构的平台arch=’x86_64’

<boot dev=’hd’/>  IDE都是hd老磁盘接口;virtio都是vda新磁盘接口

utc时钟

<devices>设备

硬件的块设备挂过来

类型是文件,设备是磁盘,说明是个假的

驱动名称是qemu,类型是qcow2

装机的路径开机启动的路径,/var/lib/libvirt/images/centos7.qcow2

磁盘vda是根分区,bus是总线,virtio是半虚拟化驱动,KVM是硬件辅助全虚拟化,怎么到半虚拟化来了?因为可以混合使用,有半虚拟化的效果,是一种优化

下面还有一个用文件山寨的磁盘cdrom,bus总线是ide,磁盘hda老磁盘

 

不自动启动的在

cd/etc/libvirt/qemu/

ls这个里面的都是全部的虚拟机

通过配置文件一键生成虚拟机,前提是要使用一次virt-install后有一个模板

 

一个虚拟机需要的配置:

名称:

内存:

CPU:

VNC:

磁盘:驱动   qemu file山寨(xxx.image)   vda新磁盘接口

CDROM:qemu  file山寨     hda老磁盘接口

NETWORK(用controller是网卡的)  default

vim 域

时钟、磁盘、源文件

 

 

宿主机         虚拟机centos7.0

              交换机default   默认ip是192.168.122.0/24

              (vnet0管理mac)

              (virbr0是网关,相当于网桥)

 

创建虚拟机的时候有网卡选项,这个<macaddress='52:54:00:2f:ff:4c'/>mac地址是宿主机的vnet0的mac地址

graphics那一块:port=-1是指端口随机分配,listen=’0.0.0.0’宿主机的所有网卡

 

有一个mac,但不知道具体是多少

cd/etc/libvirt/qemu/networks

这个是网络目录,

ls

default网络池,dhcp池,范围range start=’’  end=’’:

<dhcp>

    <range start='192.168.122.2' end='192.168.122.254'/>

</dhcp>

网络自启动autostart

virsh回车

net-autostart  网络名字(比如default)

如果有问题的话可以用virsh net-edit default(可以省略)

forward标签里面   模式mode为nat模式

网桥的名字叫virbr0   stp=’on’是什么? delay=’0’是什么?

stp开启生成树,阻塞接口,防止二层交换机出现了环路[stp]

一根网线两头都插在交换机的屁股上,出现环路,出现广播风暴导致网络瘫痪

 

存储、虚拟化、业务、网络工程师、

 

cd/etc/libvirt/qemu/

vim 域

source file 镜像绝对路径要真实存在

是在

cd/etc/libvirt/storage

ls这个是存储池

vimdefault.xml

pool nss本地网络路口/dir本地目录系统、

下面是path是/var/lib/libvirt/images/这个是镜像文件存放的位置

vim iso.xml光驱镜像的存储池

下面的path是/iso自己定义的光驱镜像位置

ll /var/lib/libvirt/qemu下面是如何仿真的

ll/var/lib/libvirt/

 

总共要修改的配置文件有以下5个:

/etc/libvirt/qemu/autostart/域.xml

/etc/libvirt/qemu/域.xml 全局配置

/etc/libvirt/qemu/networks/default.xml  网络

/var/lib/libvirt/images/域.qcow2 映像

/etc/libvirt/storage/default.xml存储池

 

virsh 回车

editcentos7.0

exit

改配置文件找位置好麻烦:

virsh edit 域 不要加后缀 一回车就到了

virshnet-edit

 

virsh -cqemu:///system list --all用命令连接远程主机KVM 并进行操作

virsh -cqemu+ssh://root@172.16.8.100/system

出现用户@@@@@@符号要删除
rm -rf /root/.ssh/*

 

virsh domid 域    这个是通过域名找id

virshdomname 域  这个是通过id找域名

virshdomuuid 域  通过id或域找uuid

virshdominfo 域  通过名字找详细信息

里面的是Autostart: disable是否和宿主机共存亡(是否开机自动启动)

virshdomstate 域  通过域查看状态是否开机

virshsuspend(抑制) 域  通过域来暂停那个域,暂停之后就定住了

list能看到开机和暂停的虚拟机

virsh resume域  通过域来继续那个域

virsh save  域  lnmp  相当于挂起,使用了之后会关机,手动开机的时候不会自动加载之前存档的状态,需要使用restore来加载之前的存档,挂起的意思就是存档

virshrestore   lnmp

du -h lnmp

 

用命令行删虚拟机:

virshdestroy 域  强制关机

virshundefine 域  解绑,不去识别那个配置文件了

rm -rf/var/lib/libvirt/images/node1.img

 

用命令行克隆虚拟机:

virtshutdown 域   先关机

virt-clone-o 域(母体) -n 新域(孩子) -f/var/lib/libvirt/images/新域.qcow2

80G是假的

du -h/var/lib/libvirt/images/新域.qcow2

发现比母体的大小还要大得多

virsh start 新域

virsh-viewer新域

 

yum provides*/virt-edit

yum install-y libguestfs-tools-c-1.32.7-3.el7.centos.x86_64

virt-edit-d(domain)  域  /etc/passwd直接写文件名  关机的虚拟机才能看

 

磁盘和网卡选择半虚拟化virtio,性能最好

 

显示协议VNC-VNC服务器-地址所有接口-端口自动-键映射:en-us

 

yum install-y virt-top查看进程

virt-top显示状态、进程、CPU、内存

第一行是进程概况统计的描述

 

宿主机上装

ss -tanp |grep :59查看QEMU里面虚拟机的端口,只有开机的才看得到

vnc客户端老虎vnc

yum list |grep vnc

yum install-y tigervnc

左上角图形菜单-互联网-打开

宿主机的ip:5901(想要连入QEMU里哪一个虚拟机端口)

或者用命令打开:

vncviewer192.168.1.250:5901不同的端口对应不同的虚拟机

它是怎么实现的?

virsh edit 域

找vnc类型,端口-1,自动端口yes

黄老师实验:

先关机,virsh edit 域,改端口-1为6000,自动端口不启用no

virsh start 域

netstat-tanp | grepp 6000等一下就出现了

vncviewer 192.168.1.250:6000

 

连接QEMU里面虚拟机的方法:

virt-viewer 域   前提要有图形界面

vncviewer 本机ip:6000

ssh QEMU里虚拟机的ip

我在家里可以连到公司里的方法上面的后两种

 

[ssh很卡]

ssh 到QEMU里的虚拟机非常卡

vim/etc/ssh/sshd_config在要连接对象的那个机子里

useDNS yse取消注释并改为no

systemctlrestsart

 

virt-what能够知道自己是在哪一个虚拟机上(VMWare还是KVM还是Xen)

 

既没ip又没有图形桌面,可以直接连接的方法

vim /etc/grub2.cfg旧的不好改

QEMU里虚拟机里面写vim /etc/default/grub倒数第二行的结尾 空一格console=ttyS0”

 

grub2-mkconfig--help

grub2-mkconfig-o /etc/grub2.cfg敲完这个新的才会生效,将新的导入到旧的里面去并生效

重启QEMU里面的虚拟机reboot

宿主机:

virshconsole 域 回车   可以进入QEMU里面,不需要ip和图形化

回车

退出的话用ctrl+]

 

只读系统是因为你设置了磁盘的只读,需要去QEMU里面的设置里面去掉磁盘的只读

 

宿主机:

virsh edit 域

console那一部分

 

全虚拟化

半虚拟化

CPU是硬件无法改

 

把磁盘变为半虚拟化驱动virtio,把网卡变为半虚拟化驱动virtio

没图形化界面就在配置文件里面修改

 

kmv默认磁盘网络默认支持半虚拟化

kvm里面也能创建windows系统,但是默认不支持半虚拟化,需要让我们对它配置,怎么配置:

下载支持半虚拟化驱动https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/

 

中午宋子奇试讲:

cd /dev/

ls

ls/dev/sdb/sdb1是U盘

hd:/dev/sdb1

ctrl+x执行

 

晚上试讲:

两台虚拟机热迁移,第三台机子做nfs挂载。

首先第三台机子做nfs挂载,在第一台和第二台创建存储池,然后第一台ssh他们得到认证的权限,然后第一台创建存储卷,新建虚拟机,注意管理的指向那个卷
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值