2020-04-08 云计算(一)

1. 什么是云计算

云计算是一种按量付费的模式,云计算的底层是通过虚拟化技术来实现的。

2. 云计算的服务类型

  • IAAS 基础设施即服务 虚拟机 ecs openstack
  • PAAS 平台即服务 php,java docker容器
  • SAAS 软件即服务 企业邮箱服务 cdn服务 rds数据库 开发+运维
云计算的服务类型

3. 为什么要用云计算

小公司:前期投入小,扩展灵活,风险小。
大公司:把闲置服务器计算资源做成虚拟机出租(超卖计算)。

4. 云计算的基础KVM虚拟化

4.1 什么是虚拟化

虚拟化,通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。

4.2 虚拟化软件的差别

虚拟化软件:
qemu 软件纯模拟全虚拟化软件,特别慢!AIX,兼容性好!
xen(半) 性能特别好,需要使用专门修改之后的内核,兼容性差!
KVM(linux) 全虚拟机,它有硬件支持cpu,基于内核,而且不需要使用专门的内核,性能较好,兼容较好。

4.3 安装kvm虚拟化管理工具

[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# 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)作用:管理虚拟机的虚拟磁盘。

环境准备
系统:CentOS 7.6
内存4G
CPU开启虚拟化

环境准备

4.4 安装一台kvm虚拟机

关闭防火墙

[root@localhost opt]# systemctl stop firewalld
[root@localhost opt]# setenforce 0

启动libvirtd

[root@localhost ~]# systemctl start libvirtd.service

安装kvm虚拟机

[root@localhost ~]# 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-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
---注意:镜像要事先放到/opt/目录下
Starting install...
Allocating 'centos2.raw'                                                                                                                                              |  10 GB  00:00:00     
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.

--virt-type kvm 虚拟化的类型(qemu)
--os-type=linux 系统类型
--os-variant rhel7 系统版本
--name centos7 虚拟机的名字
--memory 1024 虚拟机的内存
--vcpus 1 虚拟cpu的核数
--disk /opt/centos2.raw,format=raw,size=10 磁盘文件,硬盘格式和大小
--cdrom /opt/CentOS-7-x86_64-DVD-1810.iso
--network network=default 使用默认NAT的网络
--graphics vnc,listen=0.0.0.0 --noautoconsole

使用VNC Viewer登录,默认端口为5900。

VNC登录
登录
安装界面
安装界面
安装界面

5. kvm虚拟机的virsh日常管理和配置

[root@localhost ~]# virsh list    ---查看当前运行的虚拟机
 Id    Name                           State
----------------------------------------------------
[root@localhost ~]# virsh list --all    ---查看所有虚拟机
 Id    Name                           State
----------------------------------------------------
 -     centos7                        shut off

[root@localhost ~]# virsh start centos7    ---启动名字为centos7的虚拟机
Domain centos7 started
[root@localhost ~]# virsh shutdown centos7    ---正常关机
Domain centos7 is being shutdown
[root@localhost ~]# virsh destroy centos7    ---强制关机
[root@localhost ~]# virsh reboot centos7    ---重启虚拟机

[root@localhost opt]# virsh dumpxml centos7 > centos7.xml    ---导出centos7的配置文件(只要有磁盘文件,就能生成配置文件)
[root@localhost opt]# virsh undefine centos7    ---删除虚拟机
Domain centos7 has been undefined
---删除虚拟机,推荐先destroy,再undefine
[root@localhost opt]# virsh list --all
 Id    Name                           State
----------------------------------------------------
[root@localhost opt]# virsh define centos7.xml    ---导入centos7配置文件
Domain centos7 defined from centos7.xml
---说明:只要有磁盘文件和配置文件就能迁移、恢复虚拟机
[root@localhost opt]# virsh list --all    ---导入成功
 Id    Name                           State
----------------------------------------------------
 -     centos7                        shut off

[root@localhost opt]# ls /etc/libvirt/qemu    ---配置文件所在位置
centos7.xml  networks
---undefine删除虚拟机其实就是删除配置文件,不关机直接undefine,列表还能看见虚拟机,但是虚拟机关机后就看不见了。
[root@localhost opt]# virsh edit centos7    ---修改centos7虚拟机的配置文件
---虚拟机迁移后,路径改变了,需要修改对应的配置文件路径

[root@localhost opt]# virsh shutdown centos7
Domain centos7 is being shutdown
[root@localhost opt]# virsh domrename centos7 web-blog    ---把centos7重命名为web-blog(虚拟机需要先关机)
Domain successfully renamed
[root@localhost opt]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     web-blog                       shut off

[root@localhost opt]# virsh start web-blog
Domain web-blog started
[root@localhost opt]# virsh suspend web-blog    ---挂起虚拟机
Domain web-blog suspended
[root@localhost opt]# virsh resume web-blog    ---恢复虚拟机
Domain web-blog resumed

[root@localhost opt]# virsh vncdisplay web-blog    ---查看虚拟机端口号,:0表示:5900,:1表示:5901,如此类推。登录用简写或者详细写法都可以
:0

[root@localhost opt]# virsh autostart web-blog    ---把虚拟机设置为开机自启动
Domain web-blog marked as autostarted
[root@localhost opt]# virsh autostart --disable web-blog    ---取消开机自启动
Domain web-blog unmarked as autostarted
[root@localhost opt]# ll /etc/libvirt/qemu/autostart/    ---该目录存放开机自启动虚拟机的xml文件(开机自启动的本质就是在这里创建xml的软链接)
total 0

grubby --update-kernel=ALL --args="console=ttyS0,115200n8"    ---要进入控制台,需要先进虚拟机执行该命令修改内核参数,执行完重启虚拟机使之生效
[root@localhost opt]# virsh console web-blog    ---进入控制台
Connected to domain web-blog
Escape character is ^]    ---按Ctrl+]键退出
按回车进入

6. kvm虚拟机虚拟磁盘格式转换和快照管理

磁盘格式:
raw: 裸格式,占用空间比较大,不支持快照功能,性能较好,不方便传输。总50G 占用50G
qcow2: cow(copy on write)占用空间小,支持快照,性能比raw差一点,方便传输。总50G 占用2G
创建虚拟机时选择不同的磁盘格式:

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

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk
/data/oldboy.qcow2,format=qcow2,size=10 --cdrom /data/CentOS-7.2-x86_64-DVD-1511.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

6.1 磁盘工具的常用命令

查看虚拟磁盘信息:

[root@localhost opt]# qemu-img info centos2.raw 
image: centos2.raw    ---名称
file format: raw    ---磁盘格式
virtual size: 10G (10737418240 bytes)    ---分配了10G
disk size: 1.3G    ---占用了1.3G

创建磁盘一块qcow2格式的虚拟磁盘:

[root@localhost opt]# qemu-img create -f qcow2 /opt/test.qcow2 1G    --- -f指定磁盘格式
Formatting '/opt/test.qcow2', fmt=qcow2 size=1073741824 encryption=off cluster_size=65536 lazy_refcounts=off 
[root@localhost opt]# ll -h
total 5.6G
-rw-------. 1 qemu qemu  10G Apr  8 10:32 centos2.raw
-rw-r--r--. 1 root root 193K Apr  8 10:33 test.qcow2    ---初始只有193K
[root@localhost opt]# qemu-img info test.qcow2 
image: test.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

调整虚拟磁盘容量:

[root@localhost opt]# qemu-img resize /opt/test.qcow2 2G    ---调整磁盘容量到2G
Image resized.
[root@localhost opt]# qemu-img info test.qcow2 
image: test.qcow2
file format: qcow2
virtual size: 2.0G (2147483648 bytes)
disk size: 260K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
[root@localhost opt]# qemu-img resize /opt/test.qcow2 +3G    ---调整磁盘容量,增加3G
Image resized.
[root@localhost opt]# qemu-img info test.qcow2 
image: test.qcow2
file format: qcow2
virtual size: 5.0G (5368709120 bytes)
disk size: 260K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

磁盘格式转换:

[root@localhost opt]# qemu-img convert -f qcow2 -O raw test.qcow2 test.raw    --- -f qcow2 -O raw,从qcow2转到raw
[root@localhost opt]# ll -h
total 5.6G
-rw-------. 1 qemu qemu  10G Apr  8 11:06 centos2.raw
-rw-r--r--. 1 root root 257K Apr  8 10:57 test.qcow2
-rw-r--r--. 1 root root 5.0G Apr  8 11:09 test.raw

注意:使用中的虚拟磁盘在转格式前要先关机,转完后要改配置文件,把对应的磁盘格式和磁盘文件都改成转换后的。





6.2 快照管理

把虚拟机转成qcow2格式

[root@localhost opt]# qemu-img convert -f raw -O qcow2 centos2.raw centos2.qcow2
[root@localhost opt]# virsh edit web-blog
      
      
      
      
      
[root@localhost opt]# virsh start web-blog Domain web-blog started

快照管理

[root@localhost opt]# virsh snapshot-create web-blog    ---创建一个快照(以时间戳命名)
Domain snapshot 1586330317 created

[root@localhost opt]# virsh snapshot-create-as web-blog --name install_ok    ---创建一个名为install_ok的快照
Domain snapshot install_ok created
[root@localhost opt]# virsh snapshot-list web-blog    ---查看快照
 Name                 Creation Time             State
------------------------------------------------------------
1586330317           2020-04-08 15:18:37 +0800 running
 install_ok           2020-04-08 15:16:11 +0800 running

[root@localhost opt]# virsh snapshot-delete web-blog --snapshotname 1586330317    ---删除快照
Domain snapshot 1586330317 deleted
[root@localhost opt]# virsh snapshot-list web-blog
 Name                 Creation Time             State
------------------------------------------------------------
 install_ok           2020-04-08 15:16:11 +0800 running
[root@localhost opt]# virsh snapshot-revert web-blog --snapshotname install_ok    ---还原快照

你可能感兴趣的:(2020-04-08 云计算(一))