linux——KVM

虚拟化与云计算区别

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

安装kvm

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

 1、硬件设备直接在BIOS设置开启CPU虚拟化
 2、个人电脑同样进入BIOS开启虚拟化支持
 3、VM需要找到对应虚拟化开启对应的VT-EPT虚拟化技术
linux——KVM_第1张图片

[root@kvm-node1 ~]# egrep '(vmx|svm)' /proc/cpuinfo

 

安装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

[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                   #注意修改IP与网关

查看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 虚拟机

    在创建虚拟机之前,我们需要添加一块磁盘来存放我们的虚拟机
    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 连接宿主机和对应的端口
linux——KVM_第2张图片

 

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

[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: 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: 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虚拟机快照

1.查看磁盘raw格式需要转换成qcow2

[root@kvm-node2 ~]# qemu-img info /data/centos7u4-node2.raw

    必须关闭虚拟机进行磁盘转换

[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 指定要转换的目标格式
//转换完成后,将新产生一个目标映像文件,源文件保存

    修改KVM虚拟机配置文件

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

拍摄快照

[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

  1538082768
  shutoff
  1538082768
 
  .....此处省略

 

快照xml文件存放路径

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

恢复快照

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

你可能感兴趣的:(linux——KVM)