KVM

虚拟化与云计算区别

  • 云计算不等于虚拟化,两者并不能相互比较
  • 云计算是一种资源和使用交互的方式
  • 虚拟化是一种具体的技术
  • 云计算要依赖虚拟化技术来实现的一种通过网络访问获取资源,流量,交付的使用模式(例如:弹性计算)
  • 虚拟化相当于实干家,而云计算是思想家

安装kvm

kvm 需要硬件支持,所以需要开启虚拟化支持

  1. 硬件设备直接在BIOS设置开启CPU虚拟化
  2. 个人电脑同样进入BIOS开启虚拟化支持
  3. VM需要找到对应虚拟化开启对应的VT-EPT虚拟化技术
    在这里插入图片描述

//没有任何内容则表示服务器没有启用虚拟化

[root@kvm-node1 ~]# egrep '(vmx|svm)' /proc/cpuinfo
  1. 服务器环境规划
系统主机名IP内存磁盘
CentOS7kvm-node1192.168.169.302G20G
CentOS7kvm-node2192.168.169.202G20G

安装kvm 虚拟化工具

  1. qeum 虚拟化软件,可以虚拟不同的cpu,以及模拟网卡、声卡、PCI 设备等
  2. libvirt 用于管理kvm的工具
  3. virt-install 命令行安装虚拟工具
  4. virt-manager 图形化管理虚拟工具
  5. openssh-askpass 远程连接kvm主机
[root@kvm-node2 ~]# yum install -y qemu-kvm qemu-kvm-tools libvirt virt-manager virt-install openssh-askpass

kvm是linux内核的一个模块,模块不需要安装只需要加载

[root@kvm-node2 ~]# lsmod|grep kvm
kvm_intel             170086  0 
kvm                   566340  1 kvm_intel
irqbypass              13503  1 kvm

启动libvirt 管理 kvm 工具

[root@kvm-node2 ~]# systemctl start libvirtd
[root@kvm-node2 ~]# systemctl enable libvirtd

注意:启动后会增加一块virbr0 网络
kvm 会给虚拟机分配NAT模式网络,但是在生产环境下强烈推荐用网桥模式
//配置kvm虚拟机使用的桥接模式网络,添加br0网卡

[root@kvm-node2 ~]# brctl addbr br0

将ens33加入网桥,使用桥接模式,给br设置ip,添加路由、网关,关闭防火墙

[root@kvm-node2 ~]# brctl addif br0 ens33 && ip addr del dev ens33 192.168.169.20/24 && ifconfig br0 192.168.169.20/24 up && route add default gw 192.168.169.2

// 上面这个br0 的IP地址配置和ens32 的IP地址一样,否则xshell 会立即掉线

查看br0网卡,绑定在ens33上

[root@kvm-node2 ~]# brctl show 
bridge name	bridge id		STP enabled	interfaces
br0		8000.000c29d4bcce	no		ens33           //br0 相当于我的连接,ens33 是我的真实设备
virbr0		8000.525400d97d49	yes		virbr0-nic

创建kvm 虚拟机

  1. 在创建虚拟机之前,我们需要添加一块磁盘来存放我们的虚拟机
    VM->关机->设置->添加磁盘
[root@kvm-node2 ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    6G  0 part /boot
└─sda2            8:2    0   14G  0 part 
  ├─centos-root 253:0    0    8G  0 lvm  /
  └─centos-swap 253:1    0    6G  0 lvm  [SWAP]
sdb               8:16   0  200G  0 disk                     //添加这块磁盘
sr0              11:0    1  4.2G  0 rom  

直接使用整块磁盘

[root@kvm-node2 ~]# mkdir  -p /data
[root@kvm-node2 ~]# mkfs.xfs /dev/sdb 
meta-data=/dev/sdb               isize=512    agcount=4, agsize=13107200 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=52428800, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=25600, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@kvm-node2 ~]# mount /dev/sdb  /data/

加入开机自启动

[root@kvm-node2 ~]# vim /etc/fstab
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=5a174cc4-bb1d-4178-874e-38ad81b37fbc /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
UUID="846ca2b8-7d2f-4cf9-86d7-c7a18964b421" /data           xfs           defaults        0 0 
~                                                                                                 

挂载系统光盘,简历ISO镜像文件

[root@kvm-node2 ~]# dd if=/dev/cdrom of=/data/centos7u4_x86_64.iso
8830976+0 records in
8830976+0 records out
4521459712 bytes (4.5 GB) copied, 137.427 s, 32.9 MB/s

//这里也可以用xftp 、rz 把镜像传上来
创建虚拟机磁盘

[root@kvm-node2 ~]# qemu-img create -f qcow2 /data/centos7u4-node2.qcow2 10G
Formatting '/data/centos7u4-node2.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off 
[root@kvm-node2 ~]# ls /data/
centos7u4-node2.qcow2  centos7u4_x86_64.iso

使用qcow2 创建的10G,实则没有占用10G,且支持快照

[root@kvm-node2 ~]# qemu-img info /data/centos7u4-node2.qcow2 
image: /data/centos7u4-node2.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K               //实际只占196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

如果使用 raw 分配多少空间则占用多少空间,且不支持快照
优点:速度快、性能好

[root@kvm-node2 ~]# qemu-img create -f raw /data/centos7u4-node2.raw 1G
Formatting '/data/centos7u4-node2.raw', fmt=raw size=1073741824 
[root@kvm-node2 ~]# qemu-img info /data/centos7u4-node2.raw 
image: /data/centos7u4-node2.raw
file format: raw
virtual size: 1.0G (1073741824 bytes)               //实际占用1G
disk size: 0

创建虚拟机实例

[root@kvm-node2 ~]# virt-install --name centos7u4-node2 \
--virt-type kvm \
--ram 1024 \
--cdrom=/data/centos7u4_x86_64.iso \
--disk path=/data/centos7u4-node2.qcow2 \
--network bridge=br0 \
--graphics vnc,listen=0.0.0.0 \
--noautoconsole

Starting install...
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.

快速的打开VNC 连接宿主机和对应的端口
在这里插入图片描述

到下面这个界面,添加标红色的部分,就可以规划网卡为eth 0
在这里插入图片描述

如果在60s ,时间内没有连接上VNC 则会直接跳转到以下界面,在VNC 配置虚拟机
在这里插入图片描述

在服务器上查看连接的状态

[root@kvm-node2 ~]# virsh list  --all
 Id    Name                           State
----------------------------------------------------
 1     centos7u4-node2                running
 

在vnc 图形界面安装完成重启后,虚拟机会关闭掉线

[root@kvm-node2 ~]# virsh list --all 
 Id    Name                           State
----------------------------------------------------
 -     centos7u4-node2                shut off

重新启动

[root@kvm-node2 ~]# virsh start centos7u4-node2
Domain centos7u4-node2 started

[root@kvm-node2 ~]# virsh list --all 
 Id    Name                           State
----------------------------------------------------
 2     centos7u4-node2                running
//注意 br0 这块网卡重启就会消失,重启时网卡必须存在

可以直接用vnc连接,也可以直接ssh 连接

[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:85:69:9c brd ff:ff:ff:ff:ff:ff
    inet 192.168.169.222/24 brd 192.168.169.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::8bda:797e:f22a:ff50/64 scope link 
       valid_lft forever preferred_lft forever

管理KVM虚拟机

//虚拟机随着系统启动

[root@kvm-node2 ~]# virsh autostart centos7u4-node2
Domain centos7u4-node2 marked as autostarted

//关闭虚拟机随系统启动

[root@kvm-node2 ~]# virsh autostart -disable centos7u4-node2

//查看所有KVM虚拟机

[root@kvm-node2 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 2     centos7u4-node2                running

启动KVM虚拟机

[root@kvm-node2 ~]# virsh start  centos7u4-node2
Domain centos7u4-node2 started

关闭虚拟机

[root@kvm-node2 ~]# virsh shutdown centos7u4-node2
Domain centos7u4-node2 is being shutdown

强制关闭KVM虚拟机

[root@kvm-node2 ~]# virsh destroy  centos7u4-node2 
Domain centos7u4-node2 destroyed

挂起KVM虚拟机

[root@kvm-node2 ~]# virsh suspend   centos7u4-node2 
Domain centos7u4-node2 suspended

恢复挂起的虚拟机

[root@kvm-node2 ~]# virsh resume   centos7u4-node2 
Domain centos7u4-node2 resumed

编辑KVM虚拟机的xml配置文件

[root@kvm-node2 ~]# virsh edit   centos7u4-node2 
Domain centos7u4-node2 XML configuration not changed.

删除创建的KVM虚拟机

[root@kvm-node2 ~]# virsh undefine   centos7u4-node2

//切记:不要修改这个配置文件,否则虚拟机损坏

[root@kvm-node2 ~]# vim /etc/libvirt/qemu/centos7u4-node2.xml

KVM 图形化管理
安装x11图形界面工具

[root@kvm-node2 ~]# yum install -y xorg-x11-font-utils xorg-x11-server-utils xorg-x11-utils xorg-x11-xauth xorg-x11-xinit

ssh 开启下11转发

[root@kvm-node2 ~]# vim /etc/ssh/sshd_config
        X11Forwarding yes

避免乱码

[root@kvm-node2 ~]# export LANG=zh_CN.UTF-8

重启sshd

[root@kvm-node2 ~]# systemctl restart sshd

在xshell 开启第三方图形工具的转发
在这里插入图片描述

在客户端浏览器下载xming 软件,接收转发x11图形

重新打开会话连接执行virt-manager
注意:如过是图形界面,不需要安装(Linux 转成图形化)
MAC安装:XQuartz
在这里插入图片描述

安装中文字符,解决界面乱码问题

[root@kvm-node2 ~]# yum install -y dejavu-lgc-sans-fonts
[root@kvm-node2 ~]# yum groupinstall -y "Fonts"

KVM虚拟机快照
1.查看磁盘raw格式需要转换成qcow2

[root@kvm-node2 ~]# qemu-img info /data/centos7u4-node2.raw
  1. 必须关闭虚拟机进行磁盘转换
[root@kvm-node2 ~]# virsh shutdown centos7u4-node2
[root@kvm-node2 ~]# qemu-img convert -f raw /data/centos7u4-node2.raw -o qcow2 /data/centos7u4-node1.qcow2

//convert 将磁盘文件转换为指定格式的文件
//-f 指定需要转换文件的文件格式
//-o 指定要转换的目标格式
//转换完成后,将新产生一个目标映像文件,源文件保存

  1. 修改KVM虚拟机配置文件
[root@kvm-node2 ~]# virsh edit centos7u4-node2
	    <driver name='qemu' type='qcow2'/>               
            <source file='/data/centos7u4-node2.qcow2'/>

拍摄快照

[root@kvm-node2 ~]# virsh snapshot-create centos7u4-node2
已生成域快照 1538082768
[root@kvm-node2 ~]# virsh snapshot-list centos7u4-node2
 名称               生成时间              状态
------------------------------------------------------------
 1538082768           2018-09-28 05:12:48 +0800 shutoff

//生成的快照会以数字编排
检查当前虚拟机最新快照版本

[root@kvm-node2 ~]# virsh snapshot-current centos7u4-node2|less
<domainsnapshot>
  <name>1538082768</name>
  <state>shutoff</state>
  <creationTime>1538082768</creationTime>
  <memory snapshot='no'/>
  .....此处省略

快照xml文件存放路径

[root@kvm-node2 ~]# ls /var/lib/libvirt/qemu/snapshot/centos7u4-node2/
1538082768.xml

恢复快照

[root@kvm-node2 ~]# virsh  snapshot-revert centos7u4-node2 1538082768

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值