云计算概述与KVM虚拟化
学习资料来自网络:
https://www.bilibili.com/video/av33050236
1.介绍云计算的概述、什么是云计算、云计算的分类、云计算的分层相关知识。
云计算是一种使用模式:
弹性计算,按需付费,快速扩展
云计算的分类:公有云,私有云,混合云
云计算的分层:Iaas PaaS SaaS
3.云计算和虚拟化的区别,云计算不等于虚拟机,只是用了虚拟化的技术。
KVM 内核级的虚拟化技术
Kernel-based Virtual Machine
结构简单,包含2个部分:
设备驱动/dev/kvm
针对模拟PC硬件的用户控件组件
KVM需要在cpu中虚拟化功能的支持
只可具有虚拟化支持的CPU上运行,也就是具有VT功能的Inter CPU和具有AMD-V功能的AMD CPU
①服务器虚拟化
②桌面虚拟化
③应用虚拟化
硬件虚拟化和软件虚拟化
全虚拟化和半虚拟化
4.KVM介绍,内核级的虚拟机,配合QEMU来进行使用。
5.KVM的安装一个虚拟机
[root@linux-node1 ~]# yum install -y qemu-kvm libvirt
--安装kvm 用户态管理工具
[root@linux-node1 ~]# yum install -y virt-install
--用于安装虚拟机
[root@linux-node1 ~]# systemctl enable libvirtd
[root@linux-node1 ~]# systemctl start libvirtd
--用libvirtd管理虚拟机
创建磁盘
①.qemu-img create -f raw /opt/CentOS-7-x86_64.raw 10G
安装虚拟机
②.virt-install --virt-type kvm --name CentOS-7-x86_64 --ram 1024 \
--cdrom=/tmp/CentOS-7.2-x86_64-DVD-1511.iso --disk path=/opt/CentOS-7-x86_64.raw \
--network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
③.TightVNC 连接到192.168.56.11:5900
6.KVM虚拟机介绍,介绍KVM虚拟机的一些特性
libvirt---管理虚拟机的工具
-查看虚拟机运行状态
virsh lish --all
virsh start CentOS-7-x86_64 启动虚拟机
virsh shutdown CentOS-7-x86_64 关闭虚拟机
libvirt 自动生成一个虚拟机xml的配置文件,用于管理虚拟机,我们可以更改这个文件
virsh edit CentOS-7-x86_64
7.KVM管理,使用virsh和libvirt xml介绍。
libvirt 自动生成一个虚拟机xml的配置文件,用于管理虚拟机,我们可以更改这个文件
virsh edit CentOS-7-x86_64
virsh支持虚拟机的热添加、热删除
1.更改配置
CPU热添加
from:
<vcpu placement='static'>1</vcpu>
to:
<vcpu placement='auto' current="1">4</vcpu>
2.virsh setvcpus ,把CPU改成2个
virsh setvcpus CentOS-7-x86_64 2 --live
cpu info进行确认
内存热添加,宿主机和虚拟机都是cenos7才可以:
[root@linux-node1 ~]# virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd info balloon
[root@linux-node1 ~]# virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd balloon 512
free -m 进行确认
ifconfig
#看网络信息
brctl show
#看桥接的信息
1.创建桥接网卡
#!/bin/bash
brctl addbr br0 #创建桥接网卡br0
brctl addif br0 eth0 #会断卡网络,所以生产环境需要写脚本,靠脚本执行
ip addr del dev eth0 192.168.56.11/24 #把eth0的地址删除
ifconfig br0 192.168.56.11/24 up #然后设置到br0上
route add default gw 192.168.56.2 #添加网关
ping baidu.com #进行测试是否网络通信正常
让虚拟机使用桥接网卡
2.virsh edit CentOS-7-x86_64
<interface type='bridge'>
<source bridge='br0'/>
3. virsh shutdown CentOS-7-x86_64
virsh start CentOS-7-x86_64
4. 修改虚拟机网卡配置
8.KVM性能优化,介绍CPU、内存、IO性能优化。
cat /proc/cpuinfo #查看cpu信息
CPU:
上下文切换:
宿主机
ring 0
ring 3
虚拟机
ring 0
ring 3
缓存:在多进程下,绑定某一进程到CPU上
taskset -cp 1 25718
内存:
空间优化
寻址
EPT技术:加快虚拟内容到物理内存的映射关系
虚拟机:虚拟内存
虚拟机:物理内存
宿主机:虚拟内存
宿主机:物理内存
大页内存 #默认开启
[root@linux-node1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
KSM内存合并
[ksmd]
I/O优化:
2.6 内核: Noop CFQ AS Deadline 默认:CFQ
3.10内核: Noop CFQ Deadline 默认:Deadline
[root@linux-node1 ~]# dmesg | grep -i scheduler
[ 1.945474] io scheduler noop registered
[ 1.945476] io scheduler deadline registered (default)
[ 1.945495] io scheduler cfq registered
[root@linux-node1 ~]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
9.KVM的IO缓存介绍
10.作业:虚拟机CentOS7和Windows镜像制作。
1.作业1,制作CentOS 7 虚拟机
1.下载一个ISO。
2.创建虚拟机磁盘
qemu-img create -f qcow2 /tmp/test.qcow2 10G
3.virt-install 安装虚拟机
3.1 1.不使用swap分区
2.只分一个/
3.不使用LVM等。
virt-install --virt-type kvm --name CentOS-7-x86_64 --ram 1024 \
--cdrom=/tmp/CentOS-7.2-x86_64-DVD-1511.iso --disk /tmp/CentOS-7-x86_64.qcow2,foramt=qcow2 \
--network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
4.安装完毕后,初始化:
1.关闭SELinux。iptables。
2.修改网卡配置,去掉UUID MAC等
3.安装必备的软件 zabbix-agent
作业2: 制作Windows 2008虚拟机 https://www.unixhot.com/article/70
11.OpenStack的历史,介绍版本的发展,组件介绍。
OpenStack 云平台管理的项目
Nova-- 创建虚拟机
Glance --提供镜像
Neutron --提供网络链接
Keysone--提供认证
Horizon--提供UI
12.OpenStack相关技术介绍,SOA,消息队列。
SOA:
DUBBO 框架
13.OpenStack环境准备,提前安装好相关的软件。
在两个节点都安装:
1.安装仓库:
yum install centos-release-openstack-newton
2.安装 OpenStack 客户端:
# yum install python-openstackclient
# yum install openstack-selinux
在linux-node1上安装:
3.安装数据库:
# yum install mariadb mariadb-server python2-PyMySQL
vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.56.11
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
4.消息队列:
# yum install rabbitmq-server
5.其它服务提前安装:
# yum install openstack-keystone httpd mod_wsgi
# yum install openstack-glance
# yum install openstack-nova-api openstack-nova-conductor \
openstack-nova-console openstack-nova-novncproxy \
openstack-nova-scheduler
# yum install openstack-neutron openstack-neutron-ml2 \
openstack-neutron-linuxbridge ebtables
14.课程总结